Skip to content

2021 오픈 인프라 개발 경진대회 - NFT기반 웹툰거래 종합 플랫폼

Notifications You must be signed in to change notification settings

ewha-joy/README

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

JOY툰

  • 조이툰 이동 (현재 서버막아 놓음)
  • NFT 기반 웹툰수익 거래 종합 플랫폼입니다. 블록체인 기술인 NFT를 활용해 웹툰 소장권을 자유롭게 거래하고, 토큰 소유자들이 NFT소유 비율에 따라 웹툰 유료열람 수익료를 분배받을 수 있는 새로운 웹툰 종합 플랫폼을 제시합니다.
  • NFT Block chain 거래는 Klaytn 을 사용하였습니다.

실행 영상



아키텍처



사용 기술 및 라이브러리

  1. MSA 아키텍처
  2. MySQL DB 설계
  3. NCP 클라우드 인프라 구축
  4. Spring Boot Backend
    1. Eureka Service Discovery
    2. Spring Cloud Config Server
    3. Spring Cloud Bus : RabbitMQ
    4. Spring Cloud Gateway
      1. 인증 필터링
        1. 첫 토큰 발행 요청(로그인 요청)을 받으면 인증 서버로 전달해서 Access token과 Refresh Token 받아와서 Client에 전달
        2. Client로부터 Refresh Token을 받아서 확인하고, 유효하면 인증서버에서 새로운 access token을 발급받은 뒤 Client에 전달하고 유효하지 않으면 로그인 하라고 알려주기
      2. 유효하지 않은 접속차단 등 보안 설정
    5. Micro Service
      1. User-service
        1. Spring security
        2. Spring JPA MySQL
        3. 로그인 및 인증 관련 CRUD
        4. 유저 캐시 충전 및 환불 기능
        5. Refresh Token과 Access Token 발행
        6. 로그인시 Redis에 Refresh Token 저장
      2. Webtoon-service
        1. 웹툰 회차 및 썸네일 CRUD
        2. 찜 & 댓글 & 별점 CRUD
        3. 웹툰 랭킹 및 개인화 추천 CRUD
      3. Cash-service
        1. 웹툰 유료열람권 구매 기능
        2. 캐시내역 CRUD (feat. MongoDB)
    6. Micro Service간 통신
      1. RestTemplate
      2. Feign Client
    7. Event- Driven 아키텍처
      1. Kafka Producer & Consumer : 일대다 관계의 통신이 필요한 경우에 사용
      2. Kafka Connecter: Source & Sink Connector 생성
      3. mysql - mysql
      4. mong db → mysql : Mongo DB source Connector
      5. mysql → mongo db : MySQL sink Connector
    8. Circuit Breaker : Resilience4j
  5. ELK + Redis : 로그 스트림 & 모니터링
  6. Sleuth + Zipkin : 분산추적
  7. Docker + k8s + Jenkins : CI/CD 구축

실행환경

  • java -version : java version "11.0.11" 2021-04-20 LTS
  • mvn -v : Apache Maven 3.8.1
  • node -v : v15.14.0
  • npm -v : 7.20.5

로컬 코드 실행

  • EWHA-JOY 레포지토리 git clone
  • 로컬환경에서 백엔드와 프론트엔드 실행 (단, db는 클라우드를 이용함)
  1. config-server 실행
  2. eureka-server 실행
  3. api-gateway 실행
  4. cash-service, user-service, webtoon-service 실행
  5. NFT-server npm install 후 실행
  6. FrontEnd npm install 후 실행
  7. 아래의 아이디/비밀번호 사용가능
    • 작가권한 : author_joy1886 / joyjoy1886*
    • 유저권한 : joy_user_1886 / joyjoy1886*

서버사이드 주소

About

2021 오픈 인프라 개발 경진대회 - NFT기반 웹툰거래 종합 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published