GitHub ↗
← 모든 프로젝트
웹사이트 / 2026

SRY Pages

만든 것을 모으고, 배운 것을 기록하는 나만의 웹 공간.

Next.jsJavaScriptFirebaseNoSQLVercelDBMSDB 설계Cloud FirestoreAI-assisted DevelopmentCodex
DBMS
Cloud Firestore · 문서형 NoSQL DBMS
DB 설계 담당
포스트·프로젝트·공개 상세·비공개 메모·권한 문서와 접근 범위 설계
01 / PROBLEM & GOALS

문제/목표 — 왜 만들었는가

만든 것과 배운 것을 한곳에서 관리하기

포트폴리오와 학습 포스트를 한곳에 모으고 관리자 화면에서 콘텐츠를 편집하는 개인 웹사이트입니다.

구현 환경
Next.js · React · JavaScript · Firebase · NoSQL
콘텐츠 저장
Cloud Firestore · NoSQL 문서 DB
접근 제어
Google 로그인 · Firestore Rules

기존 문제

정적 파일로 콘텐츠를 관리하면 글과 프로젝트를 수정할 때 소스를 바꾸고 배포해야 합니다. 공개 콘텐츠와 비공개 작업 메모의 접근 권한도 구분해야 합니다.

사용자가 필요로 한 것

방문자는 프로젝트와 학습 기록을 살펴보고, 사이트 소유자는 로그인 후 콘텐츠를 작성·수정·발행·삭제할 수 있어야 합니다.

목표

콘텐츠 관리 흐름 통합

포스트와 프로젝트를 같은 관리자 화면에서 생성·수정·발행·삭제합니다.

공개와 비공개 분리

공개 사례 문서와 관리자 작업 메모를 서로 다른 컬렉션에 저장합니다.

DB 설계 담당

포스트·프로젝트·공개 상세·비공개 메모·권한 문서와 접근 범위 설계

현재 저장소의 구현을 기준으로 작성했습니다. 개인 역할과 실제 운영 성과는 작성자가 보완할 수 있습니다.

02 / SOLUTION & IMPLEMENTATION

해결/구현 — 어떻게 만들었는가

전체 아키텍처

방문자는 Next.js 공개 페이지를 통해 Firestore REST API로 공개 데이터를 조회합니다. 소유자는 Google 로그인과 관리자 권한 확인 후 Firebase SDK로 콘텐츠와 공개 상태를 저장합니다. Firestore 보안 규칙이 공개 읽기와 관리자 전용 쓰기 및 비공개 메모를 구분합니다.
공개 읽기와 관리자 쓰기의 연결

현재 저장소의 조회·편집 경로를 정리했습니다. 소유자 제한은 관리자 이메일 설정과 규칙 게시 후 적용됩니다.

크게 보기 ↗
이미지의 텍스트 설명

방문자는 Next.js 공개 페이지를 통해 Firestore REST API로 공개 데이터를 조회합니다. 소유자는 Google 로그인과 관리자 권한 확인 후 Firebase SDK로 콘텐츠와 공개 상태를 저장합니다. Firestore 보안 규칙이 공개 읽기와 관리자 전용 쓰기 및 비공개 메모를 구분합니다.

App Router · 공개 화면

서버에서 발행된 포스트와 프로젝트를 읽어 목록·상세 화면을 표시합니다.

관리자 · Firebase SDK

Google 로그인과 관리자 권한 확인 후 콘텐츠와 발행 상태를 저장합니다.

Firestore · 접근 제어

콘텐츠·상세·비공개 메모·프로필을 분리하고 보안 규칙으로 쓰기 권한을 제어합니다.

기술 선택 이유

Next.js App Router

공개 페이지는 서버에서 데이터를 조회하고 편집 화면은 클라이언트 컴포넌트로 구성합니다.

Firebase Authentication · Firestore (NoSQL)

Google 로그인과 NoSQL 문서 저장을 연동합니다. 컬렉션별로 콘텐츠를 구분하고 문서의 published 필드로 공개 여부를 관리하며 DB 보안 규칙에서 관리자 권한을 검사합니다.

DB · API · 인프라 구조

NoSQL 컬렉션 · 문서 구조

Firestore의 컬렉션 안에 slug를 ID로 하는 문서를 저장합니다. posts·projects는 콘텐츠, caseStudies는 공개 상세, privateCaseStudies는 비공개 메모, projectVisibility는 공개 상태, admins는 권한 등록에 사용합니다.

API와 읽기 경로

공개 페이지는 Firestore REST API를 사용하고, 관리자 기본값 API는 Firebase 토큰 검증과 관리자 권한 검사를 거칩니다. 편집 화면은 Firebase SDK로 저장합니다.

핵심 처리 흐름

  1. 01. 로그인과 권한 확인

    Google 로그인 후 소유자 계정 설정과 관리자 문서를 확인합니다.

  2. 02. 콘텐츠 저장

    포스트와 프로젝트를 저장하고 포트폴리오의 공개 상태를 함께 기록합니다.

  3. 03. 공개 페이지 반영

    발행된 콘텐츠를 서버에서 조회해 공개 목록과 상세에 표시합니다.

03 / RESULTS & VALIDATION

결과/검증 — 그래서 무엇이 좋아졌는가

실제 서비스 적용 여부

현재 포트폴리오 사이트에 사용되는 프로젝트입니다. Firebase 연결과 공개 조회 응답을 확인했습니다.

관리 화면에서 편집

코드 수정 없이 포스트와 포트폴리오 내용을 저장할 수 있는 관리 화면을 구현했습니다. 실제 계정의 CRUD 실행 검증은 별도로 진행해야 합니다.

권한과 공개 화면 검증

토큰 검증·계정 제한·Markdown 보안 테스트와 공개 페이지·모바일·보안 헤더 브라우저 테스트를 실행했습니다.

검증 방법과 근거

로컬 린트와 프로덕션 빌드, 보안 단위 테스트, Playwright 브라우저 회귀 테스트로 확인했습니다. 관리자 계정 설정 및 Firestore 규칙 게시 후 실제 저장·삭제 검증이 필요합니다.