이러다 개발 후기만 적는 블로그가 되지 않을까 하는 걱정이 든다.
2023 Q2/Q3에는 오랜 시간 개발해왔던 회사 자체 서비스가 사실상 중단이 되었기 때문에, 용역 업무들이 중심이 된 시간이었다. 용역 업무는 모두 백앤드 개발이어서 프론트앤드 개발에서 한동안 손을 떼게 되었다. 그리고 Q2 마지막 순간에 오랜 시간 기다리고 준비해왔던 개인적인 가정일이 생김에 따라 한동안 완전 재택으로 전환하게 되었다.
- 두 용역 모두 Node.js 로 서버를 작성했고, 서버 프레임워크는 Fastify를 이용했다. Fastify는 작년 6월에 버전 4로 업그레이드하면서 많은 부분이 업그레이드되고 바뀌었다. 개인적으로 아주 좋아하는 프레임워크이고, Express를 굳이 사용할 필요를 느끼지 못한다.
- Primsa 는 개인적으로 상당히 좋아하는 JavaScript ORM 라이브러리다. 프로젝트 진행 도중 버전 5로 업그레이드 되었고, 여전히 잘 사용하고 있다.
- 2023 Q1 후기 때, 아디오스 Go를 했지만, 오히려 Go 를 많이 썼다. 용역 과제에서 이미 Go를 쓰기도 했고, Hyperledger Fabric이 Go SDK 를 사용하다보니 그렇기도 하다.
- Go 는 정말 많은 부분을 표준 라이브러리를 통해 제공해준다. REST API 서버를 외부 라이브러리 도움 없이 시작부터 끝까지 구축 가능한 유일한 언어가 아닐까 싶다. 최근에는
log/slog
패키지를 통해, 구조화된 로깅까지 표준 라이브러리에서 지원해준다. 간단한 서버 구축시에는 역시 Go가 최고가 아닐까 싶다.
- NPM Workspace 를 이용해 3개로 나뉘어져있던 리포지토리를 1개로 통합했다. 난 되도록 NPM을 쓰는 걸 선호해서, yarn 이나 pnpm 등의 옵션은 고려하진 않았다. 다만 지금 그럭저럭은 의도대로 되는데, 해당 기능의 완성도 자체가 좋다고 생각되진 않는다. 같은 버전이 설치되면 자동으로 루트 node_modules 로 옮겨준다거나 하는 스마트함(?) 등이 보이지 않아서 아쉽다.
- wrk 라는 밴치마크 툴을 처음 알게되었는데, 사용이 아주 간단하고 좋다. Apache JMeter 를 쓸 수 없는 환경이라 사용해보았는데 만족스러웠다.
- 업무의 주가 된 두 용역 프로젝트는 모두 원격 서버에 코드를 두고 SSH 로 접속하여 개발을 하였다. 그래서 VSCode 의 SSH 플러그인을 잘 활용했는데, 일부 프로젝트에 대해서는 부득이 Jetbrains 의 Gateway 를 사용해야 했다. 정말 Jetbrains 의 Gateway 경험은 최악이었다. 매우 무거운건 둘째치고, 맥이 잠자기에 들어갔다 깨어나면 성공적으로 재연결 되는 꼴을 보지 못했다. Fleet 은 그나마 좀 더 가벼워서 나았지만, 재연결이 실패하는건 매한가지. Zed 는 기능이 있지도 않다.
- 눈이 계속 피로해서, 모든 에디터, 터미널에서 테마를 예전에 잘 사용했던 Nord로 다시 변경했다. 내가 지금껏 사용했던 테마들 중 가장 눈이 편했던 테마다. 다만 일부 코드에서 코멘트 등을 확인하기 어려운게 좀 단점.
- macOS 에서 터미널을 기존 iTerm2 에서 Warp 로 변경했다. Warp 는 여러 장점이 있지만, 가장 큰 장점 몇가지만 소개하자면, 1) 커맨드 결과값을 손쉽게 복사하거나 결과값 내에서만 검색할 수 있고, 2) 채팅 형식의 AI 패널(Chat GPT와 유사)을 제공하여 커맨드를 손쉽게 검색(예: "how to migrate prisma" 라고 검색하면 ->
npx prisma migrate dev
커맨드를 적절한 설명과 함께 알려줌)할 수 있으며, 3) Warp drive 를 통해 자주 쓰는 반복적인 커맨드를 저장할 수 있다. 그리고 무엇보다, 매우 빠르다.
- 요즘 Windows 11 에서 프로그래밍하는걸 계속 연습하고 있다. 특별한 이유가 있는건 아니고, macOS를 10년 넘게 주력으로 쓰다보니 좀 질리기도 했고, 마치 업무 책상/위치를 바꿔 머리를 환기하듯 개발 환경을 변경해보고 싶었다. 일단 VSCode 의 SSH 연결, WSL2, Windows Terminal 과 적절한 폰트(Jetbrains Mono 사용)와 색 테마(Nord)를 쓰면 거의 맥과 유사한 모습이 만들어진다. 다만 단축키가 다르고(난 새끼손가락으로 Ctrl 을 누르는게 너무 불편하다. 엄지손가락으로 Cmd 키를 누르는게 더 인체공학적인것 같은 느낌), Alfred 또는 Raycast 같은 신뢰성있는 런처 프로그램이 없다는게 아주 불편. 그리고 Warp 에 준하는 Terminal 프로그램이 없다.
- 요즘 개인 프로젝트로 React 를 다시 시작하고 있다. CSR을 생각하고 있어서, Vite 으로 프로젝트를 생성하여 진행하고, Radix Theme과 TailwindCSS를 써서 작업을 하고 있다. 백앤드는 클라우드를 최대한 활용해서 최대한 적은 코드로 작성하려 하고, DB는 (여전히 고민 중이지만) PostgreSQL을 써보려 한다.
- Radix UI가 (아주 예쁜) 컴포넌트들까지 추가한 Theme을 정식으로 발표했다. 정말 환상적인 UI 프레임워크다.