힘내라 일처리

개인 개발 환경 구성 소개 본문

기록

개인 개발 환경 구성 소개

일처리 2025. 4. 27. 21:01

개요

일한 지 한 10년 차 정도 된 거 같은데 점점 개발 환경에 대한 구성이 정립되어 가는 것 같아서 이번 기회에 이를 공유하고 싶다.

 

PC 구성

  • 고성능 Linux PC (개발및 빌드용)
  • 저성능 Window PC 또는 노트북 (GUI 및 SSH Client용)

PC구성은 위와 같다.

제 업무는 Yocto를 빌드하거나 AOSP를 빌드하는 일이 많음에 따라 CPU자원을 아주 많이 소비하는데, 빌드가 진행 되는 동안에는 코드 편집이나, 웹 서핑, 사내 메신저를 통한 채팅등의 업무에 영향이 감에 따라 빌드가 진행되는 PC는 완전히 분리해야 한다.

 

실제 개발 업무는 SSH를 통해서 많이 이루어진다, 복잡한 코드 수정 작업은 vscode를 통해 수행한다.

 

Linux 단 기본 패키지

이 정도인 듯하다.

 

Docker

여기서 Docker는 기본적인 개발환경의 형상을 세부적으로 관리하는 데 사용한다.

 

https://github.com/keepworking/docker-on-myhome

 

GitHub - keepworking/docker-on-myhome: dev env management settings

dev env management settings. Contribute to keepworking/docker-on-myhome development by creating an account on GitHub.

github.com

 

위의 github이 내가 실제로 사용하는 Docker를 구성하는 방식이다.

 

해당 도커 방식은 회사의 시니어 분이 사용하던걸 배워서 내 입맛대로 수정해서 사용하는 중이다.

 

다음과 같은 특징이 있다.

 

  • 사용자 home dir 마운트
    • ssh pubkey 재사용 목적
    • 프로젝트 소스코드는 host에서 별도로 관리
    • yocto나 aosp처럼 빌드 과정에서 저장장치에 쓰는 데이터가 많은 경우 경우, docker의 볼륨을 사용하는 경우 io성능이 많이 떨어짐에 따라 직접 마운트 해서 사용하는 것이 적절하다.
      • 실제 파일 시스템에 작성하는 게 아니라 overlayFS를 사용함에 따라 Upper와 Lower을 비교해서 파일을 읽고 쓰는데 추가 비용이 발생함.
  • --rm -it를 통한 세션 실행
    • 개발에 사용되는 패키지를 지속적으로 관리하도록 유도
    • 불필요한 패키지가 지속 적으로 누적되는 것 예방
    • 컨테이너 세션 관리의 번거로움 감소
  • Base Docker이미지 상속
    • 주로 애용하는 패키지들이 있는데 이러한 것들을 공통으로 사용하기 위함.

 

아래와 같은 구조로 구성하여 사용하고 있다.

docker-on-myhome$ tree --dirsfirst
.
├── aosp
│   ├── build.sh
│   ├── Dockerfile
│   └── run.sh
├── default
│   ├── build.sh
│   ├── Dockerfile
│   └── run.sh
├── example
│   ├── build.sh
│   ├── Dockerfile
│   └── run.sh
├── nodejs
│   ├── build.sh
│   ├── Dockerfile
│   └── run.sh
├── optee
│   ├── build.sh
│   ├── Dockerfile
│   └── run.sh
├── yocto
│   ├── build.sh
│   ├── Dockerfile
│   └── run.sh
├── build.sh
├── Dockerfile
└── LICENSE

 

 

Byobu

리눅스 세션 관리 도구로 하나의 터미널 화면에서 여러 개의 창을 띄운다거나 원격 접속을 해도 이전 세션을 재사용할 수 있는 패키지이다.

 

ssh로 작업하다가 창을 종료하면 다시 켰을때 작업 중인 디렉터리로 다시 찾아가거나 하는 경험을 해봤다면 해당 byobu를 사용하는 걸 추천한다.

 

창을 닫더라도 다시 byobu에 접속하면 이전 작업으로 돌아갈 수 있다. 

 

https://keepworking.tistory.com/20 해당 글에 자세한 사용법을 정리했으니 둘러보면 좋다.

 

 

보통 이런 식으로 docker 환경과 함께 사용한다.

 

Lazygit

git 명령어를 더 쉽게 다루기 위한 TUI도구인데, 변경사항을 브라우징 하거나 커밋 시에 부분적으로 선택해서 커밋하는 작업을 수행할 때 아주 용이하다. git 명령어에 능숙하더라도 실용성 측면에서 권장하는 도구이다.

 

단축키 구성이 간단해 진입장벽이 낮으니 아직 그냥 git을 사용하는 사람이나 gui를 사용하는 사람은 이참에 lazygit을 사용하면 좋을 것 같다.

 

 

tldr

리눅스 기본 명령어들을 사용하다 가끔 기억이 안 날 때가 있는데 해당 명령어들의 치트시트를 제공해 준다.

tar의 경우 자주 사용하니 손에 익더라도 unrar은 손에 익지 않을 때 빠르게 사용법을 확인할 수 있다.

 

 

이렇게 직접 적인 사용법이 나온다. man을 읽는 것보다 직관적이다.

 

 

Windows 단 기본 패키지

별로 특별한 건 설치하지 않는다.

  • Windows 터미널
  • VSCode

이 정도면 충분하다.

Comments