Skip to content

prgrms-be-devcourse/BE-04-JTOON

Repository files navigation

J-T👀N

image



👨‍👨‍👧 Team 소개

김영명 김희빈 박세연(PO) 신재윤 홍혁준(SM) 조셉 김훈기
DEVELOPER DEVELOPER DEVELOPER DEVELOPER DEVELOPER 멘토 서브멘토
ymkim97 kmebin parksey DevUni HongDosan joseph-100 HunkiKim



📚 조셉의 제이툰

웹툰 서비스

네이버 웹툰을 클론 코딩한 프로젝트 입니다.
저희 조셉팀에서는 멀티모듈을 기반으로 프로젝트를 설계해봤습니다.
도메인은 크게 회원, 결제, 웹툰으로 구성됩니다.

다양한 기능 구현에 초점을 두었다기 보다는
다양한 기술에 도전해보는 것과, 지속적인 리팩토링을 통한 코드 개선에 집중했습니다.


├── 회원
│   ├── 일반(JToon) 로그인
│   ├── 일반(JToon) 회원가입
│   ├── SMTP 기반 이메일 인증
│   └── OAuth 2.0 로그인 및 회원가입
│
├── 결제
│   ├── Portone-Iamport 기반 결제 승인 검증 및 생성
│   ├── Portone-Iamport 기반 결제 취소
│   └── 결제 내역 조회
│
├── 웹툰
│   ├── 웹툰 생성
│   ├── 회차 생성
│   ├── s3 이미지 업로드
│   ├── s3 이미지 삭제
│   ├── 웹툰 리스트 조회
│   ├── 웹툰 정보 조회
│   ├── 회차 리스트 조회
│   ├── 회차 정보 조회
│   └── 회차 구매



🛠 기술스택

Backend

image

Infra

image

CI 파이프라인

image

CD 파이프라인

image



AWS 아키텍쳐

image



🗂️ 프로젝트 구조

해당 구조는 우아한 기술 블로그에서 권용근님의 멀티 모듈 설계 이야기를 참고 하였습니다.

├─ ...
├─ module-application
│   └── app-api
│       └── src.main.java.shop.jtoon
│          ├── global
│          ├── member
│          ├── payment
│          ├── security
│          └── webtoon
│
├── module-core
│   └── src.main.java.shop.jtoon
│       ├── util
│       ├── type
│       └── exception
│
├── module-domain
│   ├── domain-member
│   ├── domain-payment
│   ├── domain-webtoon
│   ├── domain-jpa
│   └── domain-redis
│
├── module-internal
│   └── core-web
│       ├── security
│       ├── annotation
│       ├── config
│       └── error
│   ├── iamport-client
│   ├── s3-client
│   └── smtp-client
│
└── settings.gradle



📂 ERD

image



🌈 협업

image

Git Convention

  • 기본적으로 Git flow 전략 채택
  • JIRA 티켓 발급을 통한 커밋 관리
    • [JT-1] Commit Name: Commit-Message
  • Git convention 노션 링크

Code Convention

  • 기본적으로 Naver Code Convention 채택
  • 클래스 밑 무조건 한줄 띄우기, Builder 패턴, Validator, Lombok 등 구체적으로 명시
  • Code convention 노션 링크