Today I../Today I Learned 8

[Git] git submodule

배경 여러 프로젝트(main project)에서 사용하는 공통 모듈(sub project)이 있을 때, main project와 sub project들은 어떻게 git으로 관리할 수 있을까? 이 sub project는 어느 repo에 저장이 되는 것이 좋을까? 이럴 때, sub project가 독립적인 Repo에서 버전관리 되고, 이 모듈을 사용할 프로젝트인 main project들에는 원하는 폴더에 이 sub project 들이 연결되어 있어서 사용할 수 있으면 좋을 것이다. 이런 기능 뿐만 아니라, sub project에 여러 버전이 있을 때, 특정 버전과 이를 사용할 main project의 디렉토리를 연결시켰다가, 또 다른 버전이 준비되었을 때, 손 쉽게 다른 버전으로 변경할 수 있다면 버전 관리..

211021) docker-compose --exit-code-from

name: ML application unittest on: push: branches: [test] jobs: test: runs-on: [self-hosted, gpu] steps: - uses: actions/checkout@v2 - name: ML inference code Unittest run: docker-compose -f docker-compose-unittest.yml up 이런 github actions workflow script가 있다고 하자. 그런데 docker-compose 을 통해 실행된 unittest가 실패해서 FAILED (errors=1) [container] exited with code 1 으로 실행이 종료되어도 docker-compose가 정상적으로 작동하였다면 ..

211012) 하던 작업 임시 저장 및 적용 git stash, 원격 저장소와 local저장소의 소스코드를 일치 git fetch, git reset

하던 작업을 임시로 저장해두고 나중에 그대로 적용시키고 싶을 때가 있다. 예를 들면 A branch에서 신나게 작업을하고 있는데 알고보니 B branch에서 해야했던 작업일 경우 또는 하던 작업을 멈추고 잠시 브랜치를 바꿔야하는데 작업 중인 것이라 commit을 할 만한 것은 아닐 때 최근 이런 경우가 생겨 git stash를 사용해 보았다. git stash git stash apply [Git] git stash 명령어 사용하기 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io git stash (feat. 내가 왜 마스터 브랜치에 있지) 개인적으로 프로젝트를 하다 보면, 브랜치를 생성하지 않은 채로 (그러니까 실..

211014) Docker multi-stage build

https://www.hahwul.com/2020/10/07/docker-multistage-build-for-optimazation/ Docker multi-stage build를 통해 이미지 경량화하기 Why? 보통 베이스가 되는 도커 이미지는 생각보다 큰 용량을 가지고 있습니다. 거기에 의존성으로 추가적인 도구를 설치하고, 빌드하게 되면 생각보다 엄청 큰 용량으로 탄생합니다. 이런 경우에 www.hahwul.com https://docs.docker.com/develop/develop-images/multistage-build/ Use multi-stage builds docs.docker.com

211013) 리눅스 터미널 환경에서 다른 서버와 파일 복사/받기

[SCP] 리눅스 터미널 환경에서 다른서버와 파일 복사 리눅스 작업을 하다보면 의외로(?) 다른 리눅스 서버와 파일을 복사 할 경우가 생긴다. 여러 방법 들이 있을 수 있겠지만... SCP(Secure CoPy)를 사용하면 편리하다. 사용법은 대략 아래와 같다. 다른 noota.tistory.com # from 다른 서버 to 내 서버 $ scp [옵션] [다른 서버 계정]@[다른 서버 주소]:[다른 서버의 파일 또는 디렉터리] [지금 서버의 디렉터리] # from 내 서버 to 다른 서버 $ scp [옵션] [지금 서버의 파일 또는 디렉터리] [다른 서버 계정]@[다른 서버 주소]:[다른 서버의 디렉터리] 리눅스 scp 사용법 - 제타위키 다음 문자열 포함... zetawiki.com

[Coding Style] Return Early Pattern

본 글은 Leonel Menaia의 “Return Early Pattern” 글을 번역한 것입니다. Return Early Pattern 프로그래밍에 대해 배우고 함수를 만들 때의 기본적인 사고방식은 '함수를 만들 때, 어떤 결과를 도출하기까지 어떤 조건에 맞는지 검사'해나가는 것이었다. public String returnStuff(SomeObject argument, SomeObject argument2){ if(argument1.isValide()){ if(argument2.isValide()){ SomeObject otherVal1 = doSomeStuff(argument1, argument2) if(otherVal1.isValid()){ someObject otherVal2 = doAnothre..

딥러닝 환경설정 관련 우분투 명령어

1. nvidia Driver, CUDA, cuDNN 설치 전 설치유무 확인 명령어 nvidia-smi nvcc -V cat /usr/local/cuda/include/cudnn.h | grep MAJOR -A 2 cat /usr/include/nccl.h | grep MAJOR -A 2 whereis [file name] watch -n 1 -d nvidia-smi 2. pytorch, tensorflow 설치 및 conda 가상환경 생성 명령어 conda install jupyter notebook conda install pytorch torchvision conda create -n [virtual environment name] conda install tensorflow-gpu==1.13.1 ..

200503) 좋은 질문을 하는 방법

How to Ask codestates immersive과정의 '시작하기 전에 - 좋은 질문을 하는 방법'과 코드스쿼드 정호영님 동기부여 - 질문 잘 하는 법을 듣고 개발을 공부할 때(뿐만 아니라 새로운 지식을 배우고자 할 때) 필요한 질문의 자세에 대해 정리하였습니다. 그러나 아무리 좋은 지식도 행동으로 이어지지 않으면 아무 소용이 없기에 꼭!!!!!! 반드시 실천할 것입니다.“Do something today that your future self will thank you for.”Sean Patrick Flanery 1. (글로 적어서) 질문하는 법을 알고 & 배우는 것은 개발자로서 선택 사항일까?개발 직군에서는 새로운 것을 계속해서 배워야 하고, 많은 내용을 온라인에서 질문/답변/공유하는 문화가..