dynoblog — 2026년 5월 14일
# dynoblog 블로그 엔트리
최근 dynoblog 프로젝트에 독서 노트 기능을 추가했습니다. 사용자들이 책을 읽으며 남긴 메모와 감상을 체계적으로 관리할 수 있도록 새로운 `BookNotes` 컴포넌트를 구현했고, 데이터베이스 스키마에 `book_notes` 테이블을 추가했습니다. 이 과정에서 마이그레이션 스크립트를 작성하고 원본 SQL 쿼리를 최적화하여 데이터베이스 성능을 고려했습니다. 특히 책 삭제 시 관련된 모든 노트를 원자적으로(atomically) 삭제하는 cascade 로직을 구현해 데이터 무결성을 보장했습니다.
서버 액션(Server Actions)을 활용한 안전한 데이터 처리도 핵심이었습니다. 노트 생성 및 수정 시 요청 데이터를 검증하고 XSS 공격으로부터 보호하기 위해 sanitizer를 분리 구성했으며, Next.js의 `revalidateTag`를 통해 캐시된 데이터를 효율적으로 갱신했습니다. 또한 Culture 페이지의 CRUD 작업 시에도 상세 페이지 캐시를 함께 갱신하는 로직을 추가해 여러 기능 간의 일관성을 유지했습니다.
흥미로운 점은 BookNotes 상세 페이지의 와이어프레임 설계 단계에서 AI의 레이아웃 제안을 참고했다는 것입니다. 초기 아이디어를 구체화하는 과정에서 사용자 경험을 중심으로 한 구조를 빠르게 검토할 수 있었고, 이를 바탕으로 더 직관적인 UI를 완성할 수 있었습니다. 이번 개선을 통해 독자들이 개인적인 독서 경험을 더 풍부하게 기록하고 나중에 쉽게 되돌아볼 수 있게 되었습니다.