📚 도서 쇼핑몰, ink3
ink3 는 도서 쇼핑몰 서비스를 제공하는 웹 애플리케이션으로,
Gateway, Eureka, API 서버, 인증 서버, 프론트 서버로 구성된
유사 MSA 아키텍처를 기반으로 개발되었습니다.
기능별 책임을 분리해 독립적인 배포와 장애 격리가 가능하도록 하였고,
팀 간 협업 효율성과 유지보수 용이성을 높이기 위해 MSA 구조를 채택했습니다.
인증, 회원가입, JWT 발급/검증 등 보안 기능을 전담함으로써 민감한 로직을 API 서버와 분리하고,
추후 SSO나 OAuth 연동까지 유연하게 대응할 수 있도록 설계했습니다.
- 스크럼 기반 스프린트 회의
- 매일 9시 데일리 스크럼
- 로테이션 스크럼 마스터
- WBS 작성
- 매주 금요일 main 브랜치 배포
- 테스트 커버리지 측정
- 프로젝트 규칙 기반 개발
- 브랜치 전략
- PR 전략
- Git Commit Convention
| Backend | Backend | Backend | Backend |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| 권용민 | 김범준 | 김윤섭 | 이민후 |
| Backend | Backend | Backend | Backend |
![]() |
![]() |
![]() |
![]() |
| 이지현 | 이현수 | 정인엽 | 최덕영 |
- 인프라
- GitHub Action을 이용한 CI/CD 파이프라인 구축
- 무중단 배포를 위한 Shell Script 작성
- 마이크로 서버 Eureka 연결
- NginX 리버스 프록시 설정
- DB 관리
- ERD 및 DDL 버전 관리
- Shop Server(주문/결제)
- 주문 API
- 회원/비회원 주문 API 구현
- 주문 조회 API 구현
- 배송 API 구현
- 반품 API 구현
- 포장지 API 구현
- 상품 재고 및 포인트, 쿠폰 처리
- 결제 API
- 회원/비회원 결제 API 구현
- 토스 페이먼트 연동
- PayType에 따른 Resolver를 활용한 페이먼트 확장 설계
- 주문 API
- Front Server
- 주문서 작성 페이지 구현
- 주문 내역 페이지 구현 (주문 상세 페이지)
- 관리자 페이지 구현 (배송정책, 반품정책, 주문관리, 포장지관리 페이지)
- Shop API
- 도서 API
- 도서 등록 API 구현
- 도서 외부 API(알라딘)를 활용한 등록 구현
- 작가 API 구현
- 출판사 API 구현
- 태그 API 구현
- 도서 API
- Frontend
- TUI Editor를 활용한 도서 등록 구현
- 도서 관리 페이지 구현(도서 등록, 도서 수정, 관리자 도서 목록)
- 작가, 출판사, 태그 관리 페이지 구현
- 메인 페이지 구현
- 도서 상세 페이지 구현
- CI/CD 구성
- 인프라
- Nginx 리버스 프록시 및 로드 밸런서 설정
- 게이트웨이 구축 및 연결
- API Gateway에서 JWT 토큰 검증 필터 구현
- 비인증 라우팅 경로 화이트리스트 설계 및 적용
- 인증 API
- 인증 플로우 설계 및 구현
- JWT 기반 인증 시스템 구축(RSA 서명, Access/Refresh 토큰, 블랙리스트, Refresh 토큰 로테이션)
- ID/Password, OAuth2 로그인 구현
- Shop API
- API 응답 일관성을 위한 공통 응답 포맷 구성
- 전역 예외 핸들러 구성
- 권한별 접근 제어 구현
- 회원 API
- 회원/어드민 API 구현
- 맴버십 API 구현
- 포인트 API 구현
- 주소 API 구현
- 좋아요 API 구현
- 도서 API
- N 단계 카테고리 설계 및 구현
- 캐싱 구현
- 도서 검색 기능(Elasticsearch) 구현
- 프론트엔드
- 프론트엔드 레이아웃 설계(Thymeleaf, Tailwind CSS)
- 프론트 서버 로컬 개발환경 분리 및 구성
- 스프링 시큐리티를 이용한 인증/인가 구현
- 로그인, 회원가입, 휴면 회원 활성화 페이지 구현
- 회원 마이페이지 구현(내정보, 주소관리, 포인트 내역, 좋아요 목록, 회원 탈퇴)
- 관리자 페이지 구현(회원 관리, 맴버십 관리, 포인트 정책 관리, 도서 카테고리 관리)
- DB 인덱스 튜닝
- batch server
- rabbit mq
- coupon api/front
- 인프라
- GitHub Action을 이용한 CI/CD 파이프라인 구축
- 무중단 배포를 위한 Shell Script 작성
- Gateway Load Balancer 구현
- Minio 리버스 프록시 구현
- 장바구니 조회 시, Apache Bench를 활용한 캐싱 도입 전후 성능 비교
- DB 관리
- 프로젝트 초기 DDL을 통한 테이블 생성 및 관리
- Shop Server
- 장바구니 API
- 비회원 쿠키 기반 장바구니 기능 구현
- 회원 Redis/DB 기반 장바구니 기능 구현
- 장바구니 조회 시 Redis 캐싱되도록 구현
- 리뷰 API
- 리뷰 API 구현
- Minio를 활용한 이미지 업로드/수정/삭제 구현
- 도서에서도 활용하도록 Minio 관련 공통 클래스 분리
- 도서 API
- 베스트셀러/신간/추천 도서 API 구현
- 도서 좋아요 API
- 도서 좋아요 기능 동작하도록 구현
- 쿠폰 API
- 유저 쿠폰함 조회 구현
- 포인트 API
- 회원가입 시 포인트 적립 구현
- 리뷰 작성 시 포인트 적립 구현
- 결제 시 포인트 적립 구현
- 포인트 정책 오류 해결
- 테스트 커버리지 부족한 부분에 대한 테스트코드 작성
- 장바구니 API
- Front Server
- 메인 페이지
- 베스트셀러/신간/추천 도서 목록 페이지
- 장바구니 페이지
- 도서 상세 페이지(도서 좋아요 및 리뷰)
- 유저 쿠폰함 조회 페이지
- 포인트 정책 API
- config server
- 다중 서비스 구조를 위한 Spring Cloud Config Server 구축
- Git Repo 기반 중앙 설정 저장소 설계
- 환경별 프로파일 및 공통 설정 분리
- 디렉토리 구조를 활용해 dev/prod/test 설정 분리
- Config Server 갱신 시 서비스 재기동 없이 /actuator/refresh 로 설정을 반영할 수 있도록 기반 구성
- ci/cd
- 서비스 단위 분리 빌드 파이프라인 설계
- 무중단 배포 쉘 스크립트 구현
- nginx 리버스 프록시 구성
- github action yml 파일 구성
- GitHub Secrets 기반 시크릿 관리 및 배포 시 환경변수 주입 자동화
- 도서 api/front
- 관리자 및 사용자용 도서 API 전반 개발
- 도서 CRUD 및 조회 API 설계
- 복합 입력 DTO 기반 도서 등록 흐름 구현
- 도서 데이터 구조 설계 및 관리 참여
- 관리자 및 사용자용 도서 프론트 전반 개발
- batch server
- Spring Batch 기반 배치 서버 구성
- 운영 스케줄러 구성
- RabbitMQ + Batch Server 연동
- infra
- 도메인(ink3.shop) 라우팅 설계 및 서브도메인 분리
- 내부망/외부망 분리 및 서비스 접근 경로 정리
- Docker로 인프라 구성(RabbitMQ/MinIO/MySql 등)
- 방화벽 규칙 설계 및 포트 최소화







