1. 프로젝트 기술 스택

| AOS | • Retrofit 2.9.0 (통신 라이브러리) • OkHttp • Ted Permission 3.3.0 (안드로이드 권한 라이브러리) • Dagger-Hilt (의존성 주입 라이브러리) • JetPack Paging3 (페이징 라이브러리) • Coroutines Flow (비동기 데이터 처리 라이브러리) • Glide 4.12.0 (이미지 로드 라이브러리) • ViewModel-ktx 2.3.1 • Fragment-ktx 1.3.6 • Navigation 2.3.5 (화면 전환, 스택 관리 라이브러리) • OAuth (로그인 보안 라이브러리) • ExoPlayer (미디어 플레이어 라이브러리) • Room (내부 데이터 베이스 라이브러리) • Biometric (생체 인식 라이브러리) • Zxing Qr Scan (QR 스캔 라이브러리) | | --- | --- | | BE | Infra • AWS EC2 • Docker 20.10.17 • Docker-compose 1.25.0 • Jenkins 2.346.2

Development • Java 1.8.0_192(Zulu 8.33.0.1-win64) • Spring boot 2.7.3 • spring-data-jpa 2.7.3 • spring-data-redis 2.7.3 • hibernate-core-5.6.9.Final • spring-security:5.7.3 • projectlombok:1.18.24

Test • junit-jupiter:5.8.2 • mockito-core:4.5.1 • Apache JMeter 5.5

DB • mysql 8.0.28 | | Blockchain | Infra • AWS EC2

Language • Solidity 0.8.0 • Go

Package • Web3j 4.8.7 • Geth 1.10.25-stable • Nodejs v12.22.9 • npm 8.5.1 • ethereumjs-wallet 0.6.5 |

2. 서버 아키텍처

Untitled

본 프로젝트의 아키텍처는 위와 같습니다. 각 서버 리소스는 특정 포트로 식별 가능하며 접근할 수 있습니다.

각 서버의 포트 번호는 다음과 같습니다. (도커 배포 기준)

서버 HTTP 포트 HTTPS 포트
tomcat 8080 8443
jenkins 8088 -
redis 6379 -
mysql 3306 -

3. 프로젝트 빌드 방법 (로컬 서버)

3.1. Gitlab에서 프로젝트 클론하기

  1. 작업할 공간에 폴더를 하나 생성합니다.
  2. 생성한 폴더를 열고 해당 위치에서 Git Bash를 열어줍니다. (CMD와 같은 다른 터미널도 상관없습니다!)
  3. git clone <https://lab.ssafy.com/s07-blockchain-contract-sub2/S07P22D102.git를> 터미널에 입력해줍니다.
  4. gitlab에서 내려받은 파일이 생깁니다. 앞으로 해당 파일이 위치한 폴더를 root directory라고 하겠습니다. 이후 작업 공간으로 가서 빌드 과정을 수행해주시면 됩니다.

3.2. 스프링부트 WAS 빌드

3.2.1. gradle로 직접 빌드하는 방법 (CMD 버전)

  1. Win + R을 누르고 cmd를 입력하고 확인 버튼을 누릅니다. 그러면 명령 프롬프트 창을 띄울 수 있습니다.