youhyeoneee / geumsapa

2024 시세가 변경되는 금의 주문판매 서비스
0 stars 0 forks source link

금사파

시세가 변경되는 금의 주문판매 서비스입니다.

기간 : 2024.09.02 ~ 2024.09.09

목차

  1. 프로젝트 환경
  2. Quick Start
  3. Quick Stop
  4. ERD
  5. API 명세서
  6. 디렉토리 구조

프로젝트 환경

Stack Version
Spring Spring Boot 3.3.3
Gradle Gradle 8.8
Java JDK 17
MariaDB MariaDB 11.5.2
Redis Redis 7.4.0
Docker Docker 27.2.0
Docker Compose Docker Compose 2.29.2

Quick Start & Stop

Quick Start
### 1. 사전 준비 사항 - Docker 및 Docker Compose가 설치되어 있어야 합니다. ### 2. 데이터베이스 실행 애플리케이션을 시작하기 전에 데이터베이스를 Docker Compose를 사용하여 설정해야 합니다.
다음 명령어를 사용하여 각 서버의 데이터베이스를 실행합니다. ```shell docker-compose -f ./auth-server/docker-compose.auth.yml up -d docker-compose -f ./resource-server/docker-compose.resource.yml up -d ``` 위 명령어는 백그라운드에서 데이터베이스 컨테이너를 실행합니다.
실행 중인 상태를 확인하려면 `docker ps` 명령어를 사용하세요. ### 3. 서버 실행 서버별로 터미널을 열어 다음 명령어를 실행합니다. - 인증 서버 (포트 8888) ```shell ./gradlew :auth-server:bootJar ``` ```shell java -jar ./auth-server/build/libs/auth-server-0.0.1-SNAPSHOT.jar ``` - 자원 서버 (포트 9999) ```shell ./gradlew :resource-server:bootJar ``` ```shell java -jar ./resource-server/build/libs/resource-server-0.0.1-SNAPSHOT.jar ```
Quick Stop
### 1. 서버 종료 서버를 종료하려면 터미널에서 다음 명령어를 실행합니다. - 인증 서버 (포트 8888) ```shell sudo lsof -i :8888 sudo kill -9 [PID] # [PID]는 실제 프로세스 ID로 대체 ``` - 자원 서버 (포트 9999) ```shell sudo lsof -i :9999 sudo kill -9 [PID] # [PID]는 실제 프로세스 ID로 대체 ``` ### 2. 데이터베이스 종료 데이터베이스를 종료하려면 다음 명령어를 사용합니다. ```shell docker-compose -f ./auth-server/docker-compose.auth.yml down docker-compose -f ./resource-server/docker-compose.resource.yml down ```

ERD

image

API 명세서

image


디렉토리 구조

1. 멀티 모듈

이 프로젝트는 멀티 모듈로 구성되어 있습니다.

구조도
``` . ├── README.md ├── auth-server │ ├── build │ ├── docker-compose.auth.yml │ ├── .env │ └── src │ ├── main │ │ ├── java │ │ └── resources │ └── test ├── core │ ├── build │ ├── src │ └── test ├── gradle │ └── wrapper ├── gradlew ├── gradlew.bat ├── resource-server │ ├── build │ ├── docker-compose.resource.yml │ ├── .env │ └── src │ ├── main │ │ ├── java │ │ └── resources │ └── test └── settings.gradle ```


core

core 구조도
``` .core └── src ├── main │   ├── java │   │   └── com │   │   └── yhkim │   │   ├── config │   │   │   └── JpaConfig.java │   │   ├── entity │   │   │   └── BaseEntity.java │   │   ├── exception │   │   │   ├── CustomException.java │   │   │   ├── ErrorCode.java │   │   │   └── GlobalExceptionHandler.java │   │   └── util │   │   └── ApiUtils.java │   └── resources │   └── application-core.yml └── test ├── java └── resources ```


2. auth-server

인증을 담당하는 서버입니다.

도메인


도메인의 하위 패키지


auth-server 구조도
``` .auth-server ├── docker-compose.auth.yml ├── .env └── src ├── main │   ├── java │   │   └── com │   │   └── yhkim │   │   ├── AuthServerApplication.java │   │   └── domain │   │   ├── auth │   │   │   ├── JwtTokenProvider.java │   │   │   ├── TokenType.java │   │   │   ├── UserDetailsImpl.java │   │   │   ├── config │   │   │   │   ├── RedisConfig.java │   │   │   │   └── WebSecurityConfig.java │   │   │   ├── controller │   │   │   │   └── AuthController.java │   │   │   ├── dto │   │   │   │   ├── JwtTokenInfo.java │   │   │   │   └── ReissueTokenResponse.java │   │   │   ├── entity │   │   │   │   └── RefreshToken.java │   │   │   ├── filter │   │   │   │   └── JwtAuthenticationFilter.java │   │   │   ├── repository │   │   │   │   └── RefreshTokenRepository.java │   │   │   └── service │   │   │   ├── AuthService.java │   │   │   ├── AuthServiceImpl.java │   │   │   └── UserDetailsServiceImpl.java │   │   └── user │   │   ├── controller │   │   │   └── UserController.java │   │   ├── dto │   │   │   ├── DeleteUserResponse.java │   │   │   ├── LoginUserRequest.java │   │   │   ├── LoginUserResponse.java │   │   │   ├── SignupUserRequest.java │   │   │   ├── SignupUserResponse.java │   │   │   └── UserDetailResponse.java │   │   ├── entity │   │   │   └── User.java │   │   ├── repository │   │   │   └── UserRepository.java │   │   └── service │   │   ├── UserService.java │   │   └── UserServiceImpl.java │   └── resources │   └── application.yml └── test ├── java └── resources ```


3. resource-server

자원을 담당하는 서버입니다.

도메인


도메인의 하위 패키지

위와 같습니다.


resource-server 구조도
``` .resource-server ├── docker-compose.resource.yml ├── .env └── src ├── main │   ├── java │   │   └── com │   │   └── yhkim │   │   ├── ResourceServerApplication.java │   │   └── domain │   │   ├── order │   │   │   ├── controller │   │   │   │   └── OrderController.java │   │   │   ├── dto │   │   │   │   ├── CreateOrderRequest.java │   │   │   │   ├── GetOrderRequest.java │   │   │   │   ├── Links.java │   │   │   │   ├── OrderDetailResponse.java │   │   │   │   └── UpdateOrderRequest.java │   │   │   ├── entity │   │   │   │   ├── Order.java │   │   │   │   ├── OrderStatus.java │   │   │   │   └── OrderType.java │   │   │   ├── repository │   │   │   │   └── OrderRepository.java │   │   │   ├── service │   │   │   │   ├── OrderService.java │   │   │   │   └── OrderServiceImpl.java │   │   │   └── util │   │   │   └── OrderNumberGenerator.java │   │   └── product │   │   ├── dto │   │   ├── entity │   │   │   ├── Product.java │   │   │   ├── ProductCode.java │   │   │   └── ProductPrice.java │   │   └── repository │   │   ├── ProductPriceRepository.java │   │   └── ProductRepository.java │   └── resources │   ├── application.yml │   └── data.sql └── test ├── java └── resources ```