Properties
Date 2026.01.08
주요 진행 내용
이번 주에는 갤러리 홈페이지 관리자 페이지 기능을 실제 운영 관점에서 점검하며, 프로젝트 목록 관리 기능을 중심으로 개선 작업을 진행했다. 관리자 프로젝트 목록 페이지에 삭제 버튼을 추가해 개별 프로젝트를 안전하게 제거할 수 있도록 했고, 삭제 시에는 확인 모달을 노출해 실수로 인한 데이터 손실을 방지하는 흐름을 구성했다. 또한 프로젝트 순서를 직관적으로 조정할 수 있도록 드래그 앤 드롭 기반의 정렬 기능을 추가했으며, 순서 변경 시 즉시 서버에 저장되도록 구현해 새로고침 이후에도 변경된 순서가 유지되도록 했다.
진행 결과
이번 작업에서는 기능 구현 결과뿐 아니라, 작업 과정과 트러블슈팅 흐름을 모두 마크다운 파일로 문서화하는 데에도 집중했다. 어떤 문제가 어떤 맥락에서 발생했고, 어떤 시도를 거쳐 최종 해결에 이르렀는지를 상세히 기록해두어, 이후 유사한 구조의 프로젝트나 에이전트 기반 작업 시 참고 자료로 활용할 수 있도록 정리했다. 단순 결과 기록이 아니라, 에이전트가 읽고 이해하기 쉬운 흐름 중심의 문서화를 의식하며 작성했다.
인사이트 및 회고
- 기능 구현 과정에서는 관리자 페이지와 API 구조 전반을 다시 점검하게 되었고, 이 과정에서 프로젝트 생성 및 수정 시 발생하던 오류를 해결하기 위한 트러블슈팅도 함께 진행했다. 프로젝트 생성 API에서는 썸네일이 필수값으로 처리되어 있었으나, UI에서는 선택 항목으로 안내되고 있어 400 에러가 발생하는 문제가 확인되었다. 이를 해결하기 위해 필수 필드 검증 로직을 재정비하고, 썸네일이 없는 경우에는 첫 번째 이미지 데이터를 대체값으로 사용하는 방식으로 수정해 사용자 입력 흐름과 API 요구사항 간의 불일치를 해소했다.
- 또한 프로젝트 생성 및 수정 시 간헐적으로 발생하던 500 에러를 추적한 결과, Prisma 7.x와 Neon serverless 드라이버 간의 호환성 문제로 인해 로컬 Node.js 환경에서 커넥션 에러가 발생하고 있음을 확인했다. fetch 모드, WebSocket 설정 등 여러 접근을 시도했으나 근본적인 해결이 어려워 최종적으로 Prisma 버전을 6.19.1로 다운그레이드했고, 관련 어댑터 및 패키지를 정리한 뒤 Prisma 클라이언트를 재생성해 문제를 해결했다. 이후 프로젝트 생성, 수정, 목록 조회 기능이 모두 정상 동작하는 것을 확인했다.
사용한 툴 및 기술
이번 작업에서는 Next.js 기반의 관리자 페이지 구조 위에서 Prisma ORM과 Neon serverless PostgreSQL을 사용해 데이터베이스 연동을 진행했으며, 관리자 UI는 React 컴포넌트 구조로 구성했다. 드래그 앤 드롭 기능 구현을 위해 클라이언트 상태 관리와 서버 반영 로직을 함께 고려해야 했고, API 라우트 설계 시에는 관리자 전용 기능임을 감안해 데이터 검증과 에러 처리 흐름을 보다 명확히 정리했다. 전체 작업은 Antigravity 환경을 중심으로 진행했으며, 구현과 수정, 테스트를 반복하는 과정에서 AI 에이전트가 코드 작성과 구조 정리를 주도하고, 나는 중간중간 결과를 검토하며 방향을 조정하는 방식으로 작업했다.
다음 주 계획
차주에는 현재 구현된 관리자 화면을 실제 사용 시나리오 기준으로 테스트하며, 퍼블리싱 측면에서의 오류와 UI 완성도를 점검하고 수정하는 작업을 진행할 예정이다. 관리자 페이지를 ‘구현된 화면’이 아니라 ‘실제로 쓰이는 화면’에 가깝게 다듬는 것을 목표로 하며, 이 과정 역시 동일하게 문서화해 관리자 워크플로우 기반을 한층 더 안정화할 계획이다.