JSP/Servlet ํ์ค ์ง์
์ํ์น ํฐ์บฃ(Apache Tomcat)์ Java Servlet๊ณผ JSP๋ฅผ ์คํํ๊ธฐ ์ํ Servlet ์ปจํ ์ด๋์ ๋ํ ๊ณต์ ๋ ํผ๋ฐ์ค ๊ตฌํ์ฒด.
์ํ์น ํฐ์บฃ(Apache Tomcat)์ Java ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์คํ ์์ค ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ด์ ์น ์๋ฒ์ ๋๋ค. ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌํ๋ฉฐ, Java ์๋ธ๋ฆฟ๊ณผ JSP(JavaServer Pages)๋ฅผ ์ง์ํ์ฌ ๋์ ์ธ ์น ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ณ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ํฐ์บฃ์ ๊ฒฝ๋ํ๋ ์ค๊ณ๋ก ์ธํด ์๋ฒ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ, ๋ค์ํ ์ด์ ์ฒด์ ์์ ๊ตฌ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ก ์ธํด ์ค์๊ท๋ชจ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ถํฐ ๋๊ท๋ชจ์ ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ๊น์ง ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
์ํ์น ํฐ์บฃ์ ๊ฐ๋ฐ์๋ค์๊ฒ ๊ฐ๋ ฅํ ๋ณด์ ๊ธฐ๋ฅ, ์ ์ฐํ ์ค์ , ๊ทธ๋ฆฌ๊ณ ๊ณ ์ฑ๋ฅ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. SSL/TLS ์ํธํ, ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ๊ถํ ๊ด๋ฆฌ, ํด๋ฌ์คํฐ๋ง์ ํตํ ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ๋ถํ ๋ถ์ฐ ๋ฑ์ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์์ด ์์ ํ๊ณ ์์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ด์์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ, JDBC ์ฐ๊ฒฐ ํ๋ง, JNDI ์ง์ ๋ฑ ๋ค์ํ ์ํฐํ๋ผ์ด์ฆ๊ธ ๊ธฐ๋ฅ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๋์ด ์ฉ์ดํฉ๋๋ค.
์ปค๋ฎค๋ํฐ ๊ธฐ๋ฐ์ ์คํ ์์ค ํ๋ก์ ํธ๋ก์, ์ํ์น ํฐ์บฃ์ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ ๊ธฐ์ฌ์ ํ๋ฐํ ์ปค๋ฎค๋ํฐ ํ๋์ ํตํด ์ง์์ ์ผ๋ก ๊ฐ์ ๋๊ณ ์์ต๋๋ค. ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ฉด์๋ ์์ฉ ์ ํ์ ๋ฒ๊ธ๊ฐ๋ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ์ ์๋ํ๋ ํฐ์บฃ์, Java ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๋ค์๊ฒ ์ ๋ขฐ๋ฐ๋ ์ ํ์ง๋ก ์๋ฆฌ ์ก๊ณ ์์ต๋๋ค.
Apache Tomcatยฎ(์ํ์น ํฐ์บฃ)์ Java Servelet๊ณผ Java Server Pages ๊ธฐ์ ์ ๋ํ ์คํ์์ค ์ํํธ์จ์ด ๊ตฌํ์ ๋๋ค. Apache Tomcat(์ํ์น ํฐ์บฃ)์ ๋ฒ์ ์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ Servelet ๋ฐ JSP ํ์ค์ ๋ํ ๋ค๋ฅธ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค.
Apache Tomcat์ ๋ฒ์ ๋ณ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
| ๋ฒ์ | ์ถ์์ผ | Servlet | JSP | WebSocket | Java ๋ฒ์ | ์ฃผ์ ํน์ง |
| Tomcat 10 | 2020๋ 11์ | 5.0 | 3.0 | 2.0 | 8 ์ด์ | Jakarta EE 9 ๊ธฐ๋ฐ, ํจํค์ง ์ด๋ฆ ๋ณ๊ฒฝ(javax โ jakarta), ํธํ์ฑ ์ ์ง |
| Tomcat 9 | 2018๋ 12์ | 4.0 | 2.3 | 1.1 | 8 ์ด์ | ์๋ธ๋ฆฟ 4.0 ์ง์, HTTP/2 ์ง์, TLS ๊ฐ์ ํธ์คํธ, OpenSSL ๊ฐ์ |
| Tomcat 8.5 | 2016๋ 06์ | 3.1 | 2.3 | 1.1 | 7 ์ด์ | Tomcat 8์ ์๋ก์ด ๊ธฐ๋ฅ ๋์ , HTTP/2 ์ง์, TLS ๊ฐ์ |
| Tomcat 8 | 2014๋ 06์ | 3.1 | 2.3 | 1.0 | 7 ์ด์ | ์๋ธ๋ฆฟ 3.1 ์ง์, ๋น๋๊ธฐ IO, WebSocket 1.0 ์ง์ |
| Tomcat 7 | 2010๋ 06์ | 3.0 | 2.2 | – | 6 ์ด์ | ์๋ธ๋ฆฟ 3.0 ์ง์, ๋น๋๊ธฐ ์๋ธ๋ฆฟ, ๊ฐ์ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ฑ๋ฅ |
| Tomcat 6 | 2007๋ 02์ | 2.5 | 2.1 | – | 5 ์ด์ | ์๋ธ๋ฆฟ 2.5 ์ง์, ํด๋ฌ์คํฐ๋ง ์ฑ๋ฅ ๊ฐ์ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์ต์ ํ |
| Tomcat 5.5 | 2004๋ 09์ | 2.4 | 2.0 | – | 1.4 ์ด์ | ์๋ธ๋ฆฟ 2.4 ์ง์, ์๋ํ๋ ๋ฐฐํฌ, ๊ณ ์ฑ๋ฅ ํด๋ฌ์คํฐ๋ง |
| Tomcat 5 | 2002๋ 10์ | 2.3 | 1.2 | – | 1.3 ์ด์ | ์๋ธ๋ฆฟ 2.3 ์ง์, ์๋ก์ด JSP ์ปดํ์ผ๋ฌ, ์ฑ๋ฅ ๋ฐ ์์ ์ฑ ๊ฐ์ |
| Tomcat 4.1 | 2002๋ 06์ | 2.3 | 1.2 | – | 1.3 ์ด์ | ์๋ธ๋ฆฟ 2.3 ๋ฐ JSP 1.2 ์ง์, Catalina ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ๋์ |
| Tomcat 3.3 | 2001๋ 01์ | 2.2 | 1.1 | – | 1.2 ์ด์ | ์๋ธ๋ฆฟ 2.2 ๋ฐ JSP 1.1 ์ง์, ์ฑ๋ฅ ๋ฐ ์์ ์ฑ ๊ฐ์ |
OPENMARU APM์ Installer๋ ๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๋ง์ถ์ด ์ํ์น ํฐ์บฃ(Apache Tomcat), ์ํ์น ์น์๋ฒ(Apache Web Server) ์ค์น/๊ตฌ์ฑ๋ ํ๊ฒฝ์ ๋ํ์ฌ ์๋์ผ๋ก ์ค์น ๋ณด๊ณ ์๋ฅผ ์์ฑํฉ๋๋ค.
์ค์น ๋ณด๊ณ ์์์ ๋ค๋ฃจ๋ ๋ด์ฉ์ ์ํ์น ์น์๋ฒ(Apache Web Server)์ ํฐ์บฃ ์๋ฒ ๊ตฌ์ฑ์ ํ์ํ ์ ๋ณด๋ค์ ์ผ๋ชฉ์์ฐํ๊ฒ ์ ๊ณตํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ํ๋ซํผ์ ๋ง์ด๊ทธ๋ ์ด์ ๋ฐ ํ๋ํ๋ ๋น์ฉ ์ ๊ฐ ๊ทธ ์ด์์ ํจ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฆ ์ ์์ผ(Agile) ์ปดํจํ ์ ์ํ ํ๊ฒฝ์ด ๊ตฌ์ถ๋์ด IT ์กฐ์ง์ด ๋น์ฆ๋์ค ์๊ตฌ์ ๋์ฑ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ ๋ฌธ๊ฐ ์ง๋จ์ ํตํ ๊ธฐ์ ์ง์
๋ผ์ด์ ์ค ๋น์ฉ ์ ๋ก
์คํ์์ค ์ํํธ์จ์ด
๊ฐ์ฅ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ WAS
์ฌ์ค์์ ์ธ๊ณ ํ์ค ์ ํ
์๋ก์ด IT ํ๊ฒฝ์์์ ๊ฒ์ฆ ์๋ฃ
์ํ์น ํฐ์บฃ(Apache Tomcat)์ ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ(ASF: Apache Software Foundation)์์ ์ ์งํ๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ง ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS)์ ๋๋ค.
1998 ๋ ์ด๊ธฐ ๋ฒ์ ์ผ๋ก 3.0์ด ๋ฐํ ๋ํ Apache Software Foundation (Apach ์ํํธ์จ์ด ์ฌ๋จ, ASF) ์์ ์ ๊ทน์ ์ธ ๋ฒ์ ์ ์ด ๋ฐ๋ณต๋๋ฉด์ ์ต์์ ํ๋ก์ ํธ์ ํ๋๋ก ๊ณ์ ์งํํ๊ณ ์์ต๋๋ค. ์ต์ ๋ฒ์ 8.0.X๋ Servlet 3.1, JSP2.3, EL3.0 ๋ฐ Web Socket 1.1 ์ด ์ถ๊ฐ๋์์ต๋๋ค.
ํฐ์บฃ์ ์ ์ ๋ช ์นญ์ โ Apache Tomcatโ ์ผ๋ก ๋ง์ ์ฌ๋๋ค์ด ํฐ์บฃ ์ด๋ผ๊ณ ๋ง ํด๋ ์ ์ ์์ ์ ๋๋ก ์ฌ์ค์ ์น ์ปจํ ์ด๋์ ํ์ค์ผ๋ก 100% ์์ ์๋ฐ ํ๋ซํผ์ ๋๋ค.
Tomcat (ํฐ์บฃ)์ 1998 ๋ ์ 3.0์ด ๋ฐํ๋ ํ ์ง์์ ์ธ ๋ฒ์ ์ ์ ๊ฑฐ์ณ Apache Software Foundation (Apach ์ํํธ์จ์ด ์ฌ๋จ, ASF)์ด ๋ณด์ ํ ์ต์์ ํ๋ก์ ํธ์ ํ๋๋ก์ ํ์ฌ์๋ ๊ณ์ ์งํํ๊ณ ์์ต๋๋ค.
Apache ์ํํธ์จ์ด์์ ๊ฐ๋ฐ๋๋ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ํ์ ์ธ ํ๋ซํผ์ผ๋ก์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ , Web ์ปจํ ์ด๋๋ก์๋ ๊ฐ์ฅ ๋๊ฒ ๋ณด๊ธ๋์ด ์์ผ๋ฉฐ, ํ์ค์ ์ค์ํ 100% ์์ ์๋ฐ ํ๋ซํผ์ ๋๋ค.
ํฐ์บฃ์ ์น ์๋ฒ์ ์ฐ๋ํ์ฌ ์คํํ ์ ์๋ ์๋ฐ ํ๊ฒฝ์ ์ ๊ณตํ์ฌ ์๋ฐ ์๋ฒ ํ์ด์ง(JSP)์ ์๋ฐ ์๋ธ๋ฆฟ์ด ์คํํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์์ฉ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์์๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ํ์น ํฐ์บฃ์ ์คํ์์ค ํ๋ก์ ํธ์ค ๊ฐ๋ฐ์ ๋์์ผ๋ก ์ ๋ช ๋๋ฅผ ์กฐ์ฌํ๋ฉด ๋งค์ฐ ๋์ ์์๋ฅผ ๊ฐ๊ณ ์๋ ์ํํธ์จ์ด์ผ ๊ฒ์ด๋ค. ๋ ์๋ค๋ ์ตํ ์๊ณ ์๋ค์ํผ ํฐ์บฃ์ ์ํ์น ์ฌ๋จ์์ ๋ง๋ค์ด์ง ์๋ฐ ์๋ธ๋ฆฟ, ๊ทธ๋ฆฌ๊ณ ์๋ฐ ์๋ฒ ํ์ด์ง(JSP) ๋ฅผ ๊ตฌํํ ์ ํ์ผ๋ก ์น์๋ฒ ๊ธฐ๋ฅ๋ ๋ด์ฅํ๊ณ ์๋ค.
์ต์ด์ ๋ชฉํ๋ ์ฌ ๋ง์ดํฌ๋ก ์์คํ ์ฆ์ ์๋ธ๋ฆฟ๊ณผ JSP ์ ํ์ค์ ๊ตฌํํ๊ณ ํ ์คํธํ๊ธฐ ์ํ ์ฉ๋์์ง๋ง ์ํ์น ์ฌ๋จ์ ์์ค๋ฅผ ๊ธฐ์ฆํ์ฌ ๋ง์ ๊ฐ๋ฐ์๋ค์ ์ฐธ์ฌ์ ์ํด ํ์ฌ์ฒ๋ผ ๋ฐ์ ํ์์ต๋๋ค.
| ์ฃผ์ ๊ธฐ๋ฅ | ๋ด์ฉ |
| ์๋ธ๋ฆฟ ์ปจํ ์ด๋ | Java Servlet ๋ฐ JSP(JavaServer Pages) ๊ธฐ์ ์ ๊ตฌํํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฒญ์ ์ฒ๋ฆฌํจ. |
| ์คํ ์์ค | ์ํ์น ๋ผ์ด์ ์ค 2.0์ ๋ฐ๋ผ ๋ฐฐํฌ๋๋ฉฐ, ์ปค๋ฎค๋ํฐ์์ ํ๋ฐํ๊ฒ ์ ์ง ๋ณด์๋จ. |
| ๊ฐ๋ฒผ์ด ์น ์๋ฒ | ๊ฒฝ๋ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก, ๋ฆฌ์์ค ์ฌ์ฉ์ด ์ ๊ณ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํจ. |
| ํ์ฅ์ฑ | ๋ค์ํ ์๋ธ๋ฆฟ๊ณผ JSP ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ฐฐํฌํ๊ณ ํ์ฅ ๊ฐ๋ฅํจ. |
| ๋ณด์ ๊ธฐ๋ฅ | SSL/TLS ์ํธํ, ์ ๊ทผ ์ ์ด, ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ์ํ ๋ค์ํ ๋ณด์ ์ค์ ์ ์ง์ํจ. |
| ํด๋ฌ์คํฐ๋ง | ์ฌ๋ฌ ํฐ์บฃ ์ธ์คํด์ค๋ฅผ ํด๋ฌ์คํฐ๋ก ๊ตฌ์ฑํ์ฌ ๋ถํ ๋ถ์ฐ๊ณผ ๊ณ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํจ. |
| JNDI ์ง์ | Java Naming and Directory Interface(JNDI)๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, EJB ๋ฑ์ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์. |
| ์น ์์ผ ์ง์ | WebSocket API๋ฅผ ํตํด ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ์ง์ํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํํ ๊ธฐ๋ฅ์ ๊ฐํํจ. |
| ์ ์ฐํ ์ค์ | ์๋ฒ ์ค์ , ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ๋ฑ ๋ค์ํ ๊ตฌ์ฑ์ XML ํ์ผ๋ก ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์. |
| ๊ด๋ฒ์ํ ํธํ์ฑ | ๋ค์ํ ์ด์ ์ฒด์ (Linux, Windows, macOS ๋ฑ)์์ ์คํ ๊ฐ๋ฅํ๋ฉฐ, ๋ค์ํ ์๋ฐ ๋ฒ์ ๊ณผ ํธํ๋จ. |
| ๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง | ์๋ฒ์ ์ํ์ ์ฑ๋ฅ์ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ , ๋ก๊น ์ ํตํด ๋ฌธ์ ๋ฐ์ ์ ์์ธ ๋ถ์์ด ๊ฐ๋ฅํจ. |
| ์ปค๋ฅํฐ ์ง์ | HTTP, HTTPS, AJP ๋ฑ์ ํ๋กํ ์ฝ์ ์ง์ํ๋ ๋ค์ํ ์ปค๋ฅํฐ๋ฅผ ์ ๊ณตํ์ฌ ๋ค์ํ ํ๊ฒฝ์์์ ํต์ ์ ์ง์ํจ. |
| ๋ฐ์ดํฐ ์์ค ๊ด๋ฆฌ | JDBC ์ฐ๊ฒฐ ํ๋ง์ ์ง์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ํจ์จ์ฑ์ ๋์ด๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์์ ํ์ฉ์ ์ต์ ํํจ. |
| ์ ํ๋ฆฌ์ผ์ด์ ํซ ๋ํ๋ก์ด | ์๋ฒ ์ฌ์์ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ดํธํ ์ ์๋ ํซ ๋ํ๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณตํจ. |