[월간 기록] 2025년 12월
RDB 기반 큐, 비동기/논블로킹 관련 글 작성
RDB 기반 큐로 회사 내부에 문제 많던 코드를 개선했는데, 만족스러운 경험이였다. 나중에 기회가 되면 다뤄볼까 한다. 또한 새로운 블로그 글도 작성했는데, 이 두 작업에 이번 달의 대부분을 투자했다.
수집
흥미롭거나 유용했던 자료들
Lobsters - 해커뉴스와 비슷하지만 초대제로 운영되는 커뮤니티 | GeekNews
기본적으로 해커뉴스를 더 많이 보긴 하는데, 여기에도 재미있거나 유익한 내용이 많다. 업로드 가능한 사람이 제한적이라 그런지 올라오는 글이 해커뉴스와 잘 겹치지 않는 것 같다.
SQLite는 어떻게 테스트되는가 | GeekNews
SQLite의 테스트 방법론에 대한 공식 문서이다.
SQLite가 최근 서버 쪽에서도 사용하자는 의견이 종종 보여서 찾아보다가 알게 되었다. 로컬에서 돌려도 될 만큼 가볍고, 생각보다 높은 성능과, 수많은 기기에서 쓰일만큼 높은 신뢰도가 마음에 든다.
토이프로젝트에서 서버를 만들어야 한다면 Rust, SQLite를 사용해 만들어보고 싶다는 생각을 하고 있다.
SQLite의 알려지지 않은 이야기 | GeekNews나 Quality Management도 함께 보면 좋다.
Wide Events: 로깅의 새로운 패러다임
기존 로깅 방식의 근본적인 문제를 해결하려는 새로운 접근법. 요청당 수십 줄의 분산된 로그 대신, 하나의 포괄적인 구조화된 이벤트를 발행하자는 의견이다.
공감하는 사람들도 많을거라 생각하는데, 서비스의 로그를 분석하다 보면 불편한 상황이 많이 생긴다. 필요한 정보를 주는 로깅이 없다거나, 연결된 로그를 찾기 어렵다거나 등등.
실제 운영을 통한 평가를 받아봐야 확실해지겠지만, 이 기법을 사용한다면 문제 해결이 쉬워지지 않을까 싶다.
나날이 발전하고픈 개발자를 위한 AI 활용법
관심 가는 거만 메모했다. 빠진부분이 많다.
- 조언
- AI는 변화가 빨라서 몇 개월만 지나도 지식이 outdated됨
- 학습 모드(Study Mode) 등 LLM이 제공하는 새로운 기능들을 시도해봐야 함
- 여전히 가장 중요한 인사이트(고객, 지식)는 사람으로부터 나온다
- AI 관련 무료 공식 자료가 풍부함: Anthropic Prompt Engineering, Google Prompt Engineering, OpenAI Prompt Engineering Guide, Anthropic Courses, deeplearning.ai
- (메모: 요즘엔 Vercel의 React 프롬프트, Supabase의 PostgreSQL 프롬프트 같이 프롬프트 공유도 많이 하는 듯)
- 코딩 관점
- What + Why를 효과적으로 주는 프롬프팅: STICC
- 여전히 일부 분야에서 How가 필요: CTA(Cognitive Task Analysis, 인지 작업 분석)필요. AI와 반복적인 학습을 통한 이해. AI가 메타 평가.
- MCP는 다양한 기능이 있지만 대부분 툴 기능만 사용됨, 켰다 껐다 가능하므로 필요할때만 써서 토큰 아끼기
- 정적 타입 검사, 린터 등 Validator 활용하기, AI보다 정확함: AI 시대의 소스코드 품질
- 디버깅 마인드셋, 인프콘 2014 발표
- Kent Beck의 TDD와 AI 관련 내용: XP, TDD, 그리고 바이브 코딩: Kent Beck의 Programmatic Engineer 인터뷰 일부 번역
- 제품 개발 관점
- 문제 정의(누구를 위해, 왜, 무엇을)에서부터 시작함
- LLM/에이전트가 항상 정답은 아님: 비용을 지불하는 건 문제 해결이지 AI 자체가 아님
- 미국 VC가 언급한 지금 AI로 창업하기 어려운 분야들
- MVP, MMP, MLP 개념과 올바른 이해: MVP, MMP, MLP, MDP, MAP 스타트업 단계 가이드 : r/startups, MVP, MMP or MLP. What's best?, MVP에 대한 정확한 해석에 대한 의견
그 외
- 시궁쥐(Rat)에게 DOOM 학습시키기: 그냥 순수하게 재미있는 프로젝트. 지금도 진행중인 듯하다.
- AWS ECS의 리버스 프록시 사이드카 패턴 | Containers on AWS: AWS 직원들이 운영중인 비공식 블로그의 글. 가끔 보이는 패턴인데 명확한 이유를 찾기 어려워 궁금했던 내용. 주요 이점은 작업 분담(압축), 효율적인 트래픽 처리이다.
- 오픈 소스 어플리케이션의 아키텍쳐 | GeekNews: 인사이트 출판사에서 1권 번역본을 샀었는데, 원서는 무료로 공개되어 있다. 많은 오픈소스 프로젝트의 핵심 기여자들이 프로젝트의 설계 철학을 말해준다.
- Tokio와 Compio의 차이 - 비동기 모델 비교 | Reddit: epoll vs io_uring 기반 비동기 런타임의 차이점. IGGY의 주요 개발자가 답글을 달았는데 쉽게 설명해준다.
태그로 돌아본 웹의 30년 | GeekNews: 웹 생태계의 진화 과정을 다룬 글. 프론트엔드뿐 아니라 백엔드 개발자도 알면 유익한 내용. 관련 글: JavaScript의 간략한 역사 | GeekNews
작업
학습, 개발, 실험 등 직접 손댄 것들
RDB 기반 큐를 사용해보기
DB의 작업 성공과 함께 사이드이펙트나 추가 처리(알림, 비동기 처리)가 필요한 경우, MQ가 유용하다. 하지만 당장 고트래픽 처리와 확장성이 필요 없다면 DB 기반 스케줄러를 쓰는 게 더 좋다. (90% 이상의 경우 여기에 해당할 것이다.)
회사에서 db-scheduler를 사용하여 별도 인프라 추가 없이 단계별로 복구 가능한 Task를 만들 수 있었고, 기존의 여러 문제를 해결하는 만족스러운 결과를 얻었다. 이에 대한 건 따로 블로그를 써볼 예정이다.
우아한형제들 기술블로그에서도 유사한 패턴을 직접 구현한 사례가 있다. (왜 직접 만들었는지는 모르겠지만)
Rust에는 apalis가 제일 유명한 거 같다.
블로그 글 "동기/비동기, 블로킹/논블로킹 개념은 어디서부터 잘못되었나" 작성
X에서 개발 관련 포스팅을 보면서 시간을 때우곤 하는데, 동기/비동기 관련 사분면이 잘못되었다는 글을 보게 되었다.
명확하게 설명은 못했지만 저런 사분면으로 나눠서 설명하는 것이 뭔가 이상하다는 생각을 가지고 있던 터라, AI를 활용해 여러 자료를 찾아보았다. 이런 사분면 설명은 잘못된 설명이라는 걸 알게 되어 글을 작성했다.
요즘엔 AI를 사용하면 이전에 비해 자료 검색 속도가 말도 안 되게 빨라졌다. 정확한 자료를 빠르게 찾아볼 수 있어서 좋다.
짧은 생각
근황과 요즘하는 생각
기존에 오픈소스 기여에 관심을 가지고 더 깊이 있는 부분에 참여하고 싶었지만, 아직 많이 부족함을 느끼고 있다. 기초적인 능력 향상에 집중하기 위해 한동안은 쉴 예정이다.
AI를 개발과 자료조사에 적극 활용하면서, 공식문서나 개념을 쉽게 풀어쓴 블로그 글을 볼 필요가 없어졌다. 이제는 전문성 있는 글이나 개인적인 시선이 담긴 글 위주로 보고, 나도 그런 글을 쓰려고 하고 있다. (어떻게 보면 AI가 저품질 글을 대체했다고 볼 수 있을까?)