2024년 - 기억하고 싶은 것
- 회사 - 디버, 디포스트
- 방송통신대학교
- IDE, 프로그래밍 에디터
- 혼인신고, 양가 인사, 상견례, 신혼집 이사
- 다른 프로그래밍 언어 공부해보기
- 글또 10기
- PKM
- 다이어트
1. 회사
- dvercorp에서 디포스트 서비스의 백엔드 개발 및 유지보수를 전담해서 맡게 되었다.
- 프로젝트 구조나 코드 작성 방식이 내가 작성하던 방식과 맞지 않기도 하고, 일반적인 방식도 아니어서 초기에는 적응하는데 애를 먹었다.
- 연초에는 몇몇의 코드를 내 방식대로 엎어보기도 하고(뜻대로 되지 않았다.) 어설프게 DDD 같은 것을 적용해보려고 깔짝대기도 했다.
- 결론적으로는 레이어드 아키텍처를 기본적으로 충실히 사용하되, DB 스키마를 모델링하는 클래스와 비즈니스 로직을 포함하는 별도의 도메인 클래스를 도출해서 사용하는 것으로 결정을 했다.
- 데이터를 Insert, Update 할 때는 매우 잘 동작하고 만족하면서 사용하고 있다. 무엇보다 도메인 클래스를 보면 비즈니스 로직이 어떻게 구성되어 있는지 파악이 쉬워서 좋았다.
- 기존의 코드를 수정할 일이 있을 때 소스코드 전반을 탐색하면서 어딘가에서 내가 모르게 데이터가 수정될 것만 같은 두려움이 줄어들었다.
- 아직 많은 레거시 코드들은 비즈니스 로직들이 흩어져 있어서 차근차근 수정해나갈 계획이다. 단, 잘 돌아가고 있는 코드이고 요구사항에 포함되지 않는 코드들은 건들지 않으려고 했다.
- 올해 작성한 코드들은 최대한 위의 사항을 준수하려고 노력했다.
- 테스트 코드도 추가하고 기존에 작성된 코드들을 새로 작성하기도 하다 보니 커밋과 코드 추가 및 삭제를 생각보다 많이 한 것 같다.

주요 개발 사항
- 디포스트 퀵 접수에 급송 옵션 추가 개발
- 스크립트로 별도 실행되던 작업들을 서비스의 기능으로 전환
- 지점 관리
- 아웃바운드 제공 서비스 제어 기능
- 지점 계층 선택 기능 추가
- 마스터(내부 관리 직원) 관리 기능 개발
- 유닛 & 그룹 개편 작업(진행중)
- API 문서 템플릿 규격 확정 및 통일화
- 취소 수수료 및 추가 요금 부과 기능 개발
- FCM API 버전 업그레이드 작업
- 외부 택배사 API 연동
- 특정 택배사의 데이터 연동 위한 배치(Nest.js Schedule) 서버 개발
- 로봇 구내배송 기능 마무리 작업
- MQTT로 로봇의 관제 API와 연동시도 했으나 사업적 이유로 중단
- 알림톡 및 SMS 발송 대행사 변경
- 기존에 트랜잭션 스크립트 방식으로 작성되었던 로직들을 각각의 전략으로 분리하여 재구현
- 700개 이상의 테스트코드 추가
- 매출이 가장 큰 퀵 접수 API 재작성
- AWS API Gateway 매핑 자동화를 위한 스크립트 작성
- 파편화된 업무 스크립트를 하나의 프로젝트로 재구성 및 타입스크립트 적용
2. 방송통신대학교 컴퓨터과학과
- CS에 대한 막연한 두려움과 경험해보지 못한 것에 대한 동경을 극복하고, 부족한 지식을 채우기 위해 방송통신대학교 컴퓨터과학과에 등록했다.
- 1학기: 18학점을 등록하며 호기롭게 시작했으나, 과부하로 인해 성적과 시간 관리 모두 만족스럽지 못했다.
- 2학기: 이수 학점을 12학점으로 줄이고, 만족스러운 성적을 얻었다.
- 기대한 대로 CS에 대한 두려움 같은 것들은 떨쳐낼 수 있게 되었다.
- 앞으로 방통대에서 배운 것들을 어떻게 활용 및 사용할 것이냐는 아직 미지수.
3. IDE, 프로그래밍 에디터 그리고 VIM
- 처음 개발을 배울 때 사용했던 에디터는 VSCODE이다. 이후 첫 회사에서 젯브레인 제품들을 제공해주어서, 그 때부터 웹스톰을 지속적으로 사용했었다.
- 단축키 사용을 즐겨하고, 어떤 에디터를 사용하든 VIM 플러그인을 사용해왔다.
- 어느 순간부터 웹스톰이 무겁다고 느껴지기 시작해서, 코파일럿 기능을 제공하는 커서를 2개월 정도 사용했고, 매우 만족했다. 웹스톰과 대비해서 빠릿빠릿하고 코드 자동완성 기능은 너무 만족스러웠다. 그럼에도 불구하고, 마음 한 편에서는 항상 VIM을 잘 사용하고 싶다는 생각을 했다.
- 개발환경 자체를 VIM(Neovim)으로 전환하려는 시도를 올 해 3차례 정도했었는데, 두차례 전환을 시도해보고 포기했다.
- 1회차 때는 LazyVim 배포판을 사용했었는데, VIM 플러그인을 사용했음에도 불구하고 코드 작성 시 적응이 안되어 실패했다.(Project Exploer, 파일 이름 바꾸기, 추가 등등)
- 2회차 때는 코딩문님의 유튜브 영상을 보고 시도했으나 모르는 기능들이 여전히 많았고 잘 활용하지 못한다고 생각이 되어서 다시 원래 사용하던 에디터로 돌아갔다.
- 3회차는 kickstart.nvim 과 이 레포지토리를 제공한 TJ DeVries의 관련 설명 영상을 보고 Neovim 세팅을 어느정도 직접 할 수 있게 되었고, 플러그인이 제공하는 기능을 커스터마이징 할 수 있게 되었다.
- 현재는 Neovim으로 90% 정도의 코드를 작성하고 10% 정도는 Cursor를 사용한다.
- 나의 Neovim 설정 공유, kickstart.nvim을 베이스로 하고 나에게 맞게 커스텀이 되어있다.
- Neovim과 Tmux를 사용하고 나서부터 코드 작성에 필요한 거의 모든 기능은 키보드로 처리할 수 있게 되었다.

4. 혼인신고, 양가 인사, 상견례, 신혼집 이사
- 여자친구와 감사하게도 혼인신고를 완료했으며, 결혼식은 차차 준비할 예정이다.
- 약 3개월 만에 혼인신고, 양가 인사, 상견례, 신혼집 이사를 마무리했다. 부족한 부분도 있었지만 양가 부모님과 여자친구의 협조 덕분에 큰 어려움 없이 진행할 수 있었다.
- 상견례는 긴장되는 자리였지만, 우려와 달리 무탈하게 끝나 안심이 되었다.
- 신혼집 잔금을 계좌이체할 때 느꼈던 떨림은 잊을 수 없을 것이다. 34년 동안에 이렇게 큰 돈을 한 번에 써본 것은 처음이었다.
- 신혼집을 꾸미는 과정에서 책상과 모니터암을 새로 구매해 작업 환경을 대폭 업그레이드했다. 덕분에 만족감이 크다.
5. 다른 프로그래밍 언어 공부해보기
- 올해는 C, C++, Rust, Go를 공부했다. C와 C++은 방통대 수업에서, Rust와 Go는 개인적으로 학습하며 각 언어와 관련된 책을 한 권씩 읽었다.
- 연초에는 Rust와 Go 중 하나를 깊게 공부하려 했으나, 두 언어의 명확한 장단점 때문에 선택 장애를 겪었다.
- Rust: "이래도 안 써?"라는 느낌을 주며 강력한 안정성과 성능을 강조. 다만, 학습 난이도가 높았다.
- Go: Simple is Best의 표본. 간결하고 사용하기 쉬운 언어지만, 에러 처리에서 약간의 아쉬움이 있었다.
- 고민 끝에 Rust와 Go로 각각 Todo 리스트 관리 API 서버를 만들어보았고, 최종적으로 C 언어를 다시 공부하기로 결론지었다.(?)
- 이쯤에서 나는 왜 새로운 언어를 배우고 싶었는지 스스로 성찰해 보았다:
- JS/TS 외의 언어로 제품을 만들고 싶은 것인지?
- 아니면 웹 개발 외의 새로운 분야(OS, DB, Network)를 탐구하고 싶은 것인지?
- 아니면 그냥 재미로 배우는 것인지?
- 시스템 레벨 또는 웹서버보다 로우한 레벨의 소프트웨어에 대한 궁금증이 동기였음을 깨닫고, C를 공부하기로 결정했다.
- 올해는 "C 언어, 근데 Zig를 살짝 곁들인..." 느낌으로 프로그래밍 언어 학습을 이어갈 계획이다.
6. 글또 10기
- 이 회고 역시 글또의 도움을 받아 작성하고 있다.
- 글의 수준과 상관없이 꾸준히 참여한 결과, 현재까지 이 회고를 포함해 6개의 블로그 글을 작성했다.
- 아직 진행 중이지만, 글감을 계기로 Nest.js의 내부동작을 조금씩 학습하고 관련 글을 쓰고 있다.
- 글또에는 다양한 내부 소모임이 있지만, 참여하지 않고 있다. 개인적으로 학습중인 것과 일정이 많아 소모임에는 참여하지 않았는데, 결과적으로는 잘한 결정이었던 것 같다.
7. PKM(Personal Knowledge Management)
- PKM에 관심을 가지게 된 계기는 어느 순간 “내가 노션에 작성한 노트들이 무슨 소용이 있지? 보지도 않는데?”라는 생각이 들면서부터였다.
- 이후 메인 노트 앱을 옵시디언(Obsidian)으로 옮기거나, 노션(Notion) 템플릿을 사용하여 노트들을 새롭게 정리하며 효율적인 노트 관리 방법을 찾아보았다.
- 단순히 노트 정리가 아니라 노트 앱 자체에 대한 고민도 많았다. 사용하는 앱이 나에게 잘 맞는다면 더 효율적으로 관리할 수 있을 것이라고 생각했기 때문이다.
- 옵시디언(Obsidian) 은 플러그인과 커스텀할 수 있는 옵션이 너무 많아 오히려 부담스러웠고, 모바일과 PC 간 동기화를 위해 비용이 필요한 점이 메리트가 없다고 느껴 사용을 중단했다.
- 다시 기존에 사용하던 노션을 잘 다듬어 사용하기로 마음먹었고, 이 시점에서 본격적으로 PKM에 대해 관심을 가지게 되었다.
- 우연히 알게 된 닥터가드너님의 템플릿을 한 달 정도 사용해보았다. 그러나 노트를 관리하기보다는 템플릿과 노션 자체를 학습하는 데 더 많은 시간을 쓰고 있다는 느낌이 들었다.
- 이 경험을 통해, 보다 간단하고 심플한 노트 앱을 사용하기로 했다.
- 결국 Craft로 노트 앱을 변경했고, PARA 시스템을 활용해 노트를 관리하고 있다.
- Craft는 옵시디언과 노션의 중간에 있는 느낌으로, 모바일-PC 연동과 기본적인 에디터 기능을 제공하면서도 노션처럼 과도하게 복잡한 기능은 없어서 만족스럽다.
- PARA 시스템은 노트 관리뿐만 아니라 맥북의 파일 관리에도 유용하다. 덕분에 노트, 파일, 디렉토리를 쉽게 찾고 체계적으로 관리하고 있다는 느낌을 받고 있다.
8. 건강
- 올해 체중이 약 7kg 증가했다.
- 바쁜 일정 속에서 건강관리에 거의 시간을 투자하지 못했다. 배달 음식을 자주 이용하며 끼니를 해결하는 경우도 많았다.
- 다행히 현재 거주 환경이 이전보다 좋아졌고, 주변 상황도 안정되었기 때문에 2025년에는 건강과 체중 관리를 반드시 실천할 계획이다.
2025년에 해볼 것
회사
- API 문서 관리 방식 고민 및 효율화
- 세밀한 프론트엔드 화면 렌더링을 위한 API 응답 형식 및 에러코드 확립
글쓰기
건강
그 외에는 2024년에 하던 것을 지속적으로 하는 것이 가장 중요할 것 같다.
neovim 유저 반가워요!! 응원합니다~