포트폴리오

초코집사 블로그

2025년 08월 02일
191

Spring Boot + AWS 개인 프로젝트 개발 블로그

mainscreen

프로젝트 개요

개인 개발 블로그를 단순한 정적 사이트가 아닌, 완전한 풀스택 애플리케이션으로 구현한 프로젝트입니다. 백준과 프로그래머스에서 푼 알고리즘 문제를 Chrome Extension으로 자동 포스팅하고, GitHub Actions로 CI/CD 파이프라인을 구축했습니다.

핵심 기능

  • 알고리즘 자동 포스팅: Chrome Extension + LLM을 활용한 풀이 설명 자동 생성
  • JWT 기반 인증: Access/Refresh Token을 활용한 보안 인증
  • Redis 캐싱: 조회수 집계 및 인기 포스트 캐싱으로 성능 최적화
  • Markdown 에디터: 마크다운 기반 포스트 작성 및 실시간 프리뷰
  • 방문자 통계: IP 기반 중복 방지 방문자 카운팅

기술 스택

Backend

  • Framework: Spring Boot 3
  • Language: Java 17
  • Database: MySQL 8.0
  • Cache: Redis 7
  • Authentication: JWT
  • ORM: Spring Data JPA + Hibernate
  • API Docs: SpringDoc OpenAPI (Swagger)

Frontend

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • State Management: React Hooks
  • Markdown: CommonMark

DevOps & Infrastructure

  • Cloud: AWS Lightsail
  • Container: Docker + Docker Compose
  • CI/CD: GitHub Actions
  • Storage: AWS S3
  • Frontend Hosting: Vercel
  • Monitoring: Spring Boot Actuator + Prometheus

AI & Automation

  • LLM: Google Gemini API
  • Browser Extension: Chrome Extension Manifest V3
  • Automation: GitHub Actions Workflow

아키텍처 설계

시스템 아키텍처

arc

데이터베이스 설계

주요 엔티티 관계:

  • User (1) - (N) Post: 작성자 관계
  • Category (1) - (N) Post: 카테고리 분류
  • Post (N) - (M) Tag: 태그 다대다 관계
  • User (1) - (N) ApiKey: API 키 관리
-- 핵심 테이블 구조
posts
├── id (PK)
├── title
├── content (TEXT)
├── html_content (TEXT)
├── view_count
├── published
├── category_id (FK)
├── user_id (FK)
└── timestamps

post_tags (연결 테이블)
├── post_id (FK)
└── tag_id (FK)

핵심 기능 구현

1. 알고리즘 자동 포스팅 시스템

chr

백준/프로그래머스에서 푼 문제를 한 번의 클릭으로 블로그에 자동 포스팅하는 시스템입니다.

2. Redis 캐싱 전략

visi

조회수 집계와 인기 포스트 조회에서 Redis를 활용해 DB 부하를 90% 이상 감소시켰습니다.


3. JWT 인증 시스템

관리자 로그인 JWT 인증 시스템 도입 Access Token과 Refresh Token


향후 개선 계획

1.검색 기능

  • Elasticsearch 연습
  • 전문 검색 및 하이라이팅

2.모니터링

  • Grafana + Prometheus 대시보드
  • 로그 시스템 구축

3.Apache Kafka 연습

  • 프로젝트에 도입

마치며

이 프로젝트는 단순한 블로그를 넘어 풀스택 개발 경험이었습니다.

  • 백엔드: Spring Boot + JPA + Redis
  • 프론트엔드: Next.js + TypeScript + Tailwind
  • DevOps: Docker + GitHub Actions + AWS
  • 자동화: Chrome Extension + LLM API

각 영역에서 발생하는 실전 문제들을 직접 해결하면서, 책이나 강의에서는 배울 수 없었던 귀중한 경험을 쌓을 수 있었습니다.

블로그 개발 더보기

Blue Green 무중단 배포
스프링 시큐리티 적용
oauth 구현
다중 시큐리티 필터 체인
블로그 캐싱 전략


댓글을 불러오는 중...