| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- 파이프 와이어
- WebCam
- ssh-keygen
- html5
- awk
- linux go new project
- MAN
- 코로나바이러스
- Go
- 자율주행
- grep
- 예제
- CODE128
- 사회적거리두기
- sudo
- 명령어
- UNIX
- 자택근무
- go multifile manage
- 유닉스
- ssh-copy-id
- carla
- 리눅스
- tldr
- TEE
- go make new project
- barcode
- linux
- go new project
- 리눅스 멀티미디어
- Today
- Total
힘내라 일처리
개인 개발 환경 구성 소개 본문
개요
일한 지 한 10년 차 정도 된 거 같은데 점점 개발 환경에 대한 구성이 정립되어 가는 것 같아서 이번 기회에 이를 공유하고 싶다.
PC 구성
- 고성능 Linux PC (개발및 빌드용)
- 저성능 Window PC 또는 노트북 (GUI 및 SSH Client용)
PC구성은 위와 같다.
제 업무는 Yocto를 빌드하거나 AOSP를 빌드하는 일이 많음에 따라 CPU자원을 아주 많이 소비하는데, 빌드가 진행 되는 동안에는 코드 편집이나, 웹 서핑, 사내 메신저를 통한 채팅등의 업무에 영향이 감에 따라 빌드가 진행되는 PC는 완전히 분리해야 한다.
실제 개발 업무는 SSH를 통해서 많이 이루어진다, 복잡한 코드 수정 작업은 vscode를 통해 수행한다.
Linux 단 기본 패키지
- Docker
- Byobu -> https://keepworking.tistory.com/20 해당 글에서 소개한 적이 있다.
- Lazygit
- tldr
이 정도인 듯하다.
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
이 정도면 충분하다.
'기록' 카테고리의 다른 글
| AOSP Build sandboxing disabled due to nsjail error. 해결법 Ubuntu 24.04 (w. Docker Ubuntu 22.04) / Android 16 (0) | 2025.04.26 |
|---|---|
| RFC 번역 사이트 개발 후기 (0) | 2023.11.24 |