This commit is contained in:
Rinjae
2025-12-05 17:28:47 +09:00
parent ae6fb085d4
commit 6e1e077ac6
+29 -24
View File
@@ -10,7 +10,7 @@ AI 어시스턴트가 작업을 시작하기 전에 반드시 이해해야 할
- **신규 기능**: 항상 **JPA**와 Spring Data 리포지토리를 사용해야 합니다. - **신규 기능**: 항상 **JPA**와 Spring Data 리포지토리를 사용해야 합니다.
- **레거시 코드**: 기존 iBATIS (`*.xml` 매퍼) 코드를 수정할 때는 해당 패턴을 따라야 합니다. - **레거시 코드**: 기존 iBATIS (`*.xml` 매퍼) 코드를 수정할 때는 해당 패턴을 따라야 합니다.
- **멀티 모듈 Gradle 프로젝트**: `settings.gradle`에 정의된 것처럼 여러 하위 모듈(`elink-online-*`, `kjb-*` 등)로 구성되어 있습니다. 특정 기능은 다른 모듈에 위치할 수 있습니다. - **멀티 모듈 Gradle 프로젝트**: `settings.gradle`에 정의된 것처럼 여러 하위 모듈(`elink-online-*`, `kjb-*` 등)로 구성되어 있습니다. 특정 기능은 다른 모듈에 위치할 수 있습니다.
- **QueryDSL 코드 생성**: 빌드 시 `QueryDSL`을 사용하여 Q-class가 자동으로 생성됩니다. IDE에서 엔티티를 찾을 수 없다고 표시되면, `gradle compileJava`를 먼저 실행하여 코드를 생성해야 합니다. - **QueryDSL 코드 생성**: 빌드 시 `QueryDSL`을 사용하여 Q-class가 자동으로 생성됩니다. IDE에서 엔티티를 찾을 수 없다고 표시되면, `kjb-gradle.sh compileJava`를 먼저 실행하여 코드를 생성해야 합니다.
- **고객사별 커스터마이징**: `ext.kjb` 또는 `custom` 패키지는 특정 고객사(광주은행)를 위한 코드를 포함하므로, 일반적인 기능 수정 시에는 주의가 필요합니다. - **고객사별 커스터마이징**: `ext.kjb` 또는 `custom` 패키지는 특정 고객사(광주은행)를 위한 코드를 포함하므로, 일반적인 기능 수정 시에는 주의가 필요합니다.
## 프로젝트 개요 ## 프로젝트 개요
@@ -38,46 +38,51 @@ eLink EMS (eLink Management System)는 eLink의 웹 기반 관리 서비스로,
## 빌드 및 개발 명령어 ## 빌드 및 개발 명령어
### 빌드 명령어 ### 빌드 명령어
**⚠️ 중요**: 환경변수 문제로 인해 `gradle` 대신 `kjb-gradle.sh` 스크립트를 사용해야 합니다.
- 스크립트 위치: `/c/eactive/workspaces/shell-scripts/kjb-gradle.sh`
- PATH에 등록되어 있으므로 바로 `kjb-gradle.sh` 명령어 사용 가능
```bash ```bash
# 표준 빌드 # 표준 빌드
gradle build kjb-gradle.sh build
# Weblogic 배포용 빌드 (테스트 제외) # Weblogic 배포용 빌드 (테스트 제외)
gradle build -x test -Pprofile=weblogic kjb-gradle.sh build -x test -Pprofile=weblogic
# WAR 파일 빌드 # WAR 파일 빌드
gradle war kjb-gradle.sh war
# 클린 빌드 # 클린 빌드
gradle clean build kjb-gradle.sh clean build
``` ```
### 테스트 실행 ### 테스트 실행
```bash ```bash
# 모든 테스트 실행 # 모든 테스트 실행
gradle test kjb-gradle.sh test
# 특정 테스트 클래스 실행 # 특정 테스트 클래스 실행
gradle test --tests "com.example.ClassName" kjb-gradle.sh test --tests "com.example.ClassName"
# 특정 테스트 패키지 실행 (JUnit 플랫폼 사용) # 특정 테스트 패키지 실행 (JUnit 플랫폼 사용)
gradle test --tests "com.eactive.eai.rms.*" kjb-gradle.sh test --tests "com.eactive.eai.rms.*"
``` ```
### 개발 태스크 ### 개발 태스크
```bash ```bash
# 패키징 없이 클래스만 컴파일 # 패키징 없이 클래스만 컴파일
gradle classes kjb-gradle.sh classes
# QueryDSL Q-classes 및 기타 애노테이션 생성 # QueryDSL Q-classes 및 기타 애노테이션 생성
gradle compileJava kjb-gradle.sh compileJava
# 의존성 트리 보기 # 의존성 트리 보기
gradle dependencies kjb-gradle.sh dependencies
# 사용 가능한 모든 태스크 목록 # 사용 가능한 모든 태스크 목록
gradle tasks --all kjb-gradle.sh tasks --all
``` ```
## 로컬 개발 빠른 시작 ## 로컬 개발 빠른 시작
@@ -87,24 +92,24 @@ gradle tasks --all
1. **IDE 설정 파일 생성 (최초 1회)** 1. **IDE 설정 파일 생성 (최초 1회)**
```bash ```bash
# IntelliJ IDEA 사용 시 # IntelliJ IDEA 사용 시
gradle idea kjb-gradle.sh idea
# Eclipse 사용 시 # Eclipse 사용 시
gradle eclipse kjb-gradle.sh eclipse
``` ```
2. **QueryDSL 등 소스 코드 생성** 2. **QueryDSL 등 소스 코드 생성**
```bash ```bash
gradle compileJava kjb-gradle.sh compileJava
``` ```
3. **전체 빌드 및 테스트 실행** 3. **전체 빌드 및 테스트 실행**
```bash ```bash
gradle build kjb-gradle.sh build
``` ```
4. **IDE에서 프로젝트 열기** 4. **IDE에서 프로젝트 열기**
- `gradle idea` 또는 `gradle eclipse` 실행 후, IDE에서 프로젝트를 엽니다. - `kjb-gradle.sh idea` 또는 `kjb-gradle.sh eclipse` 실행 후, IDE에서 프로젝트를 엽니다.
5. **실행 구성(Run Configuration) 설정** 5. **실행 구성(Run Configuration) 설정**
- 사용하는 WAS(Tomcat 등)에 `eapim-admin` 프로젝트를 배포하도록 설정합니다. - 사용하는 WAS(Tomcat 등)에 `eapim-admin` 프로젝트를 배포하도록 설정합니다.
@@ -155,7 +160,7 @@ eapim-admin (root project)
이 프로젝트는 **Gradle과 Eclipse 애노테이션 프로세서 모두를 사용**하므로, Q-classes가 **두 위치에 생성**됩니다: 이 프로젝트는 **Gradle과 Eclipse 애노테이션 프로세서 모두를 사용**하므로, Q-classes가 **두 위치에 생성**됩니다:
1. **`build/generated/java/`** - `gradle compileJava` 또는 `gradle build` 실행 시 Gradle이 생성 1. **`build/generated/java/`** - `kjb-gradle.sh compileJava` 또는 `kjb-gradle.sh build` 실행 시 Gradle이 생성
2. **`WebContent/generated/`** - Eclipse IDE에서 빌드 시 Eclipse APT가 생성 2. **`WebContent/generated/`** - Eclipse IDE에서 빌드 시 Eclipse APT가 생성
**이는 예상된 동작이며 의도적입니다.** 두 디렉토리 모두 `.gitignore`에 포함되어 있으며 커밋해서는 안 됩니다. **이는 예상된 동작이며 의도적입니다.** 두 디렉토리 모두 `.gitignore`에 포함되어 있으며 커밋해서는 안 됩니다.
@@ -164,8 +169,8 @@ eapim-admin (root project)
- **Gradle 빌드**: `build/generated/java/`의 Q-classes가 자동으로 classpath에 포함됩니다 - **Gradle 빌드**: `build/generated/java/`의 Q-classes가 자동으로 classpath에 포함됩니다
- **Eclipse IDE**: `WebContent/generated/`의 Q-classes가 자동으로 classpath에 포함됩니다 - **Eclipse IDE**: `WebContent/generated/`의 Q-classes가 자동으로 classpath에 포함됩니다
- **업데이트 pull 후**: `gradle compileJava`를 실행하거나 Eclipse 프로젝트를 새로고침하여 Q-classes를 재생성합니다 - **업데이트 pull 후**: `kjb-gradle.sh compileJava`를 실행하거나 Eclipse 프로젝트를 새로고침하여 Q-classes를 재생성합니다
- **Q-classes IDE 오류 시**: `gradle clean compileJava` 또는 Eclipse → Project → Clean으로 재생성합니다 - **Q-classes IDE 오류 시**: `kjb-gradle.sh clean compileJava` 또는 Eclipse → Project → Clean으로 재생성합니다
중복이 문제를 일으키지 않는 이유: 중복이 문제를 일으키지 않는 이유:
- 두 도구 모두 동일한 JPA 엔티티에서 동일한 Q-classes를 생성합니다 - 두 도구 모두 동일한 JPA 엔티티에서 동일한 Q-classes를 생성합니다
@@ -249,7 +254,7 @@ eapim-admin (root project)
WebLogic용 빌드 시, DefaultServlet 문제를 해결하기 위해 `web.xml`을 `weblogic-web.xml`로 교체하는 `weblogic` 프로필을 사용합니다: WebLogic용 빌드 시, DefaultServlet 문제를 해결하기 위해 `web.xml`을 `weblogic-web.xml`로 교체하는 `weblogic` 프로필을 사용합니다:
```bash ```bash
gradle build -x test -Pprofile=weblogic kjb-gradle.sh build -x test -Pprofile=weblogic
``` ```
## 기술 스택 ## 기술 스택
@@ -326,7 +331,7 @@ com.eactive.eai
### Eclipse ### Eclipse
```bash ```bash
gradle eclipse kjb-gradle.sh eclipse
``` ```
다음을 생성합니다: 다음을 생성합니다:
@@ -338,7 +343,7 @@ gradle eclipse
### IntelliJ IDEA ### IntelliJ IDEA
```bash ```bash
gradle idea kjb-gradle.sh idea
``` ```
또는 IntelliJ에서 직접 "Import Gradle Project"를 사용합니다. 또는 IntelliJ에서 직접 "Import Gradle Project"를 사용합니다.