1. 구성 (Configuration) 탭
- 서버 (Server):
- 애플리케이션 서버 (Application server): 사용할 Tomcat 서버를 선택.
- 시작 후 (After launch): 서버 시작 후 자동으로 웹 브라우저를 열고 지정된 URL로 이동할지 설정.
- URL (URL): 서버 시작 후 열릴 웹 브라우저의 초기 URL을 지정.
- VM 옵션 (VM options): Tomcat 서버 실행 시 사용할 JVM 옵션을 지정.
- 메모리 힙 크기 설정 (-Xms, -Xmx)
- 시스템 속성 설정 (-Dproperty=value)
- 기타 JVM 관련 설정
- '업데이트' 동작 시 (On 'Update' action): IntelliJ의 'Update' 액션( Ctrl + F10 ) 수행 시 작업을 설정.
-
- Update resources (리소스 업데이트):
- HTML, CSS, JavaScript, 이미지 파일 등 정적(static) 리소스 파일만 변경된 내용을 서버에 반영.
- Java 코드가 변경된 경우에는 적용되지 않는다.
- 가장 빠르고 가벼운 업데이트 방식.
- Update classes and resources (클래스 및 리소스 업데이트):
- 정적 리소스뿐만 아니라, 컴파일된 Java 클래스 파일(.class)도 업데이트.
- Java 코드를 수정한 경우에도 서버를 재시작하지 않고 변경 사항을 반영할 수 있다.
- 대부분의 경우 이 옵션을 사용하는 것이 효율적.
- Redeploy (다시 배포):
- 애플리케이션 전체를 서버에서 제거했다가 다시 배포(deploy).
- web.xml과 같은 설정 파일 변경, 라이브러리 추가/제거 등 애플리케이션의 구조적인 변경이 있을 때 사용.
- 서버를 재시작하는 것과 유사한 효과를 가지며, 시간이 가장 오래 걸린다.
- Hot swap classes (클래스 핫스왑):
- (Debug 모드에서만 사용 가능)
- 가능한 경우, 변경된 Java 클래스를 서버 재시작 없이 실시간으로 교체(swap).
- 제한적인 경우에만 동작 (메서드 내부 코드 변경 등). 메서드 시그니처(이름, 매개변수, 반환 타입) 변경, 클래스 구조 변경 등은 핫스왑이 불가능.
- 가장 빠르고 편리한 방법이지만, 모든 변경 사항에 대해 동작하지는 않는다.
- Update resources (리소스 업데이트):
-
- 프레임 비활성화 시 (On frame deactivation): IntelliJ IDEA 창이 비활성화될 때 (예: 다른 애플리케이션 창으로 전환할 때) 자동으로 Update 액션을 수행할지, 어떤 방식으로 수행할지 설정하는 것
- JRE (JRE): Tomcat 서버 실행에 사용할 Java Runtime Environment (JRE)를 선택.
- Tomcat 서버 설정 (Tomcat Server settings):
- HTTP 포트: (HTTP port): Tomcat 서버의 HTTP 포트를 지정. (기본값: 8080)
- HTTPS 포트: (HTTPS port): Tomcat 서버의 HTTPS 포트를 지정.
- JMX 포트: (JMX port): JMX (Java Management Extensions)를 통해 Tomcat 서버를 모니터링하고 관리할 때 사용할 포트를 지정. (기본값: 1099)
- AJP 포트: (AJP port): Apache HTTP Server와 같은 웹 서버와 연동할 때 사용하는 AJP (Apache JServ Protocol) 포트를 지정.
- Tomcat 인스턴스에 구성된 애플리케이션 배포(D): 체크 해제 시, 배포(Deployment) 탭에서 지정한 애플리케이션만 배포.
- 재시작 및 재배포 시 세션 유지: 체크 해제 시, 서버를 다시 시작하거나 다시 배포 시, 세션 정보가 삭제.
- 실행 전(B) (Before launch):
- + (Add): 서버를 실행하기 전에 수행할 작업을 추가. (예: Maven 빌드, 다른 구성 실행, 외부 도구 실행 등)
- 빌드 (Build): 프로젝트를 빌드.
- 이 페이지 표시 (Show this page): 실행/디버그 구성을 시작할 때 이 설정 창을 다시 표시할지 여부를 설정
- 도구 창 활성화 (Activate tool window): 서버 시작 시 "Run" 또는 "Debug" 도구 창을 자동으로 연다.
- 도구 창에 포커스 맞추기 (Focus tool window): 서버 시작 시 "Run" 또는 "Debug" 도구 창에 포커스를 준다.
2. 배포 (Deployment) 탭
이 탭에서는 Tomcat 서버에 배포할 애플리케이션(Artifact)을 설정.
- 서버 시작 시 배포 (Deploy at the server startup):
- + (Add): 배포할 애플리케이션(Artifact)을 추가.
- Artifact...: 빌드된 WAR, EAR, exploded WAR/EAR 등의 아티팩트를 선택.
- External Source...: 외부 소스(예: 다른 프로젝트, 외부 저장소)에서 가져온 애플리케이션을 배포.
- - (Remove): 선택한 애플리케이션을 배포 목록에서 제거.
- Edit (연필 아이콘): 선택한 애플리케이션의 설정을 편집. (애플리케이션 컨텍스트 등)
- + (Add): 배포할 애플리케이션(Artifact)을 추가.
- 배포 목록:
- Gradle : org.zerock:w1-1.0-SNAPSHOT.war: 배포될 애플리케이션.
- 애플리케이션 컨텍스트(Application context):
- / : 배포되는 애플리케이션에 접근하는 URL 경로. 슬래쉬(/)는 루트 컨텍스트를 의미하므로, 이 애플리케이션은 http://localhost:8080/ 와 같이 접근할 수 있다.
3.로그 (Logs) 탭
이 탭에서는 Tomcat 서버의 로그 파일 관련 설정을 관리. IntelliJ IDEA의 "Run" 또는 "Debug" 도구 창의 콘솔에 어떤 로그를 표시할지, 로그를 파일로 저장할지 등을 설정할 수 있다.
- 콘솔에 표시할 로그 파일 (Log files to show in console):
- + (Add): 콘솔에 표시할 로그 파일을 추가.
- Log File Entry: 특정 로그 파일 경로를 직접 지정.
- Log File Alias: 미리 정의된 로그 파일 별칭(alias)을 선택. (Tomcat의 기본 로그 파일 등)
- - (Remove): 선택한 로그 파일을 콘솔 표시 목록에서 제거.
- Edit (연필 아이콘): 선택한 로그 파일의 설정을 편집. (별칭, 파일 경로, 표시 옵션 등)
- 로그 파일 목록:
- 활성 상태 (Is Active): 체크박스를 선택/해제하여 해당 로그 파일을 콘솔에 표시할지 여부를 결정.
- 로그 파일 항목 (Log File Entry): 로그 파일의 별칭(alias) 또는 경로를 표시.
- 내용 건너뛰기 (Skip Content): 체크하면 이전 로그 내용은 표시하지 않고, 현재 시점부터의 로그만 표시.
- 기본 Tomcat 로그:
- Tomcat Localhost 로그: localhost 관련 로그 (요청, 응답, 오류 등)
- Tomcat Catalina 로그: Tomcat 서버 자체의 로그 (시작, 종료, 설정 변경 등)
- Tomcat Manager 로그: Tomcat Manager 애플리케이션 관련 로그
- Tomcat Host Manager 로그: Tomcat Host Manager 애플리케이션 관련 로그
- Tomcat Localhost Access 로그: localhost에 대한 접근 로그 (요청 URL, 상태 코드, 시간 등)
- + (Add): 콘솔에 표시할 로그 파일을 추가.
- 콘솔 출력을 파일에 저장(S) (Save console output to file): 체크하면 콘솔에 표시되는 모든 내용을 지정된 파일에 저장.
- 파일 경로 입력란: 로그 파일을 저장할 경로와 파일명을 지정.
- 메시지가 표준 출력 스트림으로 인쇄될 때 콘솔 표시 (Show console when a message is printed to standard output stream): 체크하면 표준 출력(System.out)으로 메시지가 출력될 때 자동으로 "Run" 또는 "Debug" 도구 창의 콘솔을 연다.
- 메시지가 표준 에러 스트림으로 인쇄될 때 콘솔 표시(Show console when a message is printed to the standard error stream): 체크하면 표준 에러(System.err)로 메시지가 출력될 때 자동으로 "Run" 또는 "Debug" 도구 창을 연다.
4.코드 커버리지 (Code Coverage) 탭
이 탭에서는 코드 커버리지 분석을 위한 설정을 한다. 코드 커버리지는 테스트 코드를 실행했을 때, 애플리케이션 코드의 어느 부분이 실행되었는지를 비율(%)로 나타냄.
코드 커버리지 사용 방법
- 커버리지 측정 대상 설정: "커버리지 데이터에 포함할 패키지 및 클래스"에서 '+' 버튼을 눌러 측정하고 싶은 패키지나 클래스를 추가.
- 디버그 모드로 실행: Tomcat 서버 구성을 "Debug" 모드로 실행.
- 테스트 수행: 웹 브라우저나 테스트 도구를 사용하여 애플리케이션의 기능을 테스트. (또는 JUnit과 같은 테스트 프레임워크를 사용하여 자동화된 테스트를 실행.)
- 커버리지 결과 확인: IntelliJ IDEA의 "Coverage" 도구 창에서 결과를 확인.
- Coverage 도구 창: 코드 커버리지 결과를 시각적으로 보여준다. (패키지/클래스별 커버리지 비율, 라인별 실행 여부 등)
- 에디터: 코드 에디터에서도 실행된 라인과 실행되지 않은 라인이 색상으로 구분되어 표시됨.
5. 시작/연결 (Startup/Connection) 탭
시작/연결 (Startup/Connection) 탭의 역할
이 탭은 IntelliJ IDEA에서 Tomcat 서버를 어떻게 시작하고, 어떻게 디버깅할 것인지에 대한 "저수준(low-level)" 설정을 담당. 즉, Tomcat 서버 프로세스 자체의 실행 방식과 관련된 설정을 하는 곳.
주요 설정 및 사용 시나리오
- 실행 (Run) / 디버그 (Debug) 탭 선택:
- 실행 (Run): 일반적인 개발 과정에서 애플리케이션을 Tomcat에 배포하고 실행하여 테스트할 때 사용.
- 디버그 (Debug): 코드에 중단점(breakpoint)을 설정하고, 한 단계씩 실행하면서 변수 값을 확인하는 등 디버깅을 할 때 사용.
- 시작/종료 스크립트 (Startup/Shutdown script):
- 기본값 사용: 대부분의 경우 IntelliJ IDEA가 Tomcat 설치 경로를 자동으로 감지하고, 올바른 시작/종료 스크립트(Windows에서는 catalina.bat, macOS/Linux에서는 catalina.sh)를 사용하므로 기본값을 그대로 둔다.
- 언제 변경할까요?
- Tomcat 설치 경로가 표준과 다를 때
- Tomcat을 여러 개 설치해서 특정 버전을 사용해야 할 때
- 커스텀 스크립트를 사용해야 할 때 (예: 시작 전에 특정 환경 설정을 하는 스크립트)
- 환경 변수 (Environment variables):
- 언제 사용할까요?
- CATALINA_HOME, CATALINA_BASE: Tomcat 설치 경로 또는 인스턴스 경로를 명시적으로 지정해야 할 때 (IntelliJ가 자동으로 찾지 못하는 경우)
- JAVA_HOME: Tomcat이 사용할 Java 버전을 명시적으로 지정해야 할 때 (시스템 기본 Java와 다른 버전을 사용해야 하는 경우)
- JAVA_OPTS: JVM 옵션(메모리 설정, 시스템 속성 등)을 Tomcat 서버에 전달해야 할 때
- 기타 애플리케이션 관련 환경 변수: 애플리케이션 코드에서 특정 환경 변수를 읽어서 동작하는 경우 (예: 데이터베이스 연결 정보, API 키 등)
- 주의: VM 옵션 (VM options)은 "서버 (Server)" 탭에서 설정하는 것이 일반적입니다. "시작/연결" 탭의 환경 변수는 주로 Tomcat 자체 또는 애플리케이션 코드에서 직접 참조하는 변수를 설정하는 데 사용된다.
- 언제 사용할까요?
- 디버그 (Debug) 탭 (디버깅 시에만 중요):
- 포트 (Port): IntelliJ IDEA의 디버거가 Tomcat 서버에 연결할 포트를 지정.
- 기본값(보통 8000)을 사용하는 것이 일반적이지만, 포트 충돌이 발생하면 다른 포트로 변경해야 함.
- 전송 (Transport): (고급 설정) 디버거와 Tomcat 간의 통신 방식(Socket 또는 Shared memory)을 설정. 일반적으로 변경할 필요가 없다.
- 포트 (Port): IntelliJ IDEA의 디버거가 Tomcat 서버에 연결할 포트를 지정.
실제 사용 예시
- 시나리오 1: Tomcat이 다른 Java 버전을 사용해야 하는 경우
- "시작/연결" 탭의 "실행 (Run)" 탭에서 "환경 변수" 섹션으로 이동.
- '+' 버튼을 클릭하여 새 환경 변수를 추가.
- JAVA_HOME 변수를 추가하고, 원하는 Java 버전의 설치 경로를 값으로 설정.
- 시나리오 2: 애플리케이션이 특정 환경 변수를 필요로 하는 경우
- "시작/연결" 탭의 "실행 (Run)" 탭에서 "환경 변수" 섹션으로 이동.
- '+' 버튼을 클릭하여 필요한 환경 변수를 추가하고, 해당 값을 설정.
- 시나리오 3: 디버깅 중 포트 충돌이 발생하는 경우
- "시작/연결" 탭의 "디버그 (Debug)" 탭으로 이동.
- "포트 (Port)" 값을 다른 사용 가능한 포트 번호로 변경.
'개발 > IntelliJ' 카테고리의 다른 글
서버 배포 탭에서 war 와 war(exploded)의 차이 (0) | 2025.04.11 |
---|---|
Lombok 적용 안될때 (0) | 2025.03.09 |
인텔리제이 인코딩 설정하기 (0) | 2025.03.04 |
인텔리제이에서 servlet 프로젝트 만들기 (0) | 2025.03.04 |