From 7d64ee897d4e7c6a50ccd96b0a8491b8d3d03b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dean=5B=EB=B0=B1=EB=B3=91=EB=82=A8=5D?= Date: Mon, 17 Nov 2025 09:39:18 +0900 Subject: [PATCH] api sample --- .editorconfig | 4 +- CODE_STYLE_SETUP.md | 29 ++-- README.md | 4 - intellij-java-google-style.xml | 2 +- settings.gradle | 5 + .../cd/kamcoback/KamcoBackApplication.java | 7 +- .../common/api/HelloApiController.java | 21 +++ .../cd/kamcoback/common/api/HelloDto.java | 33 +++- .../common/service/BaseCoreService.java | 38 +++++ .../common/service/HelloService.java | 13 ++ .../utils/geometry/GeometryDeserializer.java | 5 +- .../utils/geometry/GeometrySerializer.java | 10 +- .../cd/kamcoback/config/StartupLogger.java | 149 +++++++++--------- .../kamco/cd/kamcoback/config/WebConfig.java | 4 +- .../kamcoback/config/api/ApiResponseDto.java | 118 +++++++++++++- .../cd/kamcoback/config/enums/EnumType.java | 6 +- .../kamcoback/postgres/CommonDateEntity.java | 34 ++++ .../cd/kamcoback/postgres/QueryDslConfig.java | 19 +++ .../postgres/core/AnimalCoreService.java | 68 ++++++++ .../postgres/entity/AnimalEntity.java | 67 ++++++++ .../postgres/repository/AnimalRepository.java | 7 + .../repository/AnimalRepositoryCustom.java | 15 ++ .../repository/AnimalRepositoryImpl.java | 99 ++++++++++++ .../cd/kamcoback/zoo/AnimalApiController.java | 82 ++++++++++ .../kamco/cd/kamcoback/zoo/dto/AnimalDto.java | 129 +++++++++++++++ .../kamcoback/zoo/service/AnimalService.java | 61 +++++++ src/main/resources/application-dev.yml | 2 + src/main/resources/application-local.yml | 7 +- .../kamcoback/KamcoBackApplicationTests.java | 6 +- 29 files changed, 918 insertions(+), 126 deletions(-) create mode 100644 src/main/java/com/kamco/cd/kamcoback/common/service/BaseCoreService.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/CommonDateEntity.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/QueryDslConfig.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/core/AnimalCoreService.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/entity/AnimalEntity.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/AnimalRepository.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/AnimalRepositoryCustom.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/AnimalRepositoryImpl.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/zoo/AnimalApiController.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/zoo/dto/AnimalDto.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/zoo/service/AnimalService.java diff --git a/.editorconfig b/.editorconfig index a6d93a81..da27dc81 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,7 +1,7 @@ root = true [*] -indent_style = tab +indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 @@ -9,4 +9,4 @@ trim_trailing_whitespace = true insert_final_newline = true [*.java] -max_line_length = 100 +max_line_length = 180 diff --git a/CODE_STYLE_SETUP.md b/CODE_STYLE_SETUP.md index 3bfdd0e4..2c07ff5b 100644 --- a/CODE_STYLE_SETUP.md +++ b/CODE_STYLE_SETUP.md @@ -4,26 +4,22 @@ ## 자동 포맷팅 구성 -### 1. 커밋 시점 자동 체크 (Git Pre-commit Hook) +### 1. 커밋 시점 자동 포맷팅 (Git Pre-commit Hook) -커밋 전에 자동으로 코드 스타일을 체크하고, 문제가 있으면 커밋을 막습니다. +커밋 전에 자동으로 코드를 포맷팅하고 스테이징합니다. **설정 완료:** `.git/hooks/pre-commit` 파일이 자동으로 실행됩니다. **동작 방식:** -- 커밋 시도 시 `./gradlew spotlessCheck` 자동 실행 -- 포맷팅 오류가 있으면 커밋 차단 및 안내 메시지 출력 -- 포맷팅이 올바르면 커밋 허용 +- 커밋 시도 시 `./gradlew spotlessApply` 자동 실행 +- 스테이징된 Java 파일을 자동으로 포맷팅 +- 포맷팅된 파일을 자동으로 다시 스테이징 +- 포맷팅이 완료되면 커밋 진행 -**포맷팅 오류 발생 시:** -```bash -# 자동 포맷팅 적용 -./gradlew spotlessApply - -# 변경사항 추가 후 다시 커밋 -git add . -git commit -``` +**장점:** +- 수동으로 `spotlessApply`를 실행할 필요 없음 +- 항상 일관된 코드 스타일 유지 +- 포맷팅 누락 방지 ### 2. IntelliJ IDEA 저장 시점 자동 포맷팅 @@ -38,6 +34,7 @@ git commit #### 방법 2: 저장 시 자동 포맷팅 활성화 + **Option A: Actions on Save 설정** 1. **Settings/Preferences** > **Tools > Actions on Save** @@ -84,7 +81,7 @@ git commit 프로젝트는 **Google Java Style Guide** 기반으로 다음 규칙을 따릅니다: - **Indentation**: 2 spaces (탭 아님) -- **Line Length**: 100 characters +- **Line Length**: 180 characters - **Line Endings**: LF (Unix-style) - **Charset**: UTF-8 - **Import Order**: Static imports → 빈 줄 → Regular imports @@ -112,4 +109,4 @@ chmod +x .git/hooks/pre-commit - **Google Java Style Guide**: https://google.github.io/styleguide/javaguide.html - **Spotless Plugin**: https://github.com/diffplug/spotless -- **IntelliJ Code Style**: https://www.jetbrains.com/help/idea/code-style.html \ No newline at end of file +- **IntelliJ Code Style**: https://www.jetbrains.com/help/idea/code-style.html diff --git a/README.md b/README.md index 9b560246..5878b610 100644 --- a/README.md +++ b/README.md @@ -193,10 +193,6 @@ kamco-back/ │ │ │ │ └── StartupLogger.java # 시작 로그 │ │ │ ├── common/ # 공통 유틸리티 │ │ │ │ └── utils/geometry/ # GeoJSON 직렬화 -│ │ │ ├── domain/ # 도메인 엔티티 (예정) -│ │ │ ├── repository/ # 리포지토리 (예정) -│ │ │ ├── service/ # 비즈니스 로직 (예정) -│ │ │ └── controller/ # REST 컨트롤러 (예정) │ │ └── resources/ │ │ ├── application.yml # 기본 설정 + local/prod │ │ └── application-dev.yml # 개발 환경 설정 diff --git a/intellij-java-google-style.xml b/intellij-java-google-style.xml index f3a6743e..d63d7310 100644 --- a/intellij-java-google-style.xml +++ b/intellij-java-google-style.xml @@ -25,7 +25,7 @@ -