초코집사 블로그
2025년 08월 02일
191
Spring Boot + AWS 개인 프로젝트 개발 블로그

프로젝트 개요
개인 개발 블로그를 단순한 정적 사이트가 아닌, 완전한 풀스택 애플리케이션으로 구현한 프로젝트입니다. 백준과 프로그래머스에서 푼 알고리즘 문제를 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
아키텍처 설계
시스템 아키텍처
데이터베이스 설계
주요 엔티티 관계:
- 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. 알고리즘 자동 포스팅 시스템
백준/프로그래머스에서 푼 문제를 한 번의 클릭으로 블로그에 자동 포스팅하는 시스템입니다.
2. Redis 캐싱 전략
조회수 집계와 인기 포스트 조회에서 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 구현
다중 시큐리티 필터 체인
블로그 캐싱 전략
댓글을 불러오는 중...