← 프로젝트 목록

개요
경력·교육·프로젝트·기술 스택·자격증을 관리자 페이지에서 직접 추가·수정·삭제하고, 저장하면 미리 만들어 둔 공개 페이지가 바로 갱신됩니다. 관리자 영역은 NextAuth 세션으로 보호하며, Next.js 16 App Router와 Neon PostgreSQL, Vercel로 운영합니다.
맡은 일
- 기획 · 디자인 · 개발 · 배포 단독
구현과 문제 해결
- 갱신 공개 페이지는 빌드 때 정적으로 만들고, 관리자 API가 저장할 때 revalidatePath로 다시 만들어 방문할 때마다 DB를 조회하지 않음
- DB MySQL에서 Neon PostgreSQL로 옮기고, 앱은 풀링 주소·스키마 반영은 직결 주소를 쓰도록 나눔
- 인증 NextAuth Credentials + bcrypt, 모든 관리자 API에서 세션 확인. (아이디+IP)·IP별로 15분 안에 5번 틀리면 잠가, 남이 일부러 틀려서 관리자를 잠그지 못하게 함. 시도를 먼저 기록한 뒤 판단해 동시 요청으로 한도를 넘지 못하고, 서버리스라 기록은 DB에 남김
- 검증 입력 칸 설정에서 zod 스키마를 만들어 항목별로 나뉘어 있던 관리자 API 10개 파일을 2개로 합치고, 설정에 없는 칸·잘못된 값·http(s)가 아닌 주소는 저장 전에 400으로 거절
- 공유 페이지별 메타데이터와 링크 미리보기 이미지(OG) 생성
결과
- 경력·교육·프로젝트·기술·자격증을 관리자 화면에서 고치면 공개 페이지에 바로 반영
- 입력 검증·로그인 잠금·관리자 API 응답 코드를 vitest로 확인하고, push마다 GitHub Actions에서 타입 검사·lint·테스트 실행
- Vercel에 배포해 imjune.vercel.app으로 운영
- 소속
- 개인 프로젝트
- 기간
- 2026
- 구분
- 개인 프로젝트
- 역할
- 단독 개발
- 기술
- Next.jsTypeScriptPrismaPostgreSQLNextAuthTailwind CSSVercel