프로젝트 배경
1) 예상 리스크 및 대응 계획 - 인스타그램 피드 형식 Masonry 갤러리에서 카테고리 전환 시 레이아웃 재계산 없이 부드러운 필터 전환 구현 필요 - 매거진 예약 발행 스케줄러의 서버 재시작 시 누락 발행 복구 및 중복 발행 방지 동시성 제어 설계 필요 - Tiptap 에디터 커스텀 블록 HTML 직렬화 결과물을 CSR·SSR 양쪽에서 안전하게 렌더링하는 XSS 방어 전략 필요 - 관리자 CRUD
프로젝트 성과
카테고리 계층 갤러리 정렬 트랜잭션 설계
카테고리 내 아이템 순서 변경 시 order_index 배치 UPDATE를 단일 트랜잭션으로 처리, 부분 실패 시 전체 롤백 구조 설계
S3 멀티파트 업로드 + 썸네일 자동 생성 파이프라인 구현
Multer 스트림을 Sharp 리사이징 파이프에 연결하여 원본·썸네일 동시 S3 업로드 구조 구현
Tiptap 커스텀 익스텐션 에디터 설계
임베드 미디어·인용구·콜아웃 3종 커스텀 블록 확장 구현, HTML 직렬화 저장·복원 사이클 및 XSS 필터링 적용
예약 발행 스케줄러 및 발행 이력 관리 구축
node-cron 분 단위 스케줄러로 pending 아티클 발행 처리, 발행·취소·재발행 이력 감사 로그 설계
Next.js 동적 SEO 메타데이터 자동화 설계
App Router generateMetadata API로 포트폴리오·매거진 상세 페이지 동적 OG 태그·title·description 자동 생성 구현
핵심 기능
진행 단계
콘텐츠 도메인 분석 및 DB 스키마 설계
2026.03.
포트폴리오·매거진·채용·문의 4개 도메인 ERD 설계, PostgreSQL 테이블 22개 정의, 카테고리-아이템 관계 모델링
프로젝트 상세
1) 포트폴리오 소개 공연기획사의 포트폴리오 갤러리, 매거진, 채용, 문의 폼을 통합 관리하는 기업 홈페이지 CMS를 Next.js + Node.js 기반으로 설계·구현. 인스타그램 피드 형식의 카테고리별 갤러리 및 관리자 CRUD 화면 16개를 포함하는 풀스택 시스템 구축. 2) 작업 범위 - 대시보드: 공연·전시·행사 등 카테고리별 콘텐츠 현황과 채용 지원 현황을 한눈에 파악하는 통합 대시보드







