개발환경 정리
Intro
개발환경은 한번 손을대면 시간가는줄 모르고 계속 더 보게되는거 같습니다. 시간이 나는대로 제가 개인적으로 사용하고 있는 개발환경을 정리해보려 하는데, 사용하고있는 노트북에서부터 시작해서 어떻게 프로젝트의 환경을 구성하고 활용하고 있는지 까지 한번 담아보려고 합니다.
사용하고 있는 장비
- M2 macbook air : 가장 기본 사양에서 ram만 16G로 높여서 사용하고 있습니다. 이 노트북으로는 문서 작업 및 자료 검색용으로만 활용하고 무거운 작업은 일체 하지 않습니다.
- belkin DisplayLink : macbook air에 연결할 수 있는 모니터가 1개로 제한되는데, DisplayLink를 사용하면 최대 3개 까지 모니터를 연결할 수 있습니다. 집 작업환경에는 모니터암을 붙여 32inch monitor를 두개를 연결하여 사용하고 있습니다.
- gpu server (workstation) : deep learning 학습 및 개인 프로젝트를 수행하기위해 구성한 RTX-4090 machine입니다. gpu 외에는 AMD Ryzen 9 7950X, 128G RAM, 4T SSD 로 구성하였습니다.
서버 구성
각각의 프로젝트는 각각의 container로 완전히 분리하여 깔끔하게 구성하여 쓰고 있습니다. 한번 구성한 환경에대해 다시 신경 쓰지 않도록 docker-compose를 이용하여 완전히 정리해 두었고, 아래처럼 구성하였습니다. 아마 계속 지속적으로 수정하며 활용할듯 합니다.
- nginx : blog에서 활용할 이미지 데이터를 저장하는 용도로 구성하였습니다.
- blog : 블로그를 관리하기위해 만든 로컬 환경입니다.
- paper-vision : vision분야의 주요 논문들을 쭉 구현해보기 위해 구성했습니다. nlp나 그 외 분리해야할 도메인마다 새로 구성할 예정입니다.
- kaggle : kaggle 대회에 참가하며 만들었었는데, 아마 또 참가할때마다 이부분 수정하면서 쓸듯합니다.
- trade-dev : 주식, 코인의 시스템 매매를 공부하기 위해 구성한 환경입니다.
- send-ip : 외부 ip를 텔레그램 api로 계속 쏘도록 구성한 환경입니다.., ip가 언제 바뀔지 몰라서 이렇게 만들어 두었습니다. 최근 도메인을 구매하였고 ddns를 구성하게되면 내릴 예정입니다.
아래는 활용하고 있는 docker-compose.yaml 파일입니다.
IDE 활용
일반적인 개발 작업
일단 기본적으로 visual studio code를 적극 활용하고 있습니다. macbook에 설치한 vscode + ssh로 각 프로젝트마다의 container에 접근하여 프로젝트를 수행하고 있습니다.
문서작업
emacs org모드를 활용하고 있습니다. macbook local에서 작업하는것을 포함하여 서버내의 문서도 TRAMP를 이용하여 원활하게 작업하고 있습니다. 정리되는대로 orgmode의 설정도 한번 정리해볼까 합니다.