-
조이툰 이동(현재 서버막아 놓음) - NFT 기반 웹툰수익 거래 종합 플랫폼입니다. 블록체인 기술인 NFT를 활용해 웹툰 소장권을 자유롭게 거래하고, 토큰 소유자들이 NFT소유 비율에 따라 웹툰 유료열람 수익료를 분배받을 수 있는 새로운 웹툰 종합 플랫폼을 제시합니다.
- NFT Block chain 거래는 Klaytn 을 사용하였습니다.
- MSA 아키텍처
- MySQL DB 설계
- NCP 클라우드 인프라 구축
- Spring Boot Backend
- Eureka Service Discovery
- Spring Cloud Config Server
- Spring Cloud Bus :
RabbitMQ
- Spring Cloud Gateway
- 인증 필터링
- 첫 토큰 발행 요청(로그인 요청)을 받으면 인증 서버로 전달해서 Access token과 Refresh Token 받아와서 Client에 전달
- Client로부터 Refresh Token을 받아서 확인하고, 유효하면 인증서버에서 새로운 access token을 발급받은 뒤 Client에 전달하고 유효하지 않으면 로그인 하라고 알려주기
- 유효하지 않은 접속차단 등 보안 설정
- 인증 필터링
- Micro Service
- User-service
- Spring security
- Spring JPA
MySQL
- 로그인 및 인증 관련 CRUD
- 유저 캐시 충전 및 환불 기능
- Refresh Token과 Access Token 발행
- 로그인시
Redis
에 Refresh Token 저장
- Webtoon-service
- 웹툰 회차 및 썸네일 CRUD
- 찜 & 댓글 & 별점 CRUD
- 웹툰 랭킹 및 개인화 추천 CRUD
- Cash-service
- 웹툰 유료열람권 구매 기능
- 캐시내역 CRUD (feat.
MongoDB
)
- User-service
- Micro Service간 통신
- RestTemplate
- Feign Client
- Event- Driven 아키텍처
Kafka
Producer & Consumer : 일대다 관계의 통신이 필요한 경우에 사용Kafka Connecter
: Source & Sink Connector 생성- mysql - mysql
- mong db → mysql : Mongo DB source Connector
- mysql → mongo db : MySQL sink Connector
- Circuit Breaker :
Resilience4j
ELK
+Redis
: 로그 스트림 & 모니터링Sleuth
+Zipkin
: 분산추적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는 클라우드를 이용함)
- config-server 실행
- eureka-server 실행
- api-gateway 실행
- cash-service, user-service, webtoon-service 실행
- NFT-server npm install 후 실행
- FrontEnd npm install 후 실행
- 아래의 아이디/비밀번호 사용가능
- 작가권한 : author_joy1886 / joyjoy1886*
- 유저권한 : joy_user_1886 / joyjoy1886*
-
아코디언 UI(현재 서버막아 놓음) -
Kibana (로그 모니터링) 이동(현재 서버막아 놓음) -
Kibana (로그 시각화) 이동(현재 서버막아 놓음) -
Zipkin (로그 분산추적) 이동(현재 서버막아 놓음) -
Kibana (로그 분산추적 시각화) 이동(현재 서버막아 놓음) -
Kafka 모니터링(현재 서버막아 놓음) -
Rabbit MQ(현재 서버막아 놓음)