My Blog v2는 이전 버전(My Blog v1)에서 Headless CMS(Sanity)를 사용하던 방식에서 벗어나, 직접 백엔드를 설계하고 구축하며 개발한 블로그 프로젝트입니다.
기존에는 콘텐츠 작성에 집중한 반면, 이번 버전에서는 사용자 인증, 데이터베이스 설계, API 구성 등 서버 사이드의 전 과정을 직접 구현함으로써, 보다 높은 수준의 자율성과 확장성을 추구하고자 했습니다.
Blog_Nodes는 다음과 같은 핵심 기능을 제공합니다.
사용자 인증 (Google OAuth):
현재는 관리자(본인)만 로그인 가능하도록 제한되어 있습니다.
포스트 관리:
포스트 조회
포스트 작성
포스트 수정
포스트 삭제
프로젝트 관리:
프로젝트 생성
프로젝트 페이지 조회
프로젝트에 해당되는 포스트 목록 조회
전반적인 구조 프로젝트는 크게 세 가지 주요 부분으로 구성됩니다: 프론트엔드 (Next.js), 백엔드 (Node.js/Express), 그리고 데이터베이스 (MongoDB). 각 계층은 독립적인 책임을 가지며, 상호 간의 통신은 표준 RESTful API를 통해 이루어집니다.
프론트엔드 (Next.js) Next.js 프레임워크를 사용하여 서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG) 등의 기능을 활용하고 React 기반으로 UI를 구성합니다.
백엔드 (Node.js/Express) Node.js 런타임 환경 위에서 Express.js 프레임워크를 사용하여 구현되었습니다. 계층형 아키텍처를 통해 각 기능의 책임을 명확히 분리합니다. 다만, 현재의 코드는 api계층과 컨트롤러 계층이 통합되어있지만, 우선적으로 리팩토링이 이뤄질 계획입니다.
데이터베이스 (MongoDB) 애플리케이션의 모든 영속적인 데이터 저장을 위해 MongoDB를 사용합니다. 데이터는 컬렉션(Collection) 내에 도큐먼트(Document) 형태로 저장되며, 이는 JSON과 유사한 형태를 가집니다.