인텔리제이 서버 설정

2025. 3. 5. 00:34·개발/IntelliJ

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 ) 수행 시 작업을 설정.
        1. Update resources (리소스 업데이트):
          • HTML, CSS, JavaScript, 이미지 파일 등 정적(static) 리소스 파일만 변경된 내용을 서버에 반영.
          • Java 코드가 변경된 경우에는 적용되지 않는다.
          • 가장 빠르고 가벼운 업데이트 방식.
        2. Update classes and resources (클래스 및 리소스 업데이트):
          • 정적 리소스뿐만 아니라, 컴파일된 Java 클래스 파일(.class)도 업데이트.
          • Java 코드를 수정한 경우에도 서버를 재시작하지 않고 변경 사항을 반영할 수 있다.
          • 대부분의 경우 이 옵션을 사용하는 것이 효율적.
        3. Redeploy (다시 배포):
          • 애플리케이션 전체를 서버에서 제거했다가 다시 배포(deploy).
          • web.xml과 같은 설정 파일 변경, 라이브러리 추가/제거 등 애플리케이션의 구조적인 변경이 있을 때 사용.
          • 서버를 재시작하는 것과 유사한 효과를 가지며, 시간이 가장 오래 걸린다.
        4. Hot swap classes (클래스 핫스왑):
          • (Debug 모드에서만 사용 가능)
          • 가능한 경우, 변경된 Java 클래스를 서버 재시작 없이 실시간으로 교체(swap).
          • 제한적인 경우에만 동작 (메서드 내부 코드 변경 등). 메서드 시그니처(이름, 매개변수, 반환 타입) 변경, 클래스 구조 변경 등은 핫스왑이 불가능.
          • 가장 빠르고 편리한 방법이지만, 모든 변경 사항에 대해 동작하지는 않는다.
    • 프레임 비활성화 시 (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 (연필 아이콘): 선택한 애플리케이션의 설정을 편집. (애플리케이션 컨텍스트 등)
  • 배포 목록:
    • 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, 상태 코드, 시간 등)
  • 콘솔 출력을 파일에 저장(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) 탭

이 탭에서는 코드 커버리지 분석을 위한 설정을 한다. 코드 커버리지는 테스트 코드를 실행했을 때, 애플리케이션 코드의 어느 부분이 실행되었는지를 비율(%)로 나타냄.

코드 커버리지 사용 방법

  1. 커버리지 측정 대상 설정: "커버리지 데이터에 포함할 패키지 및 클래스"에서 '+' 버튼을 눌러 측정하고 싶은 패키지나 클래스를 추가.
  2. 디버그 모드로 실행: Tomcat 서버 구성을 "Debug" 모드로 실행.
  3. 테스트 수행: 웹 브라우저나 테스트 도구를 사용하여 애플리케이션의 기능을 테스트. (또는 JUnit과 같은 테스트 프레임워크를 사용하여 자동화된 테스트를 실행.)
  4. 커버리지 결과 확인: IntelliJ IDEA의 "Coverage" 도구 창에서 결과를 확인.
    • Coverage 도구 창: 코드 커버리지 결과를 시각적으로 보여준다. (패키지/클래스별 커버리지 비율, 라인별 실행 여부 등)
    • 에디터: 코드 에디터에서도 실행된 라인과 실행되지 않은 라인이 색상으로 구분되어 표시됨.

5. 시작/연결 (Startup/Connection) 탭

시작/연결 (Startup/Connection) 탭의 역할

이 탭은 IntelliJ IDEA에서 Tomcat 서버를 어떻게 시작하고, 어떻게 디버깅할 것인지에 대한 "저수준(low-level)" 설정을 담당. 즉, Tomcat 서버 프로세스 자체의 실행 방식과 관련된 설정을 하는 곳.

주요 설정 및 사용 시나리오

  1. 실행 (Run) / 디버그 (Debug) 탭 선택:
    • 실행 (Run): 일반적인 개발 과정에서 애플리케이션을 Tomcat에 배포하고 실행하여 테스트할 때 사용.
    • 디버그 (Debug): 코드에 중단점(breakpoint)을 설정하고, 한 단계씩 실행하면서 변수 값을 확인하는 등 디버깅을 할 때 사용.
  2. 시작/종료 스크립트 (Startup/Shutdown script):
    • 기본값 사용: 대부분의 경우 IntelliJ IDEA가 Tomcat 설치 경로를 자동으로 감지하고, 올바른 시작/종료 스크립트(Windows에서는 catalina.bat, macOS/Linux에서는 catalina.sh)를 사용하므로 기본값을 그대로 둔다.
    • 언제 변경할까요?
      • Tomcat 설치 경로가 표준과 다를 때
      • Tomcat을 여러 개 설치해서 특정 버전을 사용해야 할 때
      • 커스텀 스크립트를 사용해야 할 때 (예: 시작 전에 특정 환경 설정을 하는 스크립트)
  3. 환경 변수 (Environment variables):
    • 언제 사용할까요?
      • CATALINA_HOME, CATALINA_BASE: Tomcat 설치 경로 또는 인스턴스 경로를 명시적으로 지정해야 할 때 (IntelliJ가 자동으로 찾지 못하는 경우)
      • JAVA_HOME: Tomcat이 사용할 Java 버전을 명시적으로 지정해야 할 때 (시스템 기본 Java와 다른 버전을 사용해야 하는 경우)
      • JAVA_OPTS: JVM 옵션(메모리 설정, 시스템 속성 등)을 Tomcat 서버에 전달해야 할 때
      • 기타 애플리케이션 관련 환경 변수: 애플리케이션 코드에서 특정 환경 변수를 읽어서 동작하는 경우 (예: 데이터베이스 연결 정보, API 키 등)
      • 주의: VM 옵션 (VM options)은 "서버 (Server)" 탭에서 설정하는 것이 일반적입니다. "시작/연결" 탭의 환경 변수는 주로 Tomcat 자체 또는 애플리케이션 코드에서 직접 참조하는 변수를 설정하는 데 사용된다.
  4. 디버그 (Debug) 탭 (디버깅 시에만 중요):
    • 포트 (Port): IntelliJ IDEA의 디버거가 Tomcat 서버에 연결할 포트를 지정.
      • 기본값(보통 8000)을 사용하는 것이 일반적이지만, 포트 충돌이 발생하면 다른 포트로 변경해야 함.
    • 전송 (Transport): (고급 설정) 디버거와 Tomcat 간의 통신 방식(Socket 또는 Shared memory)을 설정. 일반적으로 변경할 필요가 없다.

실제 사용 예시

  • 시나리오 1: Tomcat이 다른 Java 버전을 사용해야 하는 경우
    1. "시작/연결" 탭의 "실행 (Run)" 탭에서 "환경 변수" 섹션으로 이동.
    2. '+' 버튼을 클릭하여 새 환경 변수를 추가.
    3. JAVA_HOME 변수를 추가하고, 원하는 Java 버전의 설치 경로를 값으로 설정.
  • 시나리오 2: 애플리케이션이 특정 환경 변수를 필요로 하는 경우
    1. "시작/연결" 탭의 "실행 (Run)" 탭에서 "환경 변수" 섹션으로 이동.
    2. '+' 버튼을 클릭하여 필요한 환경 변수를 추가하고, 해당 값을 설정.
  • 시나리오 3: 디버깅 중 포트 충돌이 발생하는 경우
    1. "시작/연결" 탭의 "디버그 (Debug)" 탭으로 이동.
    2. "포트 (Port)" 값을 다른 사용 가능한 포트 번호로 변경.

 

 

저작자표시 비영리 변경금지 (새창열림)

'개발 > IntelliJ' 카테고리의 다른 글

서버 배포 탭에서 war 와 war(exploded)의 차이  (0) 2025.04.11
Lombok 적용 안될때  (0) 2025.03.09
인텔리제이 인코딩 설정하기  (0) 2025.03.04
인텔리제이에서 servlet 프로젝트 만들기  (0) 2025.03.04
'개발/IntelliJ' 카테고리의 다른 글
  • 서버 배포 탭에서 war 와 war(exploded)의 차이
  • Lombok 적용 안될때
  • 인텔리제이 인코딩 설정하기
  • 인텔리제이에서 servlet 프로젝트 만들기
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
인텔리제이 서버 설정
상단으로

티스토리툴바