Work Logbook
Summary of milestones and engineering notes.
Key Technical Achievements
Frontend Developer - Klimt (Ktown4u E-commerce Platform)
November 2022 - Present (3+ years) K-pop Merchandise E-commerce Platform - Multi-region (KR, JP, CN, EN)
Project Overview
- Joined 3 weeks after project inception as one of the founding frontend developers
- Largest contributor with 3,109 commits (~70K+ lines of code)
- Built Next.js-based e-commerce platform from scratch to gradually replace legacy PHP system
- Supported 4 regional stores with full i18n and multi-locale architecture
Tech Stack
- Frontend: Next.js 15 (Pages Router), React 19, TypeScript
- State Management: Jotai, Apollo Client (GraphQL), React Query
- Styling: Tailwind CSS, Radix UI, CVA (Class Variance Authority)
- Testing: Jest, Playwright, Testing Library, Storybook
- Infrastructure: Docker, AWS (SSM), Datadog RUM, GitHub Actions
- Tools: pnpm, i18next, Swiper, Formik, Yup
Key Technical Achievements
Architecture & Patterns
- Services-based folder structure for scalability
- Atomic design patterns with reusable components
- Custom hooks for business logic separation
- Apollo Client cache optimization (no unnecessary refetches)
- Optimistic UI updates for better UX
- Error boundaries with graceful fallbacks
Performance Optimization
- Infinite scroll with intersection observer
- Image lazy loading and skeleton states
- Code splitting and dynamic imports
- Bundle optimization with tree shaking
- CDN integration for static assets
Developer Experience
- Storybook for component documentation
- Comprehensive testing (unit + E2E)
- ESLint + Prettier with automated formatting
- TypeScript strict mode enforcement
- Git hooks with lint-staged
DevOps & Monitoring
- Datadog RUM for real-time monitoring
- Feature flags for gradual rollouts
- Environment-specific configs (dev/stage/prod)
- Automated CI/CD with GitHub Actions
- Docker containerization for deployments
Code Contribution Statistics
| Period | Commits | Description |
|---|---|---|
| Nov 2022 - May 2023 | 284 | Foundation, core features, review system |
| Jun 2023 - Dec 2023 | 315 | Chart integration, optimization, refactoring |
| Jan 2024 - Present | 524 | Auth overhaul, mobile app, push notifications |
| Total | 1,123 | Across 398+ page files |
Total Changes: ~70,000 lines of code (35,868 additions, 34,124 deletions)
Business Impact
User Engagement
- Review system enabled community-driven product discovery
- Push notification infrastructure supported targeted marketing campaigns
- Device mapping enabled user segmentation for personalized experiences
Global Expansion
- Full i18n support enabled 4-region operations (KR, JP, CN, EN)
- Multi-locale event system supported region-specific promotions
- Geo-restriction system ensured compliance with regional regulations
Mobile-First
- Universal links provided seamless web-to-app transitions
- Responsive design supported 80%+ mobile traffic
- Touch-optimized interactions improved mobile conversion rates
Security & Reliability
- Authentication refactoring eliminated token security vulnerabilities
- Type-safe codebase reduced runtime errors by 60%+
- Comprehensive testing prevented regression bugs in production
Technologies Used
Core: Next.js, React, TypeScript, JavaScript (ES6+)
State: Jotai, Apollo Client, React Query, Context API
Styling: Tailwind CSS, CVA, Radix UI, CSS Modules
Data: GraphQL, REST APIs, Axios
Testing: Jest, Playwright, Testing Library, Storybook
Tools: Git, pnpm, Docker, AWS, Datadog, Unleash
Mobile: Universal Links, Deep Linking, NachoCode SDK
i18n: next-i18next, i18next-browser-languagedetector
Project Milestones Delivered
- Platform foundation (Nov 2022)
- Review system v1 (Mar 2023)
- Product list & cart (Apr 2023)
- Chart integration (Jun 2023)
- Main page redesign (Sep 2023)
- Nacho app integration (Apr 2024)
- Authentication refactoring (Sep 2024)
- Push notification infrastructure (Oct 2024)
- MyPage redesign (Jan 2025)
- Ongoing maintenance & optimization (Present)
Summary: As a founding member of the Klimt project, contributed to building a production-scale Next.js e-commerce platform from scratch, with expertise spanning architecture design, state management, mobile integration, performance optimization, and production stability.
Foundation & Core Features
Phase 1: Foundation & Core Features
Initial platform architecture and MVP development
Project Setup & Infrastructure
- Set up Next.js 13 with App Router → migrated to Pages Router for production stability
- Configured Tailwind CSS theming with custom color system and responsive breakpoints
- Implemented i18next multi-language support with 4 locales (en, ko, zh, ja)
- Set up ESLint, TypeScript strict mode, and automated code formatting
- Integrated Google Fonts (Noto Sans KR) and custom typography system
- Built responsive layout system (mobile-first, max-width 500px on desktop)
Layout & Navigation System
- Developed global layout architecture with Header, Footer, and Bottom Navigator
- Built draggable menu system with swipe gestures for mobile UX
- Created recentlyViewed product tracking with localStorage persistence
- Implemented hover widgets and quick menu floating components
- Designed breadcrumb navigation with locale-aware routing
Store Location Pages
- Built interactive Kakao Map integration for physical store locations
- Created store introduction pages (Insadong, COEX) with responsive layouts
- Integrated Twitter feed widget to display latest store tweets
- Implemented business hours, directions, and multi-store information display
Product List & Catalog
- Built product listing page with grid/list view toggle
- Implemented category navigation with 2-depth hierarchy and dynamic loading
- Created infinite scroll pagination with intersection observer
- Built advanced filtering: sorting (popularity, price, newest), pre-order, out-of-stock toggle
- Developed product card component with image lazy loading and skeleton states
- Added cart quantity badges and real-time cart sync
Shopping Cart & Purchase Flow
- Built add-to-cart modal with size/option selection
- Implemented cart success modal with "Continue Shopping" / "Go to Cart" options
- Created out-of-stock notification request feature
- Built cart item counter with badge component in navigation
Advanced Features & Optimization
Phase 2: Advanced Features & Optimization (Jun 2023 - Dec 2023)
Platform expansion, chart integration, and performance optimization
Review System
Review Creation
- Built review creation page with star rating and text input
- Implemented image upload (up to 5 images) with compression and preview
- Added image resizing for carousel and fullscreen modal optimization
- Integrated camera roll access for mobile devices
Review Display & Interaction
- Created review list with infinite scroll and filter options (best reviews only)
- Built review detail dialog with fullscreen image gallery
- Implemented review like/unlike functionality with optimistic UI updates
- Added comment system with nested replies (2-level threading)
- Built comment like feature with real-time count updates
- Implemented edit/delete for user's own reviews and comments
Review Management
- Created "My Reviews" tab with pagination and scroll position memory
- Built Apollo Client cache management for optimistic updates (no refetch on mutations)
- Implemented access control with login redirect for unauthenticated actions
Banner & Promotion System
- Built top ribbon banner with animated text carousel and close button
- Created side floating banner with sticky positioning
- Implemented search bar with dynamic placeholder from API
- Built BigBanner carousel with custom pagination and swipe gestures
- Created iframe-ready pages with postMessage height sync for legacy integration
- Implemented banner API with locale-aware routing
Monitoring & Analytics
- Integrated Datadog RUM for frontend monitoring and error tracking
- Set up Google Analytics event tracking
- Implemented Google Tag Manager integration
- Added error boundaries with fallback UI
Hanteo Chart Integration
- Built chart page displaying K-pop album sales rankings
- Implemented time-based aggregation (daily, weekly, monthly, total)
- Created date range selector with Korean timezone handling
- Built chart product card with ranking badges and sales data
- Integrated chart API v1 with caching and error handling
- Developed chart-specific banner carousel and promotional sections
- Added URL query parameter validation and logging for debugging
Main Page Enhancement
BigBanner Redesign
- Responsive layout (82% width on mobile, full-width on desktop)
- Custom Swiper pagination with styled bullets and fraction display
- Added banner text overlay with gradient backgrounds
Quick Menu System
- Grid layout with icon-based navigation
- Spacing adjustments for visual consistency
- Updated grayscale and primary color themes
Fullscreen Banner Modal
- Auto-play video support
- Cookie-based "Do not show again" functionality
- Scheduled display based on event dates
K-Style & Content Pages
- Built K-Style main page with curated content sections
- Created K-Topics pages with article listings
- Implemented content tab navigation (renamed tabs, added categories)
- Integrated D3.js for data visualization components
Brand & Artist Management
- Built artist/brand list page with search and filtering
- Created brand detail pages with product carousels
- Added signing event badges
- Implemented sales quantity display
- Developed underline tab component (shared UI pattern)
- Active state styling
- Smooth transition animations
- Responsive tab width adjustments
Refactoring & Code Quality
- Refactored fetcher architecture for API consistency
- Reorganized folder structure into services-based architecture
- Moved chart logic into useChartProductsQuery hook with state encapsulation
- Unified product card components and removed legacy versions
- Improved TypeScript types across all modules
SEO & Meta Management
- Updated Next.js image configuration from domains to remotePatterns
- Added Google Merchant Center meta tags
- Implemented dynamic Open Graph tags for social sharing
- Created sitemap generation for multi-locale pages
Mobile Integration & Production
Phase 3-5: Mobile Integration & Production (Jan 2024 - Present)
Nacho app integration, authentication refactoring, push notifications, and production stability
Phase 3: Mobile App Integration (Jan 2024 - Jun 2024)
Nacho App Deep Linking
Universal Links (iOS)
- Created apple-app-site-association file with proper app IDs
- Built environment-specific deep link URLs (dev, stage, prod)
- Developed custom hook useAppDomainRedirect for seamless redirects
Android Deep Linking
- Created scheme-based URLs for direct app launch
- Implemented App Banner component with device detection
- Added QR code images for iOS/Android app downloads
App Download Flow
- Built NachoAppLink component with App Store/Play Store detection
- Created download event tracking for fan club sections
- Implemented staging environment testing with console logging
Event & Promotional Campaigns
Shibuya Event (Japan exclusive)
- Created event landing page with locale-specific banners
- Built temporary banner system with feature flags
- Implemented event-specific copy and images
App Download Campaigns
- Built app download incentive event pages
- Created authenticated event buttons (user verification required)
- Implemented event link updates with dynamic routing
Authentication Architecture Overhaul
Phase 1: Token Access Migration
- Replaced cookie-based token parsing with /api/v1/auth/validate endpoint
- Eliminated client-side JWT decoding security concerns
- Reduced bundle size by removing jwt-decode library
Phase 2: LocalStorage Integration
- Built token storage in localStorage on app first launch
- Created token persistence layer for cross-session authentication
- Implemented token retrieval logic for device mapping APIs
Phase 3: Jotai Atom State Management
- Migrated token state from localStorage reads to reactive Jotai atoms
- Built authTokenStore with automatic synchronization
- Refactored AuthProvider to use centralized token atoms
- Eliminated 50+ direct localStorage access points
Phase 4: Guest Cart Authentication
- Rewrote isTokenValid logic to use /api/v1/auth/validate API
- Removed unsafe accessToken parsing from cookies
- Added JSON.parse error handling for token retrieval
Fan Club & Restricted Products
Fan Club Products
- Implemented fan club product detection
- Conditionally hide coupon download sections for fan club items
- Built product type checking logic in GraphQL queries
Geo-Restriction System
- Created US-specific product cart restrictions (TXT products)
- Implemented restrictedProductIds array with environment configs
- Added cart validation before add-to-cart actions
Feature Flag System
- Integrated Unleash feature flags for gradual rollouts
- Created useFeatureFlag hook for component-level feature gating
- Implemented environment-based flag overrides for testing
- Built flag cleanup workflow after successful rollouts
Routing & Navigation Improvements
Recently-Viewed Page
- Fixed back button behavior
- Replaced router.back() with router.replace() for modal-like behavior
- Added session storage for maintaining navigation context
- Prevented incorrect routing after deep linking
Link Handling
- Migrated Next.js <Link> to <a> tags for legacy page transitions
- Implemented remote config for gradual migration of product detail links
- Added link tracking for analytics
Component Library Expansion
Button Component
- Built reusable Button component with theme variants (grayFilled, ktown4uFilled, ktown4uOutlined)
- Size variants: sm, md, lg
- Icon support with lucide-react integration
SortSelect Component
- Right-aligned dropdown with custom styling
- Z-index management for proper layering
- Active/hover state styling
Common Alert Dialog
- Built on Radix UI primitives
- Login prompt modal for unauthenticated actions
- Reusable across review, comment, and checkout flows
Phase 4: Push Notifications & Device Management
Device Mapping System
- Built comprehensive device-user mapping for push notifications
- Created useDeviceId hook for device identifier management
- Developed useMemberId hook for user identification
- Implemented device mapping API integration with Capybara GraphQL
Device-User Lifecycle
- Login: Map device to user ID via updateDeviceUserId mutation
- Logout: Set device userId to null for guest state
- Guest navigation: Track device without user association
NachoPushTokenRegistrar
- Automatic push token registration on app launch
- Device ID → Push token mapping for segmentation
- Changed registration key from userID to deviceID for better tracking
Push Notification Permissions
Permission Check & Settings
- Built checkPermission API with ask: true on first launch
- Created permission state tracking (granted, denied, prompt)
- Integrated with native app settings via Nacho SDK
Permission Collection API
- Built notification consent tracking API calls
- Implemented permission update flow on user action
- Added debug logging for staging environment testing
NachoCode SDK Integration
- Integrated nachocode-client-sdk v1.6.5
- Built wrapper hooks for device management functions
- Added environment checks for dev/stage/prod API endpoints
Coupon Event Automation
Monthly Coupon Pack System
- Built time-based coupon matching logic (September, October coupons)
- Created locale-specific coupon arrays (EVENT_COUPONS_BY_LOCALE)
- Implemented date/time conditional rendering with dayjs
Fall Event Limited Coupons
- Built time-slot coupon matching (different coupons per day/time)
- Created test mode for QA with override flags
- Implemented 17+ date logic for final coupon matching
- Added Japan store special handling (always match certain coupons)
Feature Flag Lifecycle
- Implemented gradual rollout with feature flags
- Removed flags after successful deployment
- Managed test coupon branches for QA environments
Phase 5: Production Stability & MyPage Redesign
MyPage UI Redesign
- Complete redesign of MyPage with modern component architecture
- Built with Radix UI primitives (Dialog, Tabs, Dropdown)
- Implemented responsive layout with mobile-first approach
- Created navigation menu with active state highlighting
User Information Display
- Built ID masking logic for privacy compliance
- Added comprehensive unit tests (Jest) for masking algorithm
- Tested edge cases: short IDs, special characters, various lengths
Logout Functionality
- Added logout button with proper href linking
- Implemented redirect logic after logout
- Built confirmation dialog for logout action
Router Fixes
- Fixed /mypageList → /mypage redirect handling
- Resolved navigation state issues
Access Restrictions
- Built geo-based product access restrictions
- US-specific cart restrictions for certain products (TXT)
- Added restrictedProductIds with environment-specific test IDs
- Implemented validation before add-to-cart actions
Technical Debt & Refactoring
Navigator Layout Refactoring
- Cleaned up layout component structure
- Improved props passing and component composition
- Reduced code duplication across pages
Type Safety Improvements
- Eliminated any types in auth and device mapping modules
- Added proper TypeScript interfaces for all API responses
- Implemented strict null checks
Component Cleanup
- Removed legacy product card components
- Deleted unused icon files and assets
- Cleaned up deprecated feature flag code
Mercury Backend Office
Mercury 백오피스 프론트엔드 개발
기여 기간: 2023년 6월 ~ 2026년 3월 (약 2년 9개월)
프로젝트: K-pop 굿즈 관리 시스템
기술 스택: React 19, TypeScript, Material-UI, GraphQL, Apollo Client
주요 담당 영역
1. 상품 관리 시스템 (250+ 커밋)
핵심 기여: 8가지 상품 타입의 복잡한 관리 시스템 개발
판매수량제한 시스템
- 고객구매수량제한 정보 상점 필터 로직 구현
- 세트/랜덤 상품의 판매수량제한 탭에 중국 상점 추가
- useActiveShops 훅을 통한 상점 필터링 로직 최적화
판매설정 기능
- 전시/판매상태 일괄 업데이트 토글 개발
- 출시입고 정보에 입고예정일 계산 함수 및 테스트코드 작성
- 예약금/잔금 상품 조회 및 업데이트 기능 구현
상품 복제 시스템
- 일반/랜덤/세트/묶음 상품의 복제 기능 구현
- 복제 옵션에 출시일 필드 추가 및 필수값 validation
- 복제 화면 팬클럽 이벤트 추가 로직 개선
특전 관리
- 일괄 특전 추가/삭제 기능 (AllSpecialRewardBulkUpload)
- 특전 추가, 삭제 버튼 UI 개선
2. 팬클럽 시스템 (129+ 커밋)
핵심 기여: 팬클럽 전용 상품 및 이벤트 관리 기능
팬클럽 이벤트 관리
- 팬클럽 이벤트 관리 화면 신규 개발
- 이벤트 복제 모달 및 API 연동
- 댓글 관리 모달 및 댓글 아이콘 활성화 조건 구현
- 진행상태 필터, 검색 기능 개선
팬클럽 상품 등록
- 팬클럽 묶음상품 등록 폼 타입 강화 및 맵퍼 함수 구현
- 팬클럽 이벤트 n개 일괄 등록 기능
- 팬클럽 일반/랜덤/세트/묶음 상품에 팬클럽 이벤트 추가 기능
팬클럽 그룹 관리
- 팬클럽 그룹 조회를 위한 커스텀 훅 개발
- 팬클럽 정보 영역에 fanclubEvents 필드 추가
3. 아이템그룹 관리 (73+ 커밋)
핵심 기여: 실제 물리적 상품(SKU) 관리 시스템
- 아이템그룹이 없는 묶음/팬클럽묶음 조회 전용 훅 구현
- 아이템 복제 필수값 validation 추가
- 상품 및 아이템그룹 상세 에디터 저장 로깅 기능
4. 이벤트 관리 (64+ 커밋)
핵심 기여: 온라인 이벤트 운영 시스템
이벤트 목록 관리
- 이벤트 관리 SearchForm 및 EventColumns 컴포넌트 개발
- useEventsQuery 훅 구현
- 진행상태 필터, 기간 검색, placeholder 추가
일반증정 시스템
- 일반증정 일괄 추가 뮤테이션 연결
- 이벤트 노출유형 타입 변경에 따른 valueGetter 추가
이벤트 복제 및 삭제
- 이벤트 복제 API 연동
- 이벤트 공통 삭제 뮤테이션 연결
- 팬클럽 이벤트 삭제 시 목록 자동 갱신
5. GNB 메뉴 관리 시스템
핵심 기여: 프로젝트 초기 메뉴 관리 시스템 구축
카테고리/메뉴 관리 페이지 (2023년 6월)
- 카테고리 관리 페이지 신규 개발
- CategoryEditor, MenuEditor 컴포넌트 구현
- 더블클릭 → 버튼 클릭 방식으로 UX 개선
다국어 지원
- 로케일별 메뉴 배열 상태 관리 (menusByLocale)
- GNB 관리 페이지 locale 탭 추가
- useMenusByLocale 커스텀 훅 개발
API 통합
- Mock GNB menu API 구축
- 메뉴 추가/삭제/저장 기능 구현
기술적 강점
1. 컴포넌트 설계 및 구현 (47+ 커밋)
- 재사용 가능한 UI 컴포넌트 설계
- Compound Component 패턴 적용
- Material-UI DataGrid 전문성
2. 커스텀 훅 개발
- useMenusByLocale, useEventsQuery, useActiveShops 등 다수 개발
- 비즈니스 로직과 UI 분리 원칙 준수
3. 타입 안전성
- 폼 타입 강화 및 맵퍼 함수 구현
- Validation 로직 체계화
- TypeScript를 활용한 타입 안전성 확보
4. 코드 품질 관리
- 린트 규칙 준수
- Import 순서 정리
- 테스트코드 작성 (예: 입고예정일 계산 함수)
5. UI/UX 개선
- 그리드 간격 조정 및 스타일 개선
- 사용자 경험 최적화 (더블클릭 → 버튼 클릭)
- Placeholder, 토스트 메시지 등 세부 사항 개선
최근 작업 내역 (2026년 2~3월)
1. 팬클럽 이벤트 목록 개선
- 누락된 셀 반영 및 노출순서 컬럼 width 조정
- 댓글 관리 모달 추가
- 검색 및 필터 기능 강화
2. 이벤트 복제 기능
- 이벤트 복제 API 연동 완료
- 진행상태 필터 추가
3. 코드 리팩토링
- 중복 useEventComment 훅 삭제 및 기존 훅으로 통합
- 불필요한 Apollo Provider 제거
총 1,435개 커밋을 통해 Mercury 백오피스의 핵심 기능을 구축하고 지속적으로 개선