user-service/
├── src/
│ ├── main/
│ │ ├── java/com/lab/userservice/
│ │ │ ├── application/ # 애플리케이션 서비스 계층 (유즈케이스)
│ │ │ │ ├── port/
│ │ │ │ │ ├── in/
│ │ │ │ │ │ ├── UserUseCase.java
│ │ │ │ │ │ ├── AuthenticationUseCase.java
│ │ │ │ │ ├── out/
│ │ │ │ │ │ ├── LoadUserPort.java
│ │ │ │ │ │ ├── SaveUserPort.java
│ │ │ │ ├── service/
│ │ │ │ │ ├── UserService.java
│ │ │ │ │ ├── AuthenticationService.java
│ │ │ ├── domain/ # 도메인 모델 (핵심 비즈니스 로직)
│ │ │ │ ├── model/
│ │ │ │ │ ├── User.java
│ │ │ ├── infrastructure/ # 인프라 계층 (DB, 보안 등)
│ │ │ │ ├── adapter/
│ │ │ │ │ ├── persistence/
│ │ │ │ │ │ ├── JpaUserRepository.java
│ │ │ │ │ ├── security/
│ │ │ │ │ │ ├── JwtProvider.java
│ │ │ │ │ │ ├── SecurityConfig.java
│ │ │ ├── interfaces/ # API 컨트롤러 계층
│ │ │ │ ├── adapter/
│ │ │ │ │ ├── UserController.java
│ │ │ │ │ ├── AuthenticationController.java
│ │ ├── resources/
│ │ │ ├── application.yml
│ ├── test/
│ │ ├── java/com/lab/userservice/
│ │ │ ├── service/
│ │ │ │ ├── AuthenticationServiceTest.java
개별 서비스 구조
crypto-payment-system/ # 루트 디렉토리
├── eureka-server/ # 서비스 디스커버리
│ ├── src/main/java/com/lab/eurekaserver/
│ │ ├── EurekaServerApplication.java
│ │ ├── application.yml
├── api-gateway/ # API Gateway
│ ├── src/main/java/com/lab/apigateway/
│ │ ├── ApiGatewayApplication.java
│ │ ├── application.yml
├── user-service/ # 사용자 계정 및 잔액 관리
│ ├── src/main/java/com/lab/userservice/
│ │ ├── UserServiceApplication.java
│ │ ├── controller/UserController.java
│ │ ├── service/UserService.java
│ │ ├── repository/UserRepository.java
│ │ ├── model/User.java
│ │ ├── application.yml
├── payment-service/ # 결제 승인 및 암호화폐 트랜잭션 처리
│ ├── src/main/java/com/lab/paymentservice/
│ │ ├── PaymentServiceApplication.java
│ │ ├── controller/PaymentController.java
│ │ ├── service/PaymentService.java
│ │ ├── repository/PaymentRepository.java
│ │ ├── model/Payment.java
│ │ ├── application.yml
├── transaction-service/ # 결제 기록 저장
│ ├── src/main/java/com/lab/transactionservice/
│ │ ├── TransactionServiceApplication.java
│ │ ├── controller/TransactionController.java
│ │ ├── service/TransactionService.java
│ │ ├── repository/TransactionRepository.java
│ │ ├── model/Transaction.java
│ │ ├── application.yml
├── notification-service/ # 알림 서비스 (선택)
│ ├── src/main/java/com/lab/notificationservice/
│ │ ├── NotificationServiceApplication.java
│ │ ├── service/NotificationService.java
│ │ ├── application.yml