/KEKI_Server

🍰 Server for keki app

Primary LanguageJava

KEKI_Server

Server for keki app 🍰


Tech Stack

Backend

JWT

DB

CI/CD

Deploy

Develop Tool



Project Architecture

project architecture


Project Structure

Details
.
β”‚  .gitignore
β”‚  build.gradle
β”‚  Dockerfile
β”‚  gradlew
β”‚  gradlew.bat
β”‚  result.txt
β”‚  settings.gradle
β”‚                      
β”œβ”€gradle
β”‚  └─wrapper
β”‚          gradle-wrapper.jar
β”‚          gradle-wrapper.properties
β”‚          
└─src
    β”œβ”€main
    β”‚   β”œβ”€java
    β”‚   β”‚  └─com
    β”‚   β”‚      └─codepatissier
    β”‚   β”‚          └─keki
    β”‚   β”‚               β”œβ”€β”€ KekiApplication.java
    β”‚   β”‚               β”œβ”€β”€ TestController.java
    β”‚   β”‚               β”œβ”€β”€ auth
    β”‚   β”‚               β”œβ”€β”€ calendar
    β”‚   β”‚               β”‚   β”œβ”€β”€ CalendarCategory.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ DateCountCategory.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ contoller
    β”‚   β”‚               β”‚   β”‚   └── CalendarController.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ dto
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ CalendarDateReturn.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ CalendarEditRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ CalendarHashTag.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ CalendarListRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ CalendarReq.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ CalendarRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ HomePostRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ HomeRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ HomeTagRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PopularTagRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ TagRes.java
    β”‚   β”‚               β”‚   β”‚   └── TagStatus.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entity
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Calendar.java
    β”‚   β”‚               β”‚   β”‚   └── CalendarTag.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ repository
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Calendar
    β”‚   β”‚               β”‚   β”‚   β”‚   β”œβ”€β”€ CalendarCustom.java
    β”‚   β”‚               β”‚   β”‚   β”‚   β”œβ”€β”€ CalendarRepository.java
    β”‚   β”‚               β”‚   β”‚   β”‚   └── CalendarRepositoryImpl.java
    β”‚   β”‚               β”‚   β”‚   └── CalendarTag
    β”‚   β”‚               β”‚   β”‚       β”œβ”€β”€ CalendarTagCustom.java
    β”‚   β”‚               β”‚   β”‚       β”œβ”€β”€ CalendarTagRepository.java
    β”‚   β”‚               β”‚   β”‚       └── CalendarTagRepositoryImpl.java
    β”‚   β”‚               β”‚   └── service
    β”‚   β”‚               β”‚       └── CalendarService.java
    β”‚   β”‚               β”œβ”€β”€ common
    β”‚   β”‚               β”‚   β”œβ”€β”€ BaseEntity.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ BaseException.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ BaseResponse.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ BaseResponseStatus.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ BeanUtils.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ Constant.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ EmptyStringToNullConverter.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ Role.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ config
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ JasyptConfig.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ QueryDslConfig.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ RedisConfig.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ SwaggerConfig.java
    β”‚   β”‚               β”‚   β”‚   └── WebSecurityConfig.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entityListener
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ CalendarEntityListener.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ DessertEntityListener.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostEntityListener.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ StoreEntityListener.java
    β”‚   β”‚               β”‚   β”‚   └── UserEntityListener.java
    β”‚   β”‚               β”‚   └── tag
    β”‚   β”‚               β”‚       β”œβ”€β”€ Tag.java
    β”‚   β”‚               β”‚       └── TagRepository.java
    β”‚   β”‚               β”œβ”€β”€ cs
    β”‚   β”‚               β”‚   β”œβ”€β”€ controller
    β”‚   β”‚               β”‚   β”‚   └── CsController.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ dto
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetNoticeListRes.java
    β”‚   β”‚               β”‚   β”‚   └── GetNoticeRes.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entity
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Hide.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Notice.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Report.java
    β”‚   β”‚               β”‚   β”‚   └── ReportCategory.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ repository
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ HideRepository.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ NoticeRepository.java
    β”‚   β”‚               β”‚   β”‚   └── ReportRepository.java
    β”‚   β”‚               β”‚   └── service
    β”‚   β”‚               β”‚       └── CsService.java
    β”‚   β”‚               β”œβ”€β”€ dessert
    β”‚   β”‚               β”‚   β”œβ”€β”€ controller
    β”‚   β”‚               β”‚   β”‚   └── DessertController.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ dto
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetDessertRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetStoreDessertRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetStoreDessertsRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ OptionDTO.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PatchDessertReq.java
    β”‚   β”‚               β”‚   β”‚   └── PostDessertReq.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entity
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Dessert.java
    β”‚   β”‚               β”‚   β”‚   └── Option.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ repository
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ DessertRepository.java
    β”‚   β”‚               β”‚   β”‚   └── OptionRepository.java
    β”‚   β”‚               β”‚   └── service
    β”‚   β”‚               β”‚       └── DessertService.java
    β”‚   β”‚               β”œβ”€β”€ history
    β”‚   β”‚               β”‚   β”œβ”€β”€ controller
    β”‚   β”‚               β”‚   β”‚   └── HistoryController.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ dto
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ HistorySearchRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostSearchRes.java
    β”‚   β”‚               β”‚   β”‚   └── SearchRes.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entity
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostHistory.java
    β”‚   β”‚               β”‚   β”‚   └── SearchHistory.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ repository
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostHistoryCustom.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostHistoryRepository.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostHistoryRepositoryImpl.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ SearchHistoryCustom.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ SearchHistoryRepository.java
    β”‚   β”‚               β”‚   β”‚   └── SearchHistoryRepositoryImpl.java
    β”‚   β”‚               β”‚   └── service
    β”‚   β”‚               β”‚       β”œβ”€β”€ PostHistoryService.java
    β”‚   β”‚               β”‚       └── SearchHistoryService.java
    β”‚   β”‚               β”œβ”€β”€ order
    β”‚   β”‚               β”‚   β”œβ”€β”€ controller
    β”‚   β”‚               β”‚   β”‚   └── OrderController.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entity
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ OptionOrder.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Order.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ OrderImg.java
    β”‚   β”‚               β”‚   β”‚   └── OrderStatus.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ repository
    β”‚   β”‚               β”‚   β”‚   └── OrderRepository.java
    β”‚   β”‚               β”‚   └── service
    β”‚   β”‚               β”‚       └── OrderService.java
    β”‚   β”‚               β”œβ”€β”€ post
    β”‚   β”‚               β”‚   β”œβ”€β”€ controller
    β”‚   β”‚               β”‚   β”‚   └── PostController.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ dto
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ DessertsRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetLikePostRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetLikePostsRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetMakePostRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetModifyPostRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetPostRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetPostsRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PatchPostReq.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostPostReq.java
    β”‚   β”‚               β”‚   β”‚   └── PostReportReq.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entity
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ Post.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostImg.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostLike.java
    β”‚   β”‚               β”‚   β”‚   └── PostTag.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ repository
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostCustom.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostImgRepository.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostLikeRepository.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostRepository.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostRepositoryImpl.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostTagCustom.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostTagRepository.java
    β”‚   β”‚               β”‚   β”‚   └── PostTagRepositoryImpl.java
    β”‚   β”‚               β”‚   └── service
    β”‚   β”‚               β”‚       └── PostService.java
    β”‚   β”‚               β”œβ”€β”€ store
    β”‚   β”‚               β”‚   β”œβ”€β”€ controller
    β”‚   β”‚               β”‚   β”‚   └── StoreController.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ dto
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetMyPageStoreProfileRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetStoreInfoRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ GetStoreProfileRes.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PatchProfileReq.java
    β”‚   β”‚               β”‚   β”‚   β”œβ”€β”€ PostStoreReq.java
    β”‚   β”‚               β”‚   β”‚   └── PostStoreRes.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ entity
    β”‚   β”‚               β”‚   β”‚   └── Store.java
    β”‚   β”‚               β”‚   β”œβ”€β”€ repository
    β”‚   β”‚               β”‚   β”‚   └── StoreRepository.java
    β”‚   β”‚               β”‚   └── service
    β”‚   β”‚               β”‚       └── StoreService.java
    β”‚   β”‚               └── user
    β”‚   β”‚                   β”œβ”€β”€ controller
    β”‚   β”‚                   β”‚   └── UserController.java
    β”‚   β”‚                   β”œβ”€β”€ dto
    β”‚   β”‚                   β”‚   β”œβ”€β”€ GetProfileRes.java
    β”‚   β”‚                   β”‚   β”œβ”€β”€ PatchProfileReq.java
    β”‚   β”‚                   β”‚   β”œβ”€β”€ PostCustomerReq.java
    β”‚   β”‚                   β”‚   β”œβ”€β”€ PostNicknameReq.java
    β”‚   β”‚                   β”‚   β”œβ”€β”€ PostTokenReq.java
    β”‚   β”‚                   β”‚   β”œβ”€β”€ PostUserReq.java
    β”‚   β”‚                   β”‚   └── PostUserRes.java
    β”‚   β”‚                   β”œβ”€β”€ entity
    β”‚   β”‚                   β”‚   β”œβ”€β”€ Provider.java
    β”‚   β”‚                   β”‚   └── User.java
    β”‚   β”‚                   β”œβ”€β”€ repository
    β”‚   β”‚                   β”‚   └── UserRepository.java
    β”‚   β”‚                   └── service
    β”‚   β”‚                       └── AuthService.java
    β”‚   └── resources
    β”‚       β”œβ”€β”€ application-oauth.properties
    β”‚       β”œβ”€β”€ application-redis.properties
    β”‚       └── application.properties
    └─test
        └─java
            └─com
                └─codepatissier
                    └─keki
                         KekiApplicationTests.java



DB

keki-erd


Commit/PR Convention

Commit

#1 feat: 일정 등둝 API μΆ”κ°€
  • #이슈번호 νƒ€μž…: 컀밋 μ„€λͺ…

Pull Request

[feature/1-create-calender] 일정 등둝
  • [브랜치λͺ…] μ„€λͺ…

Branch Strategy

  • main
    • 배포 이λ ₯ 관리 λͺ©μ 
  • develop
    • feature λ³‘ν•©μš© 브랜치
    • 배포 μ „ 병합 브랜치
  • feature
    • develop 브랜치λ₯Ό 베이슀둜 κΈ°λŠ₯λ³„λ‘œ feature 브랜치 생성해 개발
  • test
    • ν…ŒμŠ€νŠΈκ°€ ν•„μš”ν•œ μ½”λ“œμš© 브랜치
  • hotfix
    • 배포 ν›„ 버그 λ°œμƒ μ‹œ 버그 μˆ˜μ •

  • feature branch의 경우, κΈ°λŠ₯λͺ…/이슈번호-κΈ°λŠ₯μ„€λͺ… ν˜•νƒœλ‘œ μž‘μ„±
feature/7-desserts-patchDessert

API

API λͺ…μ„Έμ„œ

Member

λ°•μ†Œμ • μž₯채은 κΉ€μ€‘ν˜„ λ°•μ„œμ—°
PM & Backend Developer PL & Backend Developer Backend Developer Backend Developer