hunipopolNext.js포트폴리오
hunipopol — 프로젝트 설명을 문제·선택·결과로 갈아엎고 하루 만에 버그 다잡기
2026. 7. 6.1분 읽기
계기
"왜 이 기술을 골랐는지"가 안 보인다는 피드백을 받았다. 프로젝트 설명과 README를 문제-선택-결과 구조로 다시 썼다.
- 프로젝트 5개 설명 재작성 — 기술 선택 이유를 명시
- 프로젝트별 아키텍처 로그 4건 추가 (RoundWait, TimeSlot, SalesPulse, CongKong Chatbot)
- README 전면 재작성 — 아키텍처 다이어그램 + 문제→선택→결과 구조
- logs 테이블에 project 컬럼을 추가해 로그-프로젝트 연동을 시작 (project_key 이전의 첫 버전)
카카오 인앱브라우저 다크모드 버그
카카오톡 링크로 들어온 사용자가 다크모드에서 텍스트가 아예 안 보인다는 제보가 들어왔다.
원인은 localStorage 접근이 막힌 환경에서 data-theme이 설정되지 않은 채로, OS는 다크모드를 인식하지만 --foreground 변수는 라이트 기본값(어두운 텍스트)을 그대로 쓰고 있었던 것. globals.css에 prefers-color-scheme 미디어쿼리를 추가하고, layout.tsx 초기화 스크립트에 try-catch를 둬서 localStorage 접근이 실패하면 OS 다크모드 감지로 폴백하도록 고쳤다.
그 밖에 하루 만에
- 이력서 PDF: 핵심 프로젝트 6개로 제한, 수치 없는 impact 카드 제외
- OG 이미지 자동 생성 (Next.js edge runtime ImageResponse)
- 모바일 하단 탭 제거 → 헤더로 통합 (햄버거 + 한/영 전환 + 다크모드)
- 페이지 전환 로딩바, 404/500 에러 페이지 추가
- 이력서 PDF 버튼을 admin 전용으로 제한했다가, 30분 만에 다시 전체 공개로 되돌렸다 — PDF 다운로드 자체가 포트폴리오 열람 경험의 일부라는 판단.