Skip to content
/ BE Public

🫧 Hit it! Backend μ €μž₯μ†Œ

Notifications You must be signed in to change notification settings

hit-it-PDA/BE

Repository files navigation

Hit-it! Back-end

포트폴리였 μΆ”μ²œκ³Ό μžμ‚° 관리, λ…Έν›„ λŒ€λΉ„ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” ν‡΄μ§μ—°κΈˆμš΄μš© λ…Έν›„ λŒ€λΉ„ μžμ‚°κ΄€λ¦¬ μ„œλΉ„μŠ€ Hit it!의 Back-end μ €μž₯μ†Œμž…λ‹ˆλ‹€.

μ‚¬μš© 기술

  • Spring boot, Spring Security, Spring Data JPA 3.3.0
  • Java 17.0
  • MySql 8.0
  • RabbitMQ 3.13.3
  • Redis
  • AWS EC2 t3.large
  • AWS RDS

μ•„ν‚€ν…μ²˜

νŒ¨ν‚€μ§€ ꡬ쑰

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜(MSA)λ₯Ό 기반으둜 ν•˜λŠ” λ©€ν‹° λͺ¨λ“ˆ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
각 λͺ¨λ“ˆμ€ λ…λ¦½μ μœΌλ‘œ 배포될 수 있으며, μ„œλ‘œ λ‹€λ₯Έ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜μ—¬ 전체적인 μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•©λ‹ˆλ‹€.
5가지 λͺ¨λ“ˆλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

  1. mydata-service
  2. asset-service
  3. portfolio-service
  4. user-service
  5. utils

1. mydata-service

ꡬ쑰도
mydata-service
β”œβ”€β”€ build.gradle
β”œβ”€β”€ gradle
β”‚Β Β  └── wrapper
β”‚Β Β      β”œβ”€β”€ gradle-wrapper.jar
β”‚Β Β      └── gradle-wrapper.properties
β”œβ”€β”€ gradlew
β”œβ”€β”€ gradlew.bat
└── src
    β”œβ”€β”€ main
    β”‚Β Β  β”œβ”€β”€ java
    β”‚Β Β  β”‚Β Β  └── com
    β”‚Β Β  β”‚Β Β      └── pda
    β”‚Β Β  β”‚Β Β          └── mydata_service
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ MydataServiceApplication.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── MydataController.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccountDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CardDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoanDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ RetirementAccountDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStockDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── SecurityTransactionDto.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ jpa
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccount.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccountRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Card.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CardRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Loan.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoanRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataUser.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataUserRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Pension.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccount.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStock.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStockRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityTransaction.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── SecurityTransactionRepository.java
    β”‚Β Β  β”‚Β Β              └── service
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ BankAccountService.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ BankAccountServiceImpl.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ MydataService.java
    β”‚Β Β  β”‚Β Β                  └── MydataServiceImpl.java
    β”‚Β Β  └── resources
    β”‚Β Β      β”œβ”€β”€ application-db.properties
    β”‚Β Β      β”œβ”€β”€ application.properties
    β”‚Β Β      └── env.properties
    └── test
        └── java
            └── com
                └── pda
                    └── mydata_service
                        └── MydataServiceApplicationTests.java

2. asset-service

ꡬ쑰도
asset-service
β”œβ”€β”€ build.gradle
β”œβ”€β”€ gradle
β”‚Β Β  └── wrapper
β”‚Β Β      β”œβ”€β”€ gradle-wrapper.jar
β”‚Β Β      └── gradle-wrapper.properties
β”œβ”€β”€ gradlew
β”œβ”€β”€ gradlew.bat
└── src
    β”œβ”€β”€ main
    β”‚Β Β  β”œβ”€β”€ java
    β”‚Β Β  β”‚Β Β  └── com
    β”‚Β Β  β”‚Β Β      └── pda
    β”‚Β Β  β”‚Β Β          └── asset_service
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ AssetServiceApplication.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AccountController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── AssetController.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AccountCreateDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AccountDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccountDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccountResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CardDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CardResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoanDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoanResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataInfoDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ RetirementAccountDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ RetirementAccountResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountStocksDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountTransactionsDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStockDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStockResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityTransactionDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityTransactionResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UserAccountInfoDto.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ feign
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── MydataServiceClient.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ jpa
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Account.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AccountRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AssetUser.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AssetUserRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccount.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccountRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Card.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CardRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Loan.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoanRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataInfo.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataInfoRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Pension.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionId.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccount.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStock.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStockRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityTransaction.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── SecurityTransactionRepository.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ redis
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── RedisConfig.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ service
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AccountService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AccountServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AssetService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ AssetServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccountService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BankAccountServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CardService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CardServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoanService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoanServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataInfoService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStockService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityStockServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityTransactionService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── SecurityTransactionServiceImpl.java
    β”‚Β Β  β”‚Β Β              └── sms
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ SMSCertificationRepository.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ SMSCertificationService.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ SmsCertificationUtil.java
    β”‚Β Β  β”‚Β Β                  └── UserDto.java
    β”‚Β Β  └── resources
    β”‚Β Β      β”œβ”€β”€ application-db.properties
    β”‚Β Β      β”œβ”€β”€ application-sms.properties
    β”‚Β Β      β”œβ”€β”€ application.properties
    β”‚Β Β      └── env.properties
    └── test
        └── java
            └── com
                └── pda
                    └── asset_service
                        └── AssetServiceApplicationTests.java

3. portfolio-service

포트폴리였 κ΄€λ ¨ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ‘œ, 포트폴리였 μΆ”μ²œ 포트폴리였 선택, λ¦¬λ°ΈλŸ°μ‹± μ•Œλ¦Ό λ“± λ‹€μ–‘ν•œ 포트폴리였 κ΄€λ ¨ κΈ°λŠ₯을 ν¬ν•¨ν•©λ‹ˆλ‹€.

  • HititPortfolio : 자체 μ„œλΉ„μŠ€ 포트폴리였λ₯Ό μΆ”μ²œ λ°›λŠ” ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
  • MyDataPortfolio : λ§ˆμ΄λ°μ΄ν„°λ‘œ 포트폴리였λ₯Ό μΆ”μ²œ λ°›λŠ” ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
  • Optimize : μ‚¬μš©μžμ˜ 포트폴리였λ₯Ό λ¦¬λ°ΈλŸ°μ‹± ν›„, μ•Œλ¦Όμ„ λ³΄λ‚΄λŠ” ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
ꡬ쑰도
β”œβ”€β”€ build.gradle
β”œβ”€β”€ gradle
β”‚Β Β  └── wrapper
β”‚Β Β      β”œβ”€β”€ gradle-wrapper.jar
β”‚Β Β      └── gradle-wrapper.properties
β”œβ”€β”€ gradlew
β”œβ”€β”€ gradlew.bat
└── src
    β”œβ”€β”€ main
    β”‚Β Β  β”œβ”€β”€ java
    β”‚Β Β  β”‚Β Β  └── com
    β”‚Β Β  β”‚Β Β      └── pda
    β”‚Β Β  β”‚Β Β          └── portfolio_service
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ PortfolioServiceApplication.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ DataController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── PortfolioMessageController.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundProductDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ HititPortfoliosFundsResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ HititPortfoliosFundsStocksAndBondsResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ HititPortfoliosResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataFlaskLevelTest.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataPortfolioDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ OptimizeDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ OptimizeResponseCamelCaseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ OptimizeResponseMapper.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundAssetResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ StockIncomeRevResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ StockRevIncomeRequestDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserAgeTestScoreDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UserPortfolioFundRequestDto.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ dto_test
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Bond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Fund.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataTestDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Portfolio.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioResponse.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── Stock.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ feign
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FlaskTestServiceClient.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataFlaskLevelTestResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataFlaskResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataFundData.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataPortfolioServiceClient.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MyDataTransaction.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataAssetClient.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ MydataUserClient.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ OptimizeResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ OptimizeServiceClient.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PensionResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountStocksDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityAccountTransactionsDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityTransactionDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UserServiceClient.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ jpa
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundBonds.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundBondsRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundPrices.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundPricesId.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundPricesRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundProducts.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundProductsRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundStocks.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ FundStocksRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Portfolio.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFund.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundAsset.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundAssetRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundBond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundBondId.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundBondRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundId.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundStock.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundStockId.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioFundStockRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ PortfolioRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserPortfolio.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserPortfolioRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserPortfolios.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserPortfoliosFundProducts.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserPortfoliosFundProductsRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UserPortfoliosRepository.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ redis
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── RebalancingData.java
    β”‚Β Β  β”‚Β Β              └── service
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ DataService.java
    β”‚Β Β  β”‚Β Β                  └── PortfolioService.java
    β”‚Β Β  └── resources
    β”‚Β Β      β”œβ”€β”€ application-db.properties
    β”‚Β Β      β”œβ”€β”€ application.properties
    β”‚Β Β      └── env.properties
    └── test
        └── java
            └── com
                └── pda
                    └── portfolio_service
                        └── PortfolioServiceApplicationTests.java

4. user-service

μ‚¬μš©μž κ΄€λ ¨ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ‘œ, 둜그인 및 νšŒμ›κ°€μž…, ν…ŒμŠ€νŠΈ, μ•Œλ¦Ό λ“± λ‹€μ–‘ν•œ μ‚¬μš©μž κ΄€λ ¨ κΈ°λŠ₯을 ν¬ν•¨ν•©λ‹ˆλ‹€.

  • investment_test : 투자 μ„±ν–₯ ν…ŒμŠ€νŠΈ ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
  • notification : μ‚¬μš©μžμ—κ²Œ 보낼 μ•Œλ¦Ό κΈ°λŠ₯ ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
  • retirements : λ…Έν›„ μ€€λΉ„ μ’…ν•© 진단 ν…ŒμŠ€νŠΈ ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
  • user_service : 둜그인 및 νšŒμ›κ°€μž… λ“±μ˜ μ‚¬μš©μž 관리 κΈ°λŠ₯ ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
ꡬ쑰도
user_service
β”œβ”€β”€ build.gradle
β”œβ”€β”€ gradle
β”‚Β Β  └── wrapper
β”‚Β Β      β”œβ”€β”€ gradle-wrapper.jar
β”‚Β Β      └── gradle-wrapper.properties
β”œβ”€β”€ gradlew
β”œβ”€β”€ gradlew.bat
└── src
    β”œβ”€β”€ main
    β”‚Β Β  β”œβ”€β”€ java
    β”‚Β Β  β”‚Β Β  └── com
    β”‚Β Β  β”‚Β Β      └── pda
    β”‚Β Β  β”‚Β Β          β”œβ”€β”€ UserServiceApplication.java
    β”‚Β Β  β”‚Β Β          β”œβ”€β”€ investment_test
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── InvestmentTestController.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ QuestionDto.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── ResultDto.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ jpa
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ InvestmentType.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ answer
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Answer.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”‚Β Β  └── AnswerRepository.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ question
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Question.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”‚Β Β  └── QuestionRepository.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── user_answer
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β      β”œβ”€β”€ UserAnswer.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β      └── UserAnswerRepository.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  └── service
    β”‚Β Β  β”‚Β Β          β”‚Β Β      └── InvestmentTestService.java
    β”‚Β Β  β”‚Β Β          β”œβ”€β”€ notification
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── NotificationController.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ jpa
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Notification.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── NotificationRepository.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  └── service
    β”‚Β Β  β”‚Β Β          β”‚Β Β      └── NotificationService.java
    β”‚Β Β  β”‚Β Β          β”œβ”€β”€ retirements
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── RetirementController.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RetirementTestRequestDto.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── RetirementTestResponseDto.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ jpa
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Gender.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RetirementTestResult.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RetirementTestResultRepository.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  β”‚Β Β  └── RetirementType.java
    β”‚Β Β  β”‚Β Β          β”‚Β Β  └── service
    β”‚Β Β  β”‚Β Β          β”‚Β Β      └── RetirementService.java
    β”‚Β Β  β”‚Β Β          └── user_service
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UserOpenFeignController.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ KaKaoTokenDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ KakaoUserDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoginDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ LoginResponseDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SignupUserDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserAgeTestScoreDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ UserInfoDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UserUpdateRequestDto.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ jpa
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ User.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UserRepository.java
    β”‚Β Β  β”‚Β Β              └── service
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ UserMessageService.java
    β”‚Β Β  β”‚Β Β                  └── UserService.java
    β”‚Β Β  └── resources
    β”‚Β Β      β”œβ”€β”€ application-db.properties
    β”‚Β Β      β”œβ”€β”€ application-mq.properties
    β”‚Β Β      β”œβ”€β”€ application.properties
    β”‚Β Β      └── env.properties
    └── test
        └── java
            └── com
                └── pda
                    └── user_service
                        └── UserServiceApplicationTests.java

5. utils

κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©λ  수 μžˆλŠ” μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ“€κ³Ό μ˜ˆμ™Έ 처리, λ³΄μ•ˆ, λ©”μ‹œμ§• λ“±μ˜ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

  • api_utils : 곡톡 리슀폰슀, λ¬Έμžμ—΄ λ³€ν™˜ λ“±μ˜ API ν˜ΈμΆœμ— μ‚¬μš©λ˜λŠ” μœ ν‹Έλ¦¬ν‹° ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • exception : μ˜ˆμ™Έ 처리 κ΄€λ ¨ ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • rabbitmq: RabbitMQ λ©”μ‹œμ§•μ„ μœ„ν•œ μ„€μ • 및 μ„œλΉ„μŠ€ ν΄λž˜μŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • security : JWT 인증 및 Security μ„€μ • ν΄λž˜μŠ€κ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
ꡬ쑰도
utils
β”œβ”€β”€ build.gradle
β”œβ”€β”€ gradle
β”‚Β Β  └── wrapper
β”‚Β Β      β”œβ”€β”€ gradle-wrapper.jar
β”‚Β Β      └── gradle-wrapper.properties
β”œβ”€β”€ gradlew
β”œβ”€β”€ gradlew.bat
└── src
    β”œβ”€β”€ main
    β”‚Β Β  β”œβ”€β”€ java
    β”‚Β Β  β”‚Β Β  └── com
    β”‚Β Β  β”‚Β Β      └── pda
    β”‚Β Β  β”‚Β Β          └── utils
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ UtilsApplication.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ api_utils
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ ApiUtils.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CustomNumberUtils.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CustomStringUtils.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── StringListConverter.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ exception
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ DuplicatedEmailException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ GlobalExceptionHandler.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ InvalidParameterException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ investment_tests
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AnswerNotFoundException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ QuestionNotFoundException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── UserAnswerNotFoundException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ login
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ NotCorrectPasswordException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── NotFoundUserException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── sms
    β”‚Β Β  β”‚Β Β              β”‚Β Β      └── SmsCertificationException.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ rabbitmq
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ config
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── RabbitMQConfig.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── NotificationDto.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── service
    β”‚Β Β  β”‚Β Β              β”‚Β Β      └── MessageService.java
    β”‚Β Β  β”‚Β Β              └── security
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ JwtAuthenticationFilter.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ JwtTokenProvider.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ WebSecurityConfig.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β                  β”‚Β Β  └── UserDetailsDto.java
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ openfeign
    β”‚Β Β  β”‚Β Β                  β”‚Β Β  └── AuthClient.java
    β”‚Β Β  β”‚Β Β                  └── service
    β”‚Β Β  β”‚Β Β                      └── CustomUserDetailsService.java
    β”‚Β Β  └── resources
    β”‚Β Β      β”œβ”€β”€ application-mq.properties
    β”‚Β Β      β”œβ”€β”€ application.properties
    β”‚Β Β      └── env.properties
    └── test
        └── java
            └── com
                └── pda
                    └── utils
                        β”œβ”€β”€ UtilsApplicationTests.java
                        └── api_utils
                            β”œβ”€β”€ CustomNumberUtilsTest.java
                            └── CustomStringUtilsTest.java

ERD

  • μ„œλΉ„μŠ€
  • λ§ˆμ΄λ°μ΄ν„°

About

🫧 Hit it! Backend μ €μž₯μ†Œ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages