Skip to content
@nhnacademy-be09-ink3

nhnacademy-be09-ink3

📚 도서 쇼핑몰, ink3

스크린샷 2025-06-20 오후 12 05 43

💡 프로젝트 개요

ink3 는 도서 쇼핑몰 서비스를 제공하는 웹 애플리케이션으로,
Gateway, Eureka, API 서버, 인증 서버, 프론트 서버로 구성된
유사 MSA 아키텍처를 기반으로 개발되었습니다.

MSA 도입

기능별 책임을 분리해 독립적인 배포와 장애 격리가 가능하도록 하였고,
팀 간 협업 효율성과 유지보수 용이성을 높이기 위해 MSA 구조를 채택했습니다.

인증 서버 분리

인증, 회원가입, JWT 발급/검증 등 보안 기능을 전담함으로써 민감한 로직을 API 서버와 분리하고,
추후 SSO나 OAuth 연동까지 유연하게 대응할 수 있도록 설계했습니다.


🤗 팀을 소개합니다!

1️⃣ 우리 팀은 이렇게 협업해요!

  • 스크럼 기반 스프린트 회의
    • 매일 9시 데일리 스크럼
    • 로테이션 스크럼 마스터
    • WBS 작성
  • 매주 금요일 main 브랜치 배포
    • 테스트 커버리지 측정
  • 프로젝트 규칙 기반 개발
    • 브랜치 전략
    • PR 전략
    • Git Commit Convention

2️⃣ 팀원 소개

Backend Backend Backend Backend
권용민 김범준 김윤섭 이민후
Backend Backend Backend Backend
이지현 이현수 정인엽 최덕영

3️⃣ 역할

🔴 권용민

  • 인프라
    • GitHub Action을 이용한 CI/CD 파이프라인 구축
    • 무중단 배포를 위한 Shell Script 작성
    • 마이크로 서버 Eureka 연결
    • NginX 리버스 프록시 설정
  • DB 관리
    • ERD 및 DDL 버전 관리
  • Shop Server(주문/결제)
    • 주문 API
      • 회원/비회원 주문 API 구현
      • 주문 조회 API 구현
      • 배송 API 구현
      • 반품 API 구현
      • 포장지 API 구현
      • 상품 재고 및 포인트, 쿠폰 처리
    • 결제 API
      • 회원/비회원 결제 API 구현
      • 토스 페이먼트 연동
      • PayType에 따른 Resolver를 활용한 페이먼트 확장 설계
  • Front Server
    • 주문서 작성 페이지 구현
    • 주문 내역 페이지 구현 (주문 상세 페이지)
    • 관리자 페이지 구현 (배송정책, 반품정책, 주문관리, 포장지관리 페이지)

🟠 김범준

  • Shop 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
      • 회원가입 시 포인트 적립 구현
      • 리뷰 작성 시 포인트 적립 구현
      • 결제 시 포인트 적립 구현
      • 포인트 정책 오류 해결
    • 테스트 커버리지 부족한 부분에 대한 테스트코드 작성
  • 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 등)
    • 방화벽 규칙 설계 및 포트 최소화


⚒️ 기술 스택

아키텍처 다이어그램

CI/CD 다이어그램

ERD


마무리하며

수료식 기념 팀원 전체 사진✨

TA님과도 찰칵!📷

Popular repositories Loading

  1. Ink3 Ink3 Public

  2. ink3-api ink3-api Public

    NHN Academy 프로젝트 - ink3 백엔드 리포지토리

    Java 3

  3. ink3-auth ink3-auth Public

    Java 1

  4. ink3-batch ink3-batch Public

    Java 1

  5. ink3-gateway ink3-gateway Public

    Java 2

  6. ink3-eureka ink3-eureka Public

    Java 2

Repositories

Showing 10 of 11 repositories

Top languages

Loading…

Most used topics

Loading…