5분 단위로 묶인 이력, 그리고 pnpm lockfile의 버전 다운그레이드
프로젝트 이력을 5분 간격으로 그룹화해서 보여주는 기능을 구현하고, pnpm lockfile 버전을 호환성 이슈로 다운그레이드했습니다. 권한 분기 처리와 스크롤 기반 UI 개선도 함께 진행했어요.
프로젝트 이력을 5분 간격으로 그룹화해서 보여주는 기능을 구현하고, pnpm lockfile 버전을 호환성 이슈로 다운그레이드했습니다. 권한 분기 처리와 스크롤 기반 UI 개선도 함께 진행했어요.
오늘은 바톤 매뉴얼 프로젝트에서 꽤 많은 일이 있었습니다. 코드 라인만 봐도 +23k/-11k니까요. 물론 이 숫자가 전부를 말해주진 않지만, 오늘 하루 팀이 어디에 집중했는지는 확실히 보여줍니다. 수정 내역을 기록한다는 것 가장 눈에 띄는 작업은 카테고리와 게시물의 수정 내역 추적 기능이었습니다. 사실 "누가 언제 뭘 바꿨는지" 기록하는 건 당연해 보이지
바톤 매뉴얼 프로젝트에 변경 이력 추적 시스템을 구현하고, 카테고리/게시물 삭제 로직을 개선했습니다. 1분 단위 히스토리 그룹화와 before_content 저장으로 데이터 변경을 추적할 수 있게 되었습니다.
검색 정렬 기본값 변경이 생각보다 복잡했던 이유와, 히스토리 기능을 과감히 제거한 이야기. 그리고 새 프로젝트 아트페어 웹사이트의 시작.
검색엔진 차단 설정, 사용자 관리 AuditLog, 프로젝트 변경 이력 추적, ViewEvent 스키마 정리 등 디테일 작업을 진행한 월요일. 화려하진 않지만 프로젝트를 견고하게 만드는 하루였습니다.
일요일 아침, 레포지토리에 알림이 떴습니다. 이 열일하고 있더라고요. 온라인 쇼핑몰 T에서 Shopify 테마 동기화 커밋이 2건 들어왔습니다. 둘 다 로, 아주 작은 변경이에요. 아마 운영팀에서 직접 Shopify 어드민에서 뭔가 수정하신 것 같습니다. Shopify 테마 개발의 재미있는 점: 코드 에디터 말고도 변경이 들어오는 경로가 있다는 것 저희는
조회수 추적 시스템을 봇 필터링과 중복 방지 로직으로 개편하고, 집계 테이블 대신 원본 이벤트 직접 쿼리 방식으로 전환해 PV/UV 이중 지표와 시간대별 통계를 제공하게 됐습니다.
쇼핑몰 H 관리시스템에 활성/비활성 배너 독립 순서 관리를 위한 이중 순서 필드 패턴을 적용하고, heymap에 일별 조회수 동기화 파이프라인을 구축했습니다. 세션 실시간 검증 강화와 CSV 포맷팅 개선도 함께 진행했습니다.
PII 암호화와 FK 제약의 충돌을 raw 쿼리로 해결하고, 하이츠스토어를 라이트모드 기본으로 전환하며 배너 시스템을 정규화한 금요일.
사내 프로젝트 관리 도구에 CRUD 기능과 드래그 앤 드롭 카테고리 관리 기능을 추가했습니다. 실제로 쓸 만한 도구가 되어가는 과정이 재밌네요.
회사 전용 프로젝트 관리 도구에 구글 로그인 연동과 권한 제어를 구현하고, 프로젝트 CRUD 기능을 처음부터 끝까지 완성한 하루. 내부 도구라고 대충 만들 수 없다는 마음으로 차근차근 쌓아가는 중입니다.
iOS 환경에서 모달 배경 스크롤을 막는 방법을 정리했습니다. position: fixed와 스크롤 위치 저장/복원 로직으로 해결했어요.
테스트 코드의 반복되는 Mock 설정을 공통 유틸리티로 리팩토링하고, 여러 프로젝트의 실무 작업을 진행한 하루. 테스트 코드도 결국 코드라는 당연한 진리를 다시 한번 새깁니다.
개인정보 암호화를 구현하면서 이메일 해시 조회 방식 전환, 테스트 코드 작성, 그리고 예상치 못한 Vercel 배포 이슈를 해결한 하루의 기록.
PII 암호화와 미들웨어 보안 강화, Jest 테스트 도입, 그리고 통계 대시보드 확장. 화려하진 않지만 서비스를 단단하게 만드는 작업들.
보안 감사 결과를 바탕으로 Critical 보안 이슈 5건을 수정하고, PIPA 준수를 위한 SMS MFA, 중복 로그인 방지, 역할 변경 이력 기록 기능을 구현했습니다.
오늘은 커텐츠 관리 시스템에서 보안 점검 대응 작업을 집중적으로 진행했습니다. 사실 이런 보안 컴플라이언스 작업은 개발자라면 한 번쯤 겪어봤을 그 순간이죠. "저희 서비스, 개인정보보호법 기준 맞춰야 하는데요..." 라는 이야기를 듣고 나서 시작되는. 점검표와의 조우 !체크리스트 체크!|100% 점검표를 받았을 때 가장 먼저 한 일은 우선순위 분류였습니다.
ISMS-P 인증 요건을 위한 Audit Logger 구현, 차등 보관 정책 크론잡, 통합 에러 처리 개선, 그리고 Docker 기반 로컬 Supabase 환경 구축까지 완료한 하루였습니다.
ISMS-P 인증을 위해 Prisma Extension과 AsyncLocalStorage를 활용한 자동 DB 로깅 시스템을 구현하고, 바톤 개발 로그의 SEO와 동적 OG 이미지 기능을 개선한 금요일이었습니다.
SMS, 이메일, 어드민 컴포넌트의 대규모 리팩토링으로 500줄 이상의 중복 코드를 제거하고, ErrorCollector와 로그인 이력 추적 시스템을 새로 구축한 하루.
아트페어 H VIP시스템 프로젝트의 미들웨어 접근 제어 로직을 전면 개편하고, CSV 전화번호 포맷팅 문제를 해결한 하루. 경로 변경이 불러온 31개 커밋의 기록입니다.
아트페어 H VIP시스템 프로젝트에서 AWS S3를 Supabase Storage로 마이그레이션하고, 사용자 역할 기반 인증 체계를 강화한 하루였습니다.
UTC/KST 시간대 처리 개선, 드래그앤드롭 순서 변경, 자동 마이그레이션 모드 등 네 개 프로젝트에 걸친 견고함을 위한 작업들을 진행했습니다.
UTC/KST 시간대 변환, Dialog 내 스크롤 충돌, 외부 시스템 연동 등 "당연히 될 줄 알았는데"에서 출발한 다양한 수정 작업을 진행한 하루.
결론부터 말씀드리자면, 우리가 지금껏 쌓아온 것들을 버려야 할 때가 온 것 같습니다. ―물론, 전부는 아닙니다. AI 네이티브란 무엇인가? 최근 업계에서 'AI 네이티브'라는 말이 자주 들립니다. 설계 단계에서부터 AI를 중심으로, 인간과 에이전트의 협업이 자연스럽게 일어나며 운영의 자율성·지능성·적응력을 갖춘 것을 의미한다고 하죠. !매트릭스를 모르는 세
아트페어 H VIP시스템의 CSV 업로드에 상세 로깅과 Rate Limiting을 추가하고, 페이지네이션 컴포넌트를 통합했습니다. 쇼핑몰 H 관리시스템에서는 큐레이션-카테고리 연결 기능을 완성했습니다.
안녕하세요. 스튜디오 바톤의 CTO이자 공동 창업자, 개발팀 리드를 맡고 있는 한송욱입니다. 스튜디오 바톤은 2013년에 설립되어 웹서비스 구축과 비주얼 브랜딩 영역에서 활동 중인 디자인 스튜디오입니다. (좀 더 알아보기) 3년 전 소개 페이지를 처음 만들었을 때와 비교하면, 정말 많은 것이 달라졌습니다. 기술 스택도, 일하는 방식도, 심지어 '개발자'라는
안녕하세요. 스튜디오 바톤의 대표이자 공동 창업자, 개발팀 리드를 맡고 있는 한송욱입니다. 스튜디오 바톤은 2013년에 설립되어 웹서비스 구축과 비주얼 브랜딩 영역에서 활동 중인 디자인 스튜디오입니다. (좀 더 알아보기)
워드프레스 레거시 카테고리 시스템을 DB 기반으로 전환하고, 월 단위 페이지네이션과 활성화 제한 로직을 추가한 리팩토링 작업 기록입니다.
안녕하세요. 스튜디오 바톤의 CTO이자 공동 창업자, 개발팀 리드를 맡고 있는 한송욱입니다. 스튜디오 바톤은 2013년에 설립되어 웹서비스 구축과 비주얼 브랜딩 영역에서 활동 중인 디자인 스튜디오입니다
사소하지만 궁금할 수 있는
React useCallback의 stale closure 문제를 함수형 업데이트 패턴으로 해결하고, 아트페어 H VIP시스템의 CSV 업로드 검증 기능과 캐시 관리 시스템을 대폭 개선한 하루였습니다.
아트페어 H VIP시스템 등록 시스템의 전체 워크플로우가 완성되었고, 하이츠스토어에서는 국문/영문 스킨을 하나의 레포로 통합하며 API 엔드포인트를 전면 마이그레이션했습니다.
캐싱, 어디까지 해봤니? 오늘은 캐싱 전략을 세 가지 레벨에서 동시에 다룬 날이었습니다. 쇼핑몰 M 관리시스템에서는 Cafe24 카테고리를 10분마다 DB에 동기화하는 시스템을 구축했고, 쇼핑몰 H 관리시스템에서는 Redis 캐시 상태를 대시보드에서 한눈에 볼 수 있게 만들었습니다. 특히 쇼핑몰 M 관리시스템 쪽이 흥미로웠는데요. 처음엔 SWR로 프론트 단
RDS에서 Supabase로 DB 마이그레이션하며 테이블 네이밍 컨벤션을 정리하고, API 캐시 TTL 관리 구조를 개선한 하루. 작지만 의미있는 커밋들의 연속이었습니다.
이관의 계절이 왔다 오늘은 여러 프로젝트에서 이관 작업이 동시에 진행된 하루였습니다. 재단 웹사이트 A와 쇼핑몰 P 관리시스템에서 이관 문서를 작성하고 파일을 정리하는 작업이 한창이었는데요. 사실 이런 작업들이 개발할 때는 별로 눈에 안 띄지만, 나중에 "아 그때 문서 좀 제대로 써뒀으면..." 하고 후회하게 되는 그런 일들이죠 (경험담). 특히 쇼핑몰 P
RESTful API 마이그레이션 완료와 함께 ContentEvent에 UID 시스템을 도입하면서 레거시 호환성을 유지한 개발 경험을 공유했습니다. 캐시 전략 최적화와 사용자 경험 개선도 함께 진행되었어요.
Vercel 환경의 307 리다이렉트로 인한 모니터링 오탐지를 수정하고, Redis 통계 조회 페이지를 새로 개발했습니다. 하이츠 백오피스 API 개선과 아트페어 UI 컴포넌트 통합 작업도 진행했어요.
Firebase Auth 초기화 타이밍 문제로 발생하던 흰 화면 버그를 수정했습니다. 여러 프로젝트에서 UI 개선과 기능 추가 작업도 진행했어요.
MD 추천 기획 관리와 콘텐츠 테스트 기능을 새로 구축하고, 프로젝트 조회 방식을 uid에서 urlsearchtext 기반으로 전면 개편했습니다. 드래그 앤 드롭과 데이터 무결성 강화까지, 사용성과 안정성 두 마리 토끼를 잡은 하루였네요.
GitHub Actions 자동 배포 전환, 이미지 화질 개선, 큐레이션 기능 제거 등 다양한 개선 작업을 진행한 금요일. 기술 부채를 줄이고 사용자 경험을 개선하는 데 집중했습니다.
데이터 구조 변경과 마이그레이션 로직 개선, 그리고 자잘한 UI 개선 작업들로 채워진 하루. 특히 '공급업체'에서 '다도구 작가'로의 데이터 연동 변경이 인상적이었습니다.
사파리 브라우저 호환성 이슈 해결과 블로그 무한스크롤 리팩토링, 그리고 각종 UI 개선 작업으로 27개 커밋을 진행한 하루였습니다.
세 개 프로젝트에서 총 40개 커밋으로 버전 관리 시스템, 검색/FAQ 기능, 백오피스 초기 구축을 동시에 진행한 바쁜 하루. 각 프로젝트마다 다른 속도와 방향으로 성장하는 모습이 인상적이었습니다.