λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

μ•„νŒŒμΉ˜ ν†°μΊ£ 9 μ„€μΉ˜ / λ‹€μš΄λ‘œλ“œ 방법

by 5566 2023. 8. 22.

1. μ•„νŒŒμΉ˜ ν†°μΊ£ 9 λ‹€μš΄λ‘œλ“œ

λ‹€μŒμ€ μ•„νŒŒμΉ˜ ν†°μΊ£ 9λ₯Ό λ‹€μš΄λ‘œλ“œν•˜λŠ” 방법에 λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…μž…λ‹ˆλ‹€.

  1. μ•„νŒŒμΉ˜ ν†°μΊ£ 9의 곡식 μ›Ήμ‚¬μ΄νŠΈ(https://tomcat.apache.org/download-90.cgi)둜 μ΄λ™ν•©λ‹ˆλ‹€.
  2. λ‹€μš΄λ‘œλ“œ νŽ˜μ΄μ§€μ—μ„œ, "Binary Distribution" μ„Ήμ…˜μ„ μ°ΎμŠ΅λ‹ˆλ‹€.
  3. 운영 μ²΄μ œμ— λ§žλŠ” λ‹€μš΄λ‘œλ“œ 링크λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€. (예: Windows 64-bit zip νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•˜λ €λ©΄ "zip" 링크λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.)
  4. λ‹€μš΄λ‘œλ“œκ°€ μ‹œμž‘λ˜κ³  μ™„λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦½λ‹ˆλ‹€.

ν†°μΊ£ 9 λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•œ 곡식 μ›Ήμ‚¬μ΄νŠΈμ—μ„œ λ‹€μš΄λ‘œλ“œν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 곡식 μ›Ήμ‚¬μ΄νŠΈλ₯Ό 톡해 μ•ˆμ •μ μ΄κ³  μ‹ λ’°ν•  수 μžˆλŠ” 버전을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μš΄λ‘œλ“œ νŽ˜μ΄μ§€λ₯Ό 찾을 λ•Œμ—λŠ” 운영 μ²΄μ œμ— λ§žλŠ” 버전을 μ„ νƒν•˜λ„λ‘ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이제, μ•„νŒŒμΉ˜ ν†°μΊ£ 9 λ‹€μš΄λ‘œλ“œκ°€ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ λ‹¨κ³„λŠ” ν†°μΊ£ 9λ₯Ό μ„€μΉ˜ν•˜κΈ° μœ„ν•œ ν™˜κ²½ μš”κ΅¬ 사항을 ν™•μΈν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

2. ν™˜κ²½ μš”κ΅¬ 사항

μ•„νŒŒμΉ˜ ν†°μΊ£ 9λ₯Ό μ„€μΉ˜ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ ν™˜κ²½ μš”κ΅¬ 사항은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

2.1. 운영 체제

μ•„νŒŒμΉ˜ ν†°μΊ£ 9λŠ” λ‹€μ–‘ν•œ 운영 μ²΄μ œμ—μ„œ λ™μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ§€μ›λ˜λŠ” 운영 체제 λͺ©λ‘μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€:

  • Windows: Windows 10, Windows 8/8.1, Windows 7, Windows Vista, Windows Server 2016, Windows Server 2012/2012 R2, Windows Server 2008/2008 R2.
  • Linux: CentOS, Ubuntu, Red Hat, Fedora λ“± μ£Όμš” λ¦¬λˆ…μŠ€ 배포판.
  • macOS: OS X 10.9 μ΄μƒμ˜ 버전.

2.2. μžλ°” 개발 ν‚€νŠΈ(JDK)

μ•„νŒŒμΉ˜ ν†°μΊ£ 9λŠ” μžλ°” 기반으둜 λ™μž‘ν•˜κΈ° λ•Œλ¬Έμ—, JDK(Java Development Kit)κ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. ν†°μΊ£ 9λŠ” JDK 8 이상을 μ§€μ›ν•˜λ©°, JDK 11을 μΆ”μ²œν•©λ‹ˆλ‹€. JDKλ₯Ό μ„€μΉ˜ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  1. 였라클(Oracle)의 곡식 μ›Ήμ‚¬μ΄νŠΈ(http://www.oracle.com/technetwork/java/javase/downloads/index.html)μ—μ„œ JDKλ₯Ό λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.
  2. λ‹€μš΄λ‘œλ“œν•œ JDK μ„€μΉ˜ νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.
  3. μ„€μΉ˜ λ§ˆλ²•μ‚¬μ˜ μ§€μ‹œμ— 따라 JDKλ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.
  4. JDK μ„€μΉ˜κ°€ μ™„λ£Œλ˜λ©΄, ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•˜μ—¬ JDKλ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. (PATH ν™˜κ²½ λ³€μˆ˜μ— JDK의 'bin' 디렉토리λ₯Ό μΆ”κ°€ν•˜λŠ” 것이 μΌλ°˜μ μž…λ‹ˆλ‹€.)

2.3. 기타 μš”κ΅¬ 사항

μ•„νŒŒμΉ˜ ν†°μΊ£ 9λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ μΆ”κ°€μ μœΌλ‘œ λ‹€μŒ μš”κ΅¬ 사항이 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • λ©”λͺ¨λ¦¬: ν†°μΊ£ 9의 정상적인 μž‘λ™μ„ μœ„ν•΄ μΆ©λΆ„ν•œ λ©”λͺ¨λ¦¬(RAM)λ₯Ό ν• λ‹Ήν•΄ μ£Όμ„Έμš”. 일반적으둜 μ΅œμ†Œ 2GB μ΄μƒμ˜ λ©”λͺ¨λ¦¬λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€.
  • λ„€νŠΈμ›Œν¬: ν†°μΊ£ 9λŠ” λ„€νŠΈμ›Œν¬λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈμ™€ ν†΅μ‹ ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λ„€νŠΈμ›Œν¬μ— μ—°κ²°λ˜μ–΄ μžˆλŠ” ν™˜κ²½μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • 포트: ν†°μΊ£ 9λŠ” 기본적으둜 8080 포트λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. λ‹€λ₯Έ 포트λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ μ„€μ • νŒŒμΌμ—μ„œ μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μœ„μ˜ ν™˜κ²½ μš”κ΅¬ 사항을 λͺ¨λ‘ μΆ©μ‘±ν•œ ν›„, μ•„νŒŒμΉ˜ ν†°μΊ£ 9λ₯Ό μ„€μΉ˜ν•  μ€€λΉ„κ°€ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이제 μ„€μΉ˜ 과정을 진행해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

3. μ•„νŒŒμΉ˜ ν†°μΊ£ 9 μ„€μΉ˜ν•˜κΈ°

μ•„νŒŒμΉ˜ ν†°μΊ£ 9λ₯Ό μ„€μΉ˜ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. λ¨Όμ €, μ•„νŒŒμΉ˜ ν†°μΊ£ 9의 μ••μΆ• νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•œ μœ„μΉ˜μ—μ„œ 압좕을 ν•΄μ œν•©λ‹ˆλ‹€.

  2. 압좕이 ν•΄μ œλœ 폴더에 λ“€μ–΄κ°€λ©΄ λ‹€μŒκ³Ό 같은 파일과 폴더λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€:

    • bin: μ‹€ν–‰ κ°€λŠ₯ν•œ 슀크립트 파일이 λ“€μ–΄μžˆλŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • conf: μ„€μ • 파일이 λ“€μ–΄μžˆλŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • lib: ν†°μΊ£ 9μ—μ„œ μ‚¬μš©λ˜λŠ” 라이브러리 파일이 λ“€μ–΄μžˆλŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • webapps: μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜(.WAR 파일)을 λ°°ν¬ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • work: ν†°μΊ£ 9κ°€ μ‹€ν–‰ 쀑에 μƒμ„±ν•˜λŠ” μž‘μ—… 파일이 μ €μž₯λ˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
  3. μ„€μ • νŒŒμΌμ„ μˆ˜μ •ν•˜μ—¬ ν†°μΊ£ 9λ₯Ό 운영 μ²΄μ œμ— 맞게 κ΅¬μ„±ν•©λ‹ˆλ‹€. conf ν΄λ”μ—μ„œ λ‹€μŒ νŒŒμΌλ“€μ„ ν™•μΈν•˜κ³  ν•„μš”μ— 따라 μˆ˜μ •ν•©λ‹ˆλ‹€:

    • server.xml: ν†°μΊ£ μ„œλ²„μ˜ μ£Όμš” μ„€μ • νŒŒμΌμž…λ‹ˆλ‹€. 포트 번호, 컀λ„₯ν„° 등을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • web.xml: 각 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„€μ • νŒŒμΌμž…λ‹ˆλ‹€. ν•„μš”ν•œ 경우, μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 맞좀 섀정을 μΆ”κ°€ν•˜κ±°λ‚˜ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. ν†°μΊ£ 9λ₯Ό μ‹œμž‘ν•˜κΈ° μœ„ν•΄ bin ν΄λ”λ‘œ μ΄λ™ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ ν•΄λ‹Ή 운영 μ²΄μ œμ— λ§žλŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ 슀크립트 νŒŒμΌμ„ μ°Ύμ•„ μ‹€ν–‰ν•©λ‹ˆλ‹€:

    • Windows 운영 체제의 경우, startup.bat 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.
    • Linux/Mac 운영 체제의 경우, startup.sh 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. ν•„μš”ν•˜λ‹€λ©΄, chmod +x startup.sh λͺ…λ Ήμ–΄λ‘œ μ‹€ν–‰ κΆŒν•œμ„ μ£Όμ„Έμš”.
  5. ν†°μΊ£ 9κ°€ μ •μƒμ μœΌλ‘œ μ‹œμž‘λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ μ›Ή λΈŒλΌμš°μ €μ—μ„œ http://localhost:8080을 μ—½λ‹ˆλ‹€. 둜컬호슀트의 8080 포트둜 μ ‘μ†ν•˜μ—¬ ν†°μΊ£ μ„œλ²„μ˜ κΈ°λ³Έ 화면을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

  6. μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬ν•˜κΈ° μœ„ν•΄ webapps 폴더에 μ›ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜(.WAR 파일)을 λ³΅μ‚¬ν•©λ‹ˆλ‹€. ν†°μΊ£ 9λŠ” μžλ™μœΌλ‘œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ²€μƒ‰ν•˜κ³  λ°°ν¬ν•©λ‹ˆλ‹€.

  7. ν†°μΊ£ 9λ₯Ό μ’…λ£Œν•˜κΈ° μœ„ν•΄ bin ν΄λ”λ‘œ μ΄λ™ν•œ ν›„ ν•΄λ‹Ή 운영 μ²΄μ œμ— λ§žλŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€:

    • Windows 운영 체제의 경우, shutdown.bat 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.
    • Linux/Mac 운영 체제의 경우, shutdown.sh 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.

이제, μ•„νŒŒμΉ˜ ν†°μΊ£ 9λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ„€μΉ˜ν•˜κ³  μ‹€ν–‰ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 좔가적인 μ„ΈλΆ€ μ„€μ •μ΄λ‚˜ κΈ°λŠ₯ ν™œμš©μ— λŒ€ν•΄μ„œλŠ” μ•„νŒŒμΉ˜ ν†°μΊ£ 9의 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

4. μ„€μ • 및 ꡬ성

μ•„νŒŒμΉ˜ ν†°μΊ£ 9λ₯Ό μ„€μΉ˜ν–ˆλ‹€λ©΄, 이제 톰캣을 μ„€μ •ν•˜κ³  κ΅¬μ„±ν•˜μ—¬ μ›ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4.1. server.xml μˆ˜μ •ν•˜κΈ°

server.xml은 ν†°μΊ£ μ„œλ²„μ˜ μ£Όμš” μ„€μ • 파일둜, λ‹€μ–‘ν•œ 속성듀을 μˆ˜μ •ν•˜μ—¬ ν†°μΊ£μ˜ λ™μž‘μ„ μ‘°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 νŒŒμΌμ„ μˆ˜μ •ν•˜μ—¬ 포트 번호, 컀λ„₯ν„°, 가상 호슀트 등을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” 일반적인 μ„€μ • μˆ˜μ • λ°©λ²•μž…λ‹ˆλ‹€:

  1. conf ν΄λ”μ—μ„œ server.xml νŒŒμΌμ„ μ—½λ‹ˆλ‹€.

  2. <Server> μš”μ†Œμ—μ„œ port 속성을 μˆ˜μ •ν•˜μ—¬ ν†°μΊ£ μ„œλ²„μ˜ 포트 번호λ₯Ό λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κΈ°λ³Έ 포트 λ²ˆν˜ΈλŠ” 8005μž…λ‹ˆλ‹€.

  3. <Connector> μš”μ†ŒλŠ” ν†°μΊ£κ³Ό μ›Ή ν΄λΌμ΄μ–ΈνŠΈ κ°„μ˜ 연결을 λ‹΄λ‹Ήν•©λ‹ˆλ‹€. HTTP/1.1 ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜λŠ” κΈ°λ³Έ 컀λ„₯ν„°λŠ” λ‹€μŒκ³Ό 같이 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    • port: μ›Ή ν΄λΌμ΄μ–ΈνŠΈκ°€ μ ‘μ†ν•˜λŠ” 포트 λ²ˆν˜Έμž…λ‹ˆλ‹€. 기본값은 8080μž…λ‹ˆλ‹€.
    • protocol: μ‚¬μš©ν•  ν”„λ‘œν† μ½œμ„ μ§€μ •ν•©λ‹ˆλ‹€. 기본값은 HTTP/1.1μž…λ‹ˆλ‹€.
    • connectionTimeout: ν΄λΌμ΄μ–ΈνŠΈμ˜ 연결이 μœ μ§€λ˜λŠ” μ‹œκ°„(λ°€λ¦¬μ΄ˆ)을 μ§€μ •ν•©λ‹ˆλ‹€. 기본값은 20000(20초)μž…λ‹ˆλ‹€.
    • redirectPort: SSL(HTTPS) 연결을 μœ„ν•œ 포트 λ²ˆν˜Έμž…λ‹ˆλ‹€. 기본값은 8443μž…λ‹ˆλ‹€.
  4. ν•„μš”ν•œ 경우, κΈ°λ³Έ 컀λ„₯ν„°λ₯Ό μˆ˜μ •ν•˜κ±°λ‚˜ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, HTTPS 연결을 μΆ”κ°€ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" scheme="https" secure="true"
               SSLEnabled="true"
               keystoreFile="/path/to/keystore/file"
               keystorePass="keystore_password" />

    μœ„μ˜ μ˜ˆμ—μ„œλŠ” 443 포트λ₯Ό μ‚¬μš©ν•˜κ³ , HTTPS ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ SSL 연결을 μ§€μ›ν•©λ‹ˆλ‹€.

  5. <Host> μš”μ†ŒλŠ” 가상 ν˜ΈμŠ€νŠΈμ— λŒ€ν•œ 섀정을 λ‹΄λ‹Ήν•©λ‹ˆλ‹€. 기본적으둜 localhost 가상 ν˜ΈμŠ€νŠΈκ°€ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”ν•œ 경우, μΆ”κ°€ 가상 호슀트λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μƒˆλ‘œμš΄ 가상 호슀트(example.com)λ₯Ό μΆ”κ°€ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

    <Host name="example.com" appBase="webapps/example">
        <Context path="" docBase="."/>
    </Host>

    μœ„μ˜ μ˜ˆμ—μ„œλŠ” example.com 가상 호슀트λ₯Ό μƒμ„±ν•˜κ³ , webapps/example 폴더λ₯Ό ν•΄λ‹Ή 가상 호슀트의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ””λ ‰ν† λ¦¬λ‘œ μ§€μ •ν•©λ‹ˆλ‹€.

4.2. web.xml μˆ˜μ •ν•˜κΈ°

web.xml은 각 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„€μ • νŒŒμΌμž…λ‹ˆλ‹€. 이 νŒŒμΌμ„ μˆ˜μ •ν•˜μ—¬ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ™μž‘μ„ μ‘°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 였λ₯˜ νŽ˜μ΄μ§€λ₯Ό μ •μ˜ν•˜κ±°λ‚˜ νŠΉμ • ν•„ν„°λ₯Ό μΆ”κ°€ν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. conf 폴더 μ•„λž˜μ—μ„œ μ›ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ WEB-INF ν΄λ”λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

  2. WEB-INF 폴더 내에 μžˆλŠ” web.xml νŒŒμΌμ„ μ—½λ‹ˆλ‹€.

  3. <error-page> μš”μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ 였λ₯˜ νŽ˜μ΄μ§€λ₯Ό 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 404 였λ₯˜μ— λŒ€ν•œ 였λ₯˜ νŽ˜μ΄μ§€λ₯Ό μ„€μ •ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 μ„€μ •ν•©λ‹ˆλ‹€:

    <error-page>
        <error-code>404</error-code>
        <location>/error404.html</location>
    </error-page>

    μœ„μ˜ μ˜ˆμ—μ„œλŠ” 404 였λ₯˜ λ°œμƒ μ‹œ /error404.html νŽ˜μ΄μ§€λ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈλ©λ‹ˆλ‹€.

  4. <filter> μš”μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•„ν„°λ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•„ν„°λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μš”μ²­/응닡을 κ°€λ‘œμ±„κ³  μˆ˜μ •ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. ν•„ν„°λ₯Ό μΆ”κ°€ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ¨Όμ € <filter>와 <filter-mapping>을 μ‚¬μš©ν•˜μ—¬ ν•„ν„°λ₯Ό μ •μ˜ν•˜κ³  맀핑해야 ν•©λ‹ˆλ‹€.

    <filter>
        <filter-name>myFilter</filter-name>
        <filter-class>com.example.MyFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>myFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    μœ„μ˜ μ˜ˆμ—μ„œλŠ” com.example.MyFilter 클래슀λ₯Ό μ‚¬μš©ν•˜λŠ” myFilterλΌλŠ” ν•„ν„°λ₯Ό μ •μ˜ν•˜κ³ , λͺ¨λ“  URL νŒ¨ν„΄(/*)에 λŒ€ν•΄ ν•„ν„°λ₯Ό μ μš©ν•©λ‹ˆλ‹€.

μœ„μ˜ μ˜ˆμ‹œλŠ” 톰캣을 μ„€μ •ν•˜κ³  κ΅¬μ„±ν•˜λŠ” 방법을 보여주기 μœ„ν•œ κ°„λ‹¨ν•œ μ˜ˆμ‹œμž…λ‹ˆλ‹€. ν†°μΊ£μ˜ μ„€μ •κ³Ό ꡬ성은 λ‹€μ–‘ν•œ μš”κ΅¬ 사항과 μ‹œλ‚˜λ¦¬μ˜€μ— 따라 λ‹€λ₯Ό 수 μžˆμœΌλ―€λ‘œ, 곡식 λ¬Έμ„œ 및 κ΄€λ ¨ 자료λ₯Ό μ°Έκ³ ν•˜μ—¬ μ›ν•˜λŠ” λ™μž‘μ„ 달성할 수 μžˆλ„λ‘ 섀계해야 ν•©λ‹ˆλ‹€.

5. ν…ŒμŠ€νŠΈ 및 μ‹€ν–‰ν•˜κΈ°

ν†°μΊ£ 9λ₯Ό μ„€μΉ˜ν•˜κ³  μ„€μ •ν•œ ν›„ ν…ŒμŠ€νŠΈν•˜μ—¬ μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜λŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” ν…ŒμŠ€νŠΈ 및 μ‹€ν–‰ν•˜λŠ” 방법에 λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…μž…λ‹ˆλ‹€:

5.1. ν†°μΊ£ μ‹œμž‘ν•˜κΈ°

  1. 터미널 λ˜λŠ” λͺ…λ Ή ν”„λ‘¬ν”„νŠΈλ₯Ό μ—΄κ³ , ν†°μΊ£ 9κ°€ μ„€μΉ˜λœ λ””λ ‰ν† λ¦¬λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

  2. bin ν΄λ”λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

  3. ν•΄λ‹Ή 운영 μ²΄μ œμ— λ§žλŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€:

    • Windows 운영 체제의 경우, startup.bat 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.
    • Linux/Mac 운영 체제의 경우, startup.sh 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. ν•„μš”ν•˜λ‹€λ©΄, chmod +x startup.sh λͺ…λ Ήμ–΄λ‘œ μ‹€ν–‰ κΆŒν•œμ„ λΆ€μ—¬ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. ν†°μΊ£ 9κ°€ μ„±κ³΅μ μœΌλ‘œ μ‹œμž‘λ˜λ©΄, 터미널 λ˜λŠ” λͺ…λ Ή ν”„λ‘¬ν”„νŠΈμ—μ„œ ν•΄λ‹Ή λ©”μ‹œμ§€λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€:

    Tomcat started.

5.2. ν†°μΊ£ ν…ŒμŠ€νŠΈν•˜κΈ°

  1. μ›Ή λΈŒλΌμš°μ €λ₯Ό μ—΄κ³  http://localhost:8080을 μž…λ ₯ν•©λ‹ˆλ‹€.

  2. 둜컬호슀트의 8080 포트둜 μ ‘μ†ν•˜μ—¬ ν†°μΊ£ μ„œλ²„μ˜ κΈ°λ³Έ 화면을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 κΈ°λ³Έ 화면은 webapps/ROOT 폴더에 μžˆλŠ” index.html 파일둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

5.3. μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ°°ν¬ν•˜κΈ°

  1. webapps ν΄λ”λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

  2. λ°°ν¬ν•˜κ³ μž ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜(.WAR 파일)을 webapps 폴더에 λ³΅μ‚¬ν•©λ‹ˆλ‹€.

  3. ν†°μΊ£ 9λŠ” μžλ™μœΌλ‘œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ²€μƒ‰ν•˜κ³  λ°°ν¬ν•©λ‹ˆλ‹€. 배포 κ³Όμ •μ—μ„œ WAR 파일이 μ••μΆ• ν•΄μ œλ˜κ³ , μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λ©λ‹ˆλ‹€.

  4. μ›Ή λΈŒλΌμš°μ €μ—μ„œ http://localhost:8080/μ• ν”Œλ¦¬μΌ€μ΄μ…˜_이름을 μž…λ ₯ν•˜μ—¬ λ°°ν¬ν•œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜_이름은 λ°°ν¬ν•œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ΄λ¦„μž…λ‹ˆλ‹€.

5.4. ν†°μΊ£ μ’…λ£Œν•˜κΈ°

  1. 톰캣을 μ’…λ£Œν•˜κΈ° 전에, 터미널 λ˜λŠ” λͺ…λ Ή ν”„λ‘¬ν”„νŠΈμ—μ„œ 톰캣이 μ‹€ν–‰ 쀑인지 ν™•μΈν•©λ‹ˆλ‹€.

  2. bin ν΄λ”λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

  3. ν•΄λ‹Ή 운영 μ²΄μ œμ— λ§žλŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€:

    • Windows 운영 체제의 경우, shutdown.bat 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.
    • Linux/Mac 운영 체제의 경우, shutdown.sh 슀크립트 νŒŒμΌμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.
  4. ν†°μΊ£ 9κ°€ μ„±κ³΅μ μœΌλ‘œ μ’…λ£Œλ˜λ©΄, 터미널 λ˜λŠ” λͺ…λ Ή ν”„λ‘¬ν”„νŠΈμ—μ„œ ν•΄λ‹Ή λ©”μ‹œμ§€λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€:

    Tomcat stopped.

이제, ν†°μΊ£ 9λ₯Ό μ„€μΉ˜ν•˜κ³  μ„€μ •ν•œ ν›„ ν…ŒμŠ€νŠΈν•˜μ—¬ μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜λŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”μ— 따라 좔가적인 μ„€μ • 및 μˆ˜μ •μ„ μˆ˜ν–‰ν•˜μ—¬ 톰캣을 μ›ν•˜λŠ” λ°©μ‹μœΌλ‘œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€