개발
코드 / 아키텍처 / 디버깅
-
린팅·환경 설정으로 개발 시작 지점 마련
새 프로젝트를 시작하는 첫 커밋은 대개 무심하게 넘어간다. 보일러플레이트를 깔고, 린팅 설정을 넣고, README 작성하고 — 별 거 아닌 일처럼 보인다. 하지만 초기 빌드(initial build)는 앞으로 6개월, 1년 동안의 개발 경험을 좌우하는 기초다. 이번에는 그 경험을 글로 남겨본다.
읽기 → -
별자리 교차 분석 섹션과 공유 잠금 콘텐츠 추가
최근에 점성술 보고서에 새로운 섹션을 추가하고, 그 섹션의 일부 콘텐츠를 사용자 공유 액션에 연계하는 작업을 진행했다. 간단히 말하면 "별자리 교차 분석(crossover)" 이라는 보너스 리딩을 만들고, 사용자가 친구와 보고서를 공유할 때만 그 콘텐츠가 해제되도록 설계한 것이다.
읽기 → -
Pinterest 도메인 인증으로 핀 집계 활성화
Pinterest 웹사이트 소유권 인증용 메타 태그를 src/app/layout.tsx에 추가했다. 이 작은 변경이 우리 서비스가 Pinterest 플랫폼에서 제대로 인식되고 운영될 수 있는 기반이 된다.
읽기 → -
일간 페이지 제목의 관사 중복 버그 수정
일간 마스터 페이지에서 제목 렌더링 시 "of the The" 처럼 관사가 중복되던 문제를 고쳤다. symbol 데이터 정규화 문제였다.
읽기 → -
검색 유입을 위해 14개 랜딩 페이지를 한 번에 런칭한 이유
SEO 랜딩 페이지를 14개나 추가했다. /learn 허브와 가이드 시리즈, 그리고 동적 일간 페이지까지 한꺼번에 구성한 작업이다. 이건 단순히 페이지를 많이 만든 게 아니라, 검색 엔진을 통한 유입을 체계적으로 설계한 결과다.
읽기 → -
신규 도메인으로의 진입 경로를 헤더·푸터에 추가
신규 서브도메인이 론칭되면서 기존 메인 사이트에서 그곳으로 가는 경로를 만들어야 했다. 헤더와 푸터 컴포넌트에 링크를 추가하는 작업인데, 단순해 보이지만 생각할 거리가 꽤 있었다.
읽기 → -
충전 화면 UI 버그: 텍스트 찌꺼기와 정렬 깨짐 수정
지난주 결제 플랫폼의 충전 페이지에서 작은 UI 버그 두 가지를 찾아 고쳤다. "도구 찌꺼기 텍스트"가 화면에 떨어져 있었고, 약관동의 체크박스 줄이 flex 정렬이 제대로 안 된 상태였다.
읽기 → -
충전 UI 디자인 2라운드 개선, 스타일 토큰 통일
지갑 충전 화면의 UI/UX를 두 번째로 다듬으면서, 계좌인증 부분의 스타일 네이밍을 통일했다. 사실 처음엔 이런 작업이 단순 스타일 정리인줄 알았는데, 여러 테마를 지원하는 시스템에서 일관성을 유지한다는 게 생각보다 복잡했다.
읽기 → -
이중 인코딩 방지와 정규표현식 토큰 경계 정제
블로그 리뷰 자동화 스크립트의 검증 로직을 개선했다. 코드 검증 도구(codex)를 통해 발견된 두 가지 숨은 버그를 수정한 작업이다.
읽기 → -
리뷰 블로그에서 댓글 섹션만 제거하기
블로그 게시물을 자동으로 수집·정제하는 스크립트에 댓글 영역 제거 패턴을 추가했다. 한 줄 정도의 작은 수정이지만, 데이터 품질과 파이프라인 안정성에 꽤 큰 영향을 미친다.
읽기 → -
한글 URL 인코딩 실수로 네비게이션 오탐 유발
review_blog.py에서 한글을 포함한 URL 처리 시 발생하는 인코딩 오류와, 그로 인해 연쇄적으로 터지던 네비게이션 오탐 문제를 잡았다.
읽기 → -
보관된 글 404 에러를 홈 리다이렉트로 수정
보관된 상태의 글들이 404를 반환하고 있었다. 이를 홈으로의 301 영구 리다이렉트로 바꿨는데, 덕분에 이미 검색 색인에 등재된 751건 글의 링크 권한을 보존할 수 있었다.
읽기 → -
충전 페이지를 라이트·다크 모드로 완전 개편
Figma 디자인 시스템을 기준으로 충전 페이지 전체 UI를 교체했다. 단순히 화면을 다시 그린 게 아니라, 라이트 모드와 다크 모드를 함께 지원하는 구조로 재설계한 작업이다.
읽기 → -
출금 승인 실패도 동시성 제어로 정합성 보장
출금 일괄 승인 기능에서 성공 경로와 실패 경로의 동시성 제어 방식을 통일했다. 구체적으로, 실패 분기에서도 CAS(Compare-And-Swap) 기반의 선점-복구(optimistic locking & rollback) 패턴을 적용해서 데이터 정합성을 동일 수준으로 보장하도록 정정한 작업이다.
읽기 → -
출금과 잔액복구 사이 동시성 경합, 3곳 통일로 막다
출금 상태전환과 잔액복구 사이에서 발생하던 race condition을 CAS(Compare-And-Swap) 선점 방식으로 통일해 보강했다. 결제 플랫폼에서는 동시에 일어나는 작업들 사이의 경합(race condition)이 잔액 손실이나 중복 복구 같은 심각한 문제로 이어질 수 있는데, 이번 수정은 그런 위험을 3개 지점에서 동시에 차단한 사례다.
읽기 → -
파트너 출금 승인에서 동시 요청 처리 시 상태 경합 수정
결제 플랫폼의 파트너포털 출금 승인 기능에서 발견한 동시성 버그를 고쳤다. 여러 요청이 거의 동시에 같은 출금 건을 승인하려 할 때, 상태 체크와 업데이트 사이의 간격으로 인해 중복 처리나 잔액 불일치가 생기는 문제였다.
읽기 → -
출금 채널 단순화로 결제 라우터 부채 정리
결제 시스템에서 특정 결제사가 비활성화되면서 그에 맞춘 라우터 로직을 정리했다. 겨우 한 섹션 차단 같지만, 이 작업 뒤에는 다중 PG 지원으로 인한 복잡도 관리와 단계적 마이그레이션이라는 큰 그림이 있다.
읽기 → -
원장 검증 자동화로 결제 흐름 신뢰성 확보
결제 플랫폼의 내부 원장 관리 유틸리티에 대한 golden master 단위 테스트를 작성했다. jeju Step 4 진행 전 필수 선행 작업이었는데, 이게 단순한 테스트 추가가 아니라 팀이 품질을 어디까지 담보할지에 대한 의사결정 포인트였다.
읽기 → -
구독 결제 검증 강화와 등급 동기화 일관성 확보
구독 결제 플랫폼에서 빌링키 관리와 웰컴 등급 정책을 동시에 정리한 작업을 기록으로 남긴다.
읽기 → -
CDN 엣지 IP 회전 우회 막은 rate limit 개선
블로그 서비스의 rate limit이 클라우드플레어 엣지 IP를 기준으로 작동하면서 공격자가 쉽게 우회할 수 있다는 걸 발견했다. CF-Connecting-IP 헤더를 기준으로 실제 클라이언트 IP를 감지하도록 변경해서 이 취약점을 막았다.
읽기 →