# 개발 블로그 엔트리 영희네 작업실 프로젝트에 또 다른 업데이트를 배포했습니다. 이번 주는 사용자 경험을 좌우하는 여러 핵심 버그들을 수정하는 데 집중했는데, 특히 P0/P1 정합성 문제와 사용자 동의 삭제 로직, 그리고 인스타그램 피드 연동 기능을 다뤘습니다. 15개 파일에 걸친 변경으로 +361줄을 추가하고 -109줄을 정리하면서 코드 품질을 개선했습니다. 가장 주의 깊게 살펴본 부분은 P0(긴급)과 P1(높음) 우선순위의 정합성 검증입니다. 우선순위 분류 로직에서 간과되던 엣지 케이스들을 AI의 도움을 받아 체계적으로 검토하고 수정했는데, 이를 통해 시스템이 상충하는 우선순위 값을 더 안정적으로 처리하게 되었습니다. 동시에 사용자가 동의(consent) 정보를 삭제할 때 발생하던 데이터 정합성 문제도 해소했습니다. 인스타그램 피드 통합과 404 에러 페이지 개선도 함께 진행했습니다. 소셜 미디어 연동을 통해 사용자들이 더 쉽게 작업 결과물을 공유할 수 있도록 개선했고, 잘못된 경로 접근 시 사용자를 혼란스럽게 하지 않도록 404 페이지의 UX도 다시 다듬었습니다. 작은 개선들이 모여 전체 서비스의 안정성을 한 단계 끌어올렸다고 생각합니다.
# 영희네 작업실: 메일 알림과 책모임 기능 완성기 영희네 작업실 프로젝트에 메일 알림 시스템과 사용자 동의 관리 기능을 추가했습니다. 기존에 구축한 책모임(bookclub) 기능을 한층 더 완성도 있게 다듬으면서, 사용자들이 중요한 활동을 놓치지 않도록 알림 기능을 통합했습니다. 동시에 사이트 전반의 UI를 정비하고, 배포 환경에서 발생하던 여러 의존성 문제들을 차근차근 해결했습니다. 특히 `isomorphic-dompurify`를 `sanitize-html`로 교체하고, ESM-only 패키지 호환성 문제를 처리하며, Node 런타임을 명시적으로 고정하는 등 배포 안정성을 크게 개선했습니다. 책모임 기능의 상태 관리 모델도 재설계했습니다. 기존의 단순한 상태에서 `reading`(읽는 중) / `met`(모임 완료) / `finished`(완독) 세 가지 명확한 상태로 구분하여 사용자 경험을 향상시켰습니다. 새로운 탭 구조 도입으로 '소감', '나만의 문장', '모임 기록'을 체계적으로 관리할 수 있게 했으며, 이 과정에서 업로드 헬퍼를 통합하고 BookCover 컴포넌트를 분리하면서 코드 재사용성을 높였습니다. 개발 과정에서 팀의 효율성을 높이기 위해 `CLAUDE.md` 작업 가이드와 `DESIGN.md` 디자인 시스템 레퍼런스 문서를 작성했습니다. 특히 AI와의 협업 시 일관된 방향성을 유지하기 위해 이런 문서들이 얼마나 유용한지 다시 한 번 느꼈습니다. 77개 파일의 변경 사항(+5138 -1524)을 통해 기능 추가뿐만 아니라 구조적인 개선까지 단계적으로 진행할 수 있었습니다.
# 개발 블로그 엔트리 영희네 작업실 프로젝트는 개인 창작물 공유 및 협업 플랫폼으로, 이번 업데이트에서 사용자 계정 관리와 콘텐츠 편집 기능의 백엔드 실연결을 완료했습니다. Firestore를 활용해 프로필 저장, 비밀번호 변경, 글 수정/삭제 등 핵심 기능들을 구글 OAuth 인증과 함께 안정적으로 연동했으며, 특히 권한 기반의 세밀한 접근 제어를 구현해 사용자별 편집 권한을 명확하게 분리했습니다. 책 커버 이미지 업로드, 다중 사진 저장, 독서모임 오디오 처리 등 다양한 미디어 타입을 Cloudflare R2에 통합함으로써 확장성 있는 아키텍처를 갖춤하게 되었습니다. 특히 흥미로운 부분은 독서모임 기능에서 OpenAI의 Whisper와 Claude AI를 활용한 화자 분리 시스템입니다. 사용자가 업로드한 오디오를 자동으로 변환하고, AI가 참여자별 발화를 구분하는 방식으로 수동 편집 작업을 대폭 줄였습니다. 또한 AI 키워드 에세이 백엔드에서는 블라인드 처리로 작가 정보를 숨긴 채 동시 공개하는 기능을 구현해, 공정한 평가 환경을 만들었습니다. 개발 과정에서는 선택 필드 누락 시 저장 가능하도록 Firestore 설정을 조정하고, bcrypt 해시를 base64로 인코딩하는 등 예상치 못한 충돌들을 해결하며 안정성을 높였습니다. Next.js 14와 Tailwind CSS 기반의 RichEditor를 모든 텍스트 입력란에 통일해 사용자 경험을 일관되게 유지했으며, 19개 페이지의 디자인 프로토타입을 단계별로 실제 기능으로 구현하는 과정을 거쳤습니다.