본문 바로가기

Study for.11

4년 전 포인트 시스템이 나에게 남긴 것: Slack 장애 알림 주인공이 되지 않는 날이 되기까지 내가 동시성 문제를 두 번 겪은 이야기 — 포인트 시스템의 트라우마가 이커머스 프로젝트에서 약이 된 건에 대하여 나는 동시성이라는 단어를 들으면 명치가 살짝 아프다. 비유가 아니다. 진짜 아프다. 진짜다4년 전, 회사에서 포인트 관련 API를 처음부터 만들 일이 있었다. 이미 테이블 구조는 정해져 있었고, 여기저기 쿼리 형태로 흩어져 있던 포인트 관련 기능을 하나의 API로 모으면 되는 과제였다. 돌이켜 보면 그 과제의 무게를 나는 전혀 인식하지 못했다. 그때까지 기존 시스템에 기능을 얹는 작업만 해왔던 나에게는, 그냥 API 엔드포인트를 하나 만드는 감각이었다. 기존 기능을 목록으로 정리하고, 하나씩 구현하고, 운영에 올렸다. 동료들의 관심 속에서, 모든 것이 순조로워 보였다.문제는 모니터링을 할 생각.. 2026. 3. 6.
SQL에 월세 내던 비즈니스 규칙, 도메인으로 이사했습니다 부제: 오늘, 비즈니스 규칙이 SQL에서 탈출한 비율이 0.03퍼센트 늘었습니다"오늘 전 세계 극심한 빈곤 상태에 있는 사람의 수가 0.01퍼센트 줄었습니다!"이 문장을 뉴스 속보로 내보내는 방송국은 없을 것이다.하지만 이 0.01퍼센트가 매일 쌓이면, 10년 뒤에는 수억 명의 삶이 달라진다.최근에 코드를 다루면서 비슷한 감각을 느끼고 있다.하루하루의 변화는 눈에 보이지 않지만,그 변화들이 모두 하나의 질문을 향해 쌓이고 있다는 감각이다.비즈니스 규칙은 어디에 살아야 하는가?서울 전셋값만큼 어려운 질문은 아니지만,잘못된 곳에 살게 두면 매달 월세를 내야 한다는 점에서는 비슷하다.쉬는 날 오후의 장애 대응, SQL과 Java를 오가며 원인을 추적하는 디버깅,"이걸 수정하면 다른 데 영향 없나요?"라는 질문.. 2026. 2. 27.
지루하고 현학적인 설계문서가 필요한 이유 슬랙 100건의 쓰레드가 알려준 것들- 급한 작업일수록 설계가 먼저였다그 긴 이야기의 시작. 대충 그 긴거..이번 주에 꽤 인상적인 경험을 했다. 한마디로 요약하면 "급한 작업일수록 설계를 먼저 해야 한다"는 것인데, 사실 이 문장은 누구나 알고 있고, 어디서든 한 번쯤은 들어봤을 이야기다. 그런데 막상 현장에서 촉박한 일정과 마주하면, 설계를 건너뛰고 코드부터 치는 자신을 발견하게 된다. 이번에 내가 딱 그랬고, 그 대가로 기획자와 나 사이에 슬랙 쓰레드 메세지 100건이 넘는 소통 괴물을 만나게 되었다.그리고 그 쓰레드 괴물을 바라보면서 이 블로그 포스팅의 아이디어를 얻었다. 이건 기회야..! 글로 남겨야만해..! 이 글은 그 경험을 돌아보면서, 비슷한 상황에서 어떤 도구와 방법론이 도움이 될 수 있.. 2026. 2. 13.
[WIL - TDD] 대리님 ~ 레드 페이즈에서 어서션 빌드업하고 그린 넘어가서 리팩터링 사이클 돌려주세요 ~ 커버리지 리포트 머지 전에 락앤 주시고요 ~ 루퍼스 백엔드 코스 1주차 회고 - 테스트 주도 개발, 그리고 소통의 도구올해 안에 개발 스킬에 대한 갈증을 해소하고 싶었다. 무언가 부족하다는 감각은 있었지만, 그걸 어디서부터 채워야 할지 잘 몰랐다. 그러다 루퍼스 백엔드 코스를 알게 됐고, 고민 없이 신청했다. 1주차 주제는 테스트 주도 개발이었다. 회사에서 받은 피드백 중 기억에 남는 게 있다. "현우님은 여러 관심의 포인트를 가지실 때가 아닌 것 같아요, 기본부터 합시다", "지금 기술적인 공부를 할 때가 아닌 것 같아요." 이 문장들이 꽤 오래 머릿속에 남아 있었다. 영어 대문자처럼 머리에 각인된 기분이었다.내가 부족하다는 건 알고 있었는데, 그게 구체적으로 어떤 부분인지 설명하기 어려웠다. 코드를 작성하는 능력인지, 설계 감각인지, 아니면 일.. 2026. 2. 8.
Ktlint가 선명하게 코드를 핥고 있었다 Kotlin 프로젝트에서 팀 전체의 코드 품질과 커밋 규칙을 자동으로 통일하는 방법 이 글을 쓰게 된 계기부터 이야기하려고 한다.회사에서 같은 팀원분과 함께 Kotlin 스터디를 하고 있다. 그중에 프론트엔드 한 분이 계신데, 그분이 Kotlin 코드를 처음 작성하면서 자연스럽게 물어본 질문이 있었다. "Kotlin에는 ESLint 같은 거 없어?" JavaScript나 TypeScript 생태계에서 ESLint는 코드 스타일 검사와 자동 수정을 담당하는 도구인데, 프론트엔드 개발을 해본 사람이라면 프로젝트 초기 세팅에 당연히 포함시키는 도구다. 그 질문이 꽂혔다. Kotlin에도 당연히 비슷한 도구가 있는데, 정작 우리 회사 내부에서는 이런 기본 설정이 프로젝트마다 통일되어 있지 않았다.그때.. 2026. 2. 6.