728x90

IT/기초 지식 111

[git] git submodule 기초

※ 일본의 블로그 글을 번역한 포스팅입니다. 오역 및 직역이 있을 수 있으며 내용 오류시 지적해주시면 수정하겠습니다. git submodule이란? git submodule은 외부 git리포지토리를 자신의 git 리포지토리의 서브 디렉토리로 등록하고 특정 commit을 참고하는 구조이다. Subversion의 external와 유사하다. 그럼 git submodule의 해설을 위해 수중의 리포지토리 A(/path/to/a)와 A의 submodule로써 자주 사용되는 예로써 Bootstrap을 등록하는 흐름을 보려고 한다. git submodule를 이해할 때 가장 중요한 것은 아래의 두 가지이다. 리포지토리 A가 가리키는 submodule로서의 Bootstrap의 commit 현재의 Bootstrap의 ..

IT/기초 지식 2022.04.04

[UML] 클래스 다이어그램

※ 일본의 한 포스팅을 번역한 내용입니다. 오역 및 직역이 있을 수 있으며, 틀린 내용이 있다면 지적해주시면 감사하겠습니다. 클래스 다이어그램이란? 클래스 다이어그램이란 클래스의 구성이나 클래스 간의 관계, 역할을 표현하기 위한 그림으로 1개의 클래스를 표현하는 기본 요소는 아래의 세 가지이다. 클래스 속성 조작 또한 각 요소는 위의 순서대로 기재해야하며 요소마다 선으로 구분한다. 이 그림을 예로 살펴보자면, 클래스명은 "사원", 속성은 "사원 번호", "이름", '주소"이며, 조작은 "출근한다", "퇴근한다"라고 표현할 수 있다. 그리고 클래스 간의 관계에 대해서도 추가해서 살펴보자. 사원 - 회사의 클래스가 선으로 연결되어 있으므로 어떠한 관계로 이어져 있음을 추론할 수 있다. 이제 관계와 관련된 구..

IT/기초 지식 2022.03.30

[Docker] NVIDIA Container Toolkit(NVIDIA Docker)의 동작원리

※ 일본 포스팅을 번역한 자료입니다. 오역및 의역이 있을 수 있으며, 틀린 내용이 있는 경우 지적해주시면 정정하겠습니다. Docker에서 NIVIDA GPU를 사용하는 경우 NVIDIA Container Toolkit(NVIDIA Docker)이 필요하다. 이번 포스팅에서는 왜 NVIDIA Container Toolkit이 필요한지, 어떻게 동작하고 있는지에 대해 설명할 것이다. 참고로 2021년 4월 시점 내용이니 현재는 바꼈을지도 모르니 어디까지나 참고로 하길 바란다. 왜 NVIDIA Container Toolkit(NVIDIA Docker)이 필요할까? NVIDIA GPU는 호스트의 디바이스 파일 (/dev/nvidia0등)으로써 등록되어 있다. 또한, CUDA 라이브러리(libcuda.so등)는 ..

IT/기초 지식 2022.02.18

[Docker/Linux] Docker상의 Volume에서 permission denied 에러가 발생할 때 해결법

permission denied가 발생하는 문제 Linux상에서 Docker 컨테이너 내에 있는 volume을 mount했을 때, 호스트에서 액세스할 경우 권한 문제가 발생하는 경우가 있다. 이는 호스트 OS에서 사용하고 있는 유저와 컨테이너 내에서 사용하고 있는 유저의 UID와 GID가 불일치하는 경우가 원인인듯하다. 따라서 Docker for Mac/Windows에서는 이러한 문제는 거의 발생하지 않는다. UID와 GID과 불일치하는 경우는 다음과 같은 경우를 일컫는다. 호스트 OS에서 터미널을 연 뒤에 id 커맨드를 입력하면 다음과 같은 결과가 출력되는데 반해, $ id uid=1000(test) gid=1000(test) groups=0(test) 컨테이너 내에 들어가서 id 커맨드 결과를 보면 ..

IT/기초 지식 2022.02.10

[AWS] 기존의 EC2 인스턴스에 새로운 EBS 연결(mount)하기

새로운 EBS Volume을 생성해서 기존의 EC2 인스턴스에 그대로 mount 하면 아래와 같은 에러가 발생하게 된다. $ sudo mount /dev/xvdf /mnt/data/ mount: /dev/xvdf is write-protected, mounting read-only mount: wrong fs type, bad option, bad superblock on /dev/xvdf, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. 따라서 mount하기 전에 EBS를 한 번 포맷을 해주고 연결할 필요가 있다. 그러한 포맷 방법을 ..

IT/기초 지식 2022.02.09

[Docker/Linux] Linux환경에서 GPU가 적용된 Docker 컨테이너 만들기

Linux 환경 위에 그대로 GPU를 이용하고자 한다면면 여러가지 드라이브의 설치 및 설정이 복잡하므로, Docker을 사용하는 방법을 추천할 수 있다. 포스팅의 전반적인 순서는 다음과 같다. NVIDIA driver의 설치 Docker의 설치 NVIDIA container toolkit의 설치 임의의 컨테이너를 생성하여 확인 NVIDIA driver의 설치 제일 먼저 NVIDIA 드라이브가 설치되어 있는지 확인하자. $ nvidia-smi 만약 설치되어 있는 경우, 삭제 후 재설치하고 싶은 경우에만 아래의 커맨드로 삭제한다. $ sudo apt-get --purge remove nvidia-* $ sudo apt autoremove 리포지토리를 추가한다. $ sudo add-apt-repository ..

IT/기초 지식 2022.02.09

[AWS/Linux] AWS EC2 인스턴스에 Ubuntu 데스크톱 환경 만들기

Amazon EC2의 OS가 Ubuntu Server 18.04 LTS인 인스턴스에 Ubuntu 데스크 톱 환경을 만드는 과정에 대해 기록하고자 한다. 참고로 EC2 인스턴스를 시작하는 과정에 대해서는 생략할 것이다. 환경 클라이언트 환경 Version Windows 10(65bit) Remote Desktop - 타켓 환경 Version Amazon EC2 Ubuntu Server 18.04 LTS Terminal 본인이 쓰기에 편한 것 EC2 인스턴스의 설정 인스턴스 접속 인스턴스를 만들었다면 터미널에서 SSH로 인스턴스에 접속하자. $ ssh -i ubuntu@ 리포지토리와 패키지의 갱신 계속해서 터미널에서 리포지토리랑 패키지를 업데이트한다. $ sudo apt update -y $ sudo apt..

IT/기초 지식 2022.02.07

[bat] Windows의 배치 파일(*.bat) 작성법

@echo off call :TESTAAA exit /b 0 :TESTAAA echo TESTAAA가 호출됐다. exit /b 0 배치 파일의 기본적인 작성법에 대해 알아보자. bat실행시에 스크립트 내용을 명령 프롬프트에 표시하지 않도록 하기 예를 들어 아래와 같은 배치 파일이 있다고 가정하자. IF 1==1 ( echo 가나다라 ) 이 파일을 실행시키면 아래와 같이 명령 프롬프트창에 표시된다. C:>C:\exsample.bat C:>IF 1 == 1 (echo 가나다라 ) 가나다라 이렇게 출력이 되지 않도록 하기 위해서는 배치 파일의 맨 앞에 반드시 @echo off를 정의해둘 필요가 있다. @echo off IF 1==1 ( echo 가나다라 ) 다시 한 번 실행시키면, 아래와 같이 파일 내용이 표..

IT/기초 지식 2022.02.04

[Docker] docker-compose 커맨드 정리

docker-compose 커맨드 중 자주 사용하는 것만 정리하고자한다. 이번 포스팅에서 사용할 docker-compose.yml과 Dockerfile은 아래와 같다. #### docker-compose.yml내용 web: build: . environment: DISABLE_SPRING: "1" DB_USERNAME: "root" DB_PASSWORD: "root" DB_HOST: "db" ports: - "3000:3000" volumes: - ".:/var/local/rails5_product" links: - "db" db: image: mysql:5.6 environment: MYSQL_ROOT_PASSWORD: "root" #### Dockerfile의 내용 # rails5_product FR..

IT/기초 지식 2022.02.02

[python] pip 과 requirements.txt를 이용해서 패키지 혹은 라이브러리 일괄 다운로드하기

Python의 패키지(라이브러리)를 pip으로 관리하고 있는 경우, 설정 파일인 requirements.txt를 사용해서 파일 안에 지정된 패키지를 지정한 버전으로 한꺼번에 설치할 수 있다. 이번 포스팅에서는 아래의 내용에 대해서 설명하고자한다. pip의 일괄 설치 옵션 : -r requirements.txt 설정 파일 requirements.txt의 작성법 현재 환경의 설정 파일을 출력하는 pip freeze pip의 기본적인 사용법에 대해서는 이번 포스팅에서 설명하지 않는다. pip의 일괄 설치 옵션 : -r requirements.txt 아래의 커맨드로 설정 파일 requirements.txt에 작성된 내용에 따라 패키지를 일괄 설치된다. $ pip install -r requirements.txt..

IT/기초 지식 2022.02.01
728x90