# eapim-portal 로컬 개발 환경 실행 가이드 > Eclipse Terminal에서 `gradlew bootRun`으로 기동하는 방법 --- ## 환경 구성 개요 | 항목 | 내용 | |------|------| | DB | 로컬 Docker Oracle 19c | | 포트 | 8080 | | 프로파일 | dev | | 실행 방법 | Eclipse Terminal → `gradlew.bat bootRun` | --- ## 1. 사전 준비: 로그 디렉토리 생성 최초 1회만 실행 (없으면 기동 실패) ```cmd mkdir C:\Log\eapim\portal mkdir C:\Log\App\eapim ``` --- ## 2. Docker Oracle 기동 ```cmd cd D:\eActive\workspaces\elink-djbank\docker\ekjb docker-compose up -d ``` Oracle 완전 기동 확인 (처음 기동 시 3~5분 소요): ```cmd docker logs -f oracle ``` `DATABASE IS READY TO USE!` 메시지 확인 후 다음 단계 진행. --- ## 3. Eclipse Terminal에서 bootRun 실행 ### Eclipse Terminal 열기 `Window` → `Show View` → `Terminal` → 우측 상단 **+** 클릭 → **Local Terminal** 선택 ### 실행 명령어 ```cmd cd D:\eActive\workspaces\elink-djbank\eapim-portal gradlew.bat bootRun ``` ### 기동 성공 확인 ``` ##### PortalApplication Ready ##### ``` 브라우저에서 `http://localhost:8080` 접속 확인. --- ## 4. 수정된 파일 목록 ### 4-1. `src/main/resources/application-dev.yml` DB 호스트를 원격 서버에서 로컬 Docker로 변경: ```yaml ems: datasource: jdbc-url: jdbc:oracle:thin:@//localhost:1599/DAPM # 변경 username: EMSAPP password: elink1234 gateway: datasource: jdbc-url: jdbc:oracle:thin:@//localhost:1599/DAPM # 변경 username: AGWAPP password: elink1234 ``` ### 4-2. `build.gradle` `bootRun` 태스크에 `sourceResources` 추가: ```groovy bootRun { sourceResources sourceSets.main // processResources 필터 우회 (dev yml 직접 참조) args = ["--spring.profiles.active=dev"] } ``` > **이유**: `processResources`가 `application-dev.yml`을 빌드 출력에서 제외하도록 설정되어 있어, > `sourceResources sourceSets.main`을 추가해야 `bootRun` 실행 시 소스 디렉토리를 직접 참조함. ### 4-3. `src/main/resources/logback-spring.xml` `dev` 프로파일에 CONSOLE appender 추가 (콘솔 로그 출력): ```xml ``` ### 4-4. `.classpath` MapStruct 등 Gradle annotation processor 생성 소스를 Eclipse 소스 폴더로 추가: ```xml ``` > **이유**: Eclipse는 Gradle annotation processing을 자동 실행하지 않으므로, > `gradlew.bat compileJava` 실행 후 생성된 소스 경로를 Eclipse 빌드 경로에 수동 추가 필요. --- ## 5. Annotation Processor 소스 재생성 소스 구조 변경(매퍼 추가 등) 시 재실행 필요: ```cmd cd D:\eActive\workspaces\elink-djbank\eapim-portal gradlew.bat compileJava ``` 이후 Eclipse에서 `Project` → `Clean` 실행. --- ## 6. Eclipse에서 직접 기동이 안 되는 이유 Eclipse는 참조 프로젝트(`elink-online-core-jpa`)의 test scope 의존성을 구분하지 않고 런타임 클래스패스에 모두 포함시킵니다. 이로 인해 Spring Boot 버전 충돌 발생: | 출처 | jar | 충돌 대상 | |------|-----|-----------| | `elink-online-core-jpa` (test) | `spring-boot-autoconfigure:2.6.15` | eapim-portal `2.7.18` | | `elink-online-core-jpa` (test) | `spring-core:5.3.27` | eapim-portal `5.3.31` | → `gradlew bootRun`은 Gradle의 dependency management(BOM)로 버전을 통일하므로 이 문제가 없음. --- ## 7. Docker Oracle 계정 정보 | 항목 | 값 | |------|----| | Host | localhost | | Port | 1599 | | SID | DAPM | | EMS 계정 | EMSAPP / elink1234 | | GW 계정 | AGWAPP / elink1234 |