기술 선택 이유
-
Next.js : 2026.03.12 기준 가장 최신 버전인 16버전을 선택했습니다.
-
Prisma : Typescript 기반 ORM이라 Next.js + Typescript와의 궁합이 좋다고 판단하여 채택했습니다.
-
Next-Auth v5 : 프론트엔드 개발자인 저는 복잡하고 단단한 규모의 인증을 만들기 어려울 것이라 판단하여 Next-Auth 최신 버전을 사용하여 oAuth를 구현하였습니다.
-
MYSQL : 가장 대중적으로 사용되는 관계형 DB라고 생각하여 사용하였습니다.
-
React-Markdown : 본문의 내용을 마크다운으로 정리하였습니다.
TipTap이나Quill같은 폰트 에디터 라이브러리를 활용하지 않은 이유는 구현 난이도가 비교적 높았기 때문입니다. 빠르게 기술을 선택하고 구현한 뒤 발행해야 할 글이 많았고, 이는 마크다운 문서들을 작성하여 해결할 수 있기 때문에 마크다운 형식을 활용하였습니다. -
DigitalOcean : 인프라 운영을 최소화하기 위해 비용 구조가 단순하고 저렴한 DigitalOcean을 선택했습니다. 또한, 대규모 트래픽을 고려한 복잡한 클라우드 아키텍처보다는 단일 서버 기반의 간단한 구조가 적합하다고 판단했습니다.
-
Github Action : 소스코드를 깃허브에서 관리하고 있어 별도의 CI/CD 도구를 구축하지 않고도 저장소와 자연스럽게 연동할 수 있는 깃허브 액션을 사용했습니다.
시스템 아키텍처
유저가 블로그에 접속하게 되면 Nginx에서 Next.js 코드를 실행시키고 Next.js에서 TypeORM인 Prisma를 활용해 MYSQL의 DB를 연결하는 방식으로 구동하였습니다. CI/CD의 경우 깃허브 액션을 연동하여 Droplet에 접속할 수 있도록 설계하였습니다. 이를 이미지로 보면 이러합니다.

회고
블로그를 직접 구축하면서 Next.js 기반 서비스 구조와 서버 배포 과정을 경험할 수 있었습니다. 앞으로 검색 기능과 댓글 기능을 추가할 계획입니다. 감사합니다.