JSP ๊ฐ๋ฐํ๊ฒฝ ์ค์น ์์ ์์ฝ
์ด ์์์ JSP(Java Server Pages) ๊ฐ๋ฐ์ ์ํ ํ๊ฒฝ์ ์ฒ์๋ถํฐ ๋๊น์ง ์ค์นํ๊ณ ์ค์ ํ๋ ๊ณผ์ ์ ์์ธํ ์๋ดํฉ๋๋ค. JDK 17 ์ค์น๋ถํฐ ์ดํด๋ฆฝ์ค IDE, ํฐ์บฃ ์๋ฒ ์ค์น ๋ฐ ์ฐ๋, ๊ทธ๋ฆฌ๊ณ JSP ํ๋ก์ ํธ ์์ฑ๊ณผ ์คํ๊น์ง ๋จ๊ณ๋ณ๋ก ์ฝ๊ฒ ๋ฐ๋ผํ ์ ์๋๋ก ์ค๋ช
ํด ์ค๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
1. JDK 17 ์ค์น ๋ฐ ํ๊ฒฝ ๋ณ์ ์ค์ [00:00:20]
โข
*JDK(Java Development Kit)**๋ ์๋ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ณ ์คํํ๋ ๋ฐ ํ์ํ ๋๊ตฌ ๋ชจ์์
๋๋ค.
โข
์์์์๋ JDK 17 ๋ฒ์ ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ค์นํฉ๋๋ค.
โข
์ค์น ํ, ํ๊ฒฝ ๋ณ์(PATH)๋ฅผ ์ค์ ํด ์ปดํจํฐ๊ฐ JDK 17์ ๊ธฐ๋ณธ์ผ๋ก ์ธ์ํ๋๋ก ํฉ๋๋ค.
โข
ํ๊ฒฝ ๋ณ์๋? ์ปดํจํฐ๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ์ฐธ์กฐํ๋ ์ค์ ๊ฐ์
๋๋ค.
โข
์ค์น ํ์ธ์ ๋ช
๋ น ํ๋กฌํํธ(cmd)์์ย java -versionย ๋ช
๋ น์ด๋ก ํฉ๋๋ค.
2. ์ดํด๋ฆฝ์ค IDE ์ค์น ๋ฐ ์์ถ ํด์ [00:06:21]
โข
*์ดํด๋ฆฝ์ค(Eclipse)**๋ ์๋ฐ ๊ฐ๋ฐ์ ๋ง์ด ์ฐ์ด๋ ๋ฌด๋ฃ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์
๋๋ค.
โข
์์์์๋ ์น ๊ฐ๋ฐ์ฉ ์ดํด๋ฆฝ์ค ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํด ์์ถ์ ํ์ด ์ค์นํฉ๋๋ค.
โข
๊ธฐ์กด ์ดํด๋ฆฝ์ค์ ๊ฒน์น์ง ์๋๋ก ์ ํด๋๋ฅผ ๋ง๋ค์ด ์์ถ์ ํด์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
โข
์ค์น ํ, ์ดํด๋ฆฝ์ค๋ฅผ ์คํํด ์ ์ ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
3. ํฐ์บฃ 10 ์ค์น ๋ฐ ์๋น์ค ๋ฑ๋ก [00:15:33]
โข
*ํฐ์บฃ(Apache Tomcat)**์ JSP์ ์๋ธ๋ฆฟ์ ์คํํ ์ ์๋ ์น ์๋ฒ์
๋๋ค.
โข
ํฐ์บฃ 10 ๋ฒ์ ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ค์นํฉ๋๋ค.
โข
์ค์น ์ค ๊ธฐ๋ณธ ํฌํธ(์๋ฒ๊ฐ ์ฌ์ฉํ๋ ํต์ ๋ฒํธ)๋ 8080์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค.
โข
์ด์ ์ ์ค์น๋ ํฐ์บฃ์ด ์์ผ๋ฉด ์ ๊ฑฐ ํ ์ฌ์ค์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
4. ์ดํด๋ฆฝ์ค์ ํฐ์บฃ ์ฐ๋ํ๊ธฐ [00:20:20]
โข
์ดํด๋ฆฝ์ค์์ ํฐ์บฃ ์๋ฒ๋ฅผ ๋ฑ๋กํด ๊ฐ๋ฐ ์ค์ธ JSP ํ๋ก์ ํธ๋ฅผ ํฐ์บฃ ์๋ฒ์์ ์คํํ ์ ์๊ฒ ํฉ๋๋ค.
โข
์ดํด๋ฆฝ์ค ํ๋จ์ ์๋ฒ(Server) ํญ์์ ํฐ์บฃ 10.1 ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ณ ์ค์น ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค.
โข
๋ง์ฝ ์๋ฒ ํญ์ด ๋ณด์ด์ง ์์ผ๋ฉด ์๋์ฐ ๋ฉ๋ด > ์ผ ๋ทฐ(View) > ์๋ฒ์ฆ(Servers)์์ ํ์ฑํํฉ๋๋ค.
5. JSP ๋ค์ด๋๋ฏน ์น ํ๋ก์ ํธ ์์ฑ [00:26:56]
โข
JSP ๊ฐ๋ฐ์ ์ํด ์ดํด๋ฆฝ์ค์์ **๋ค์ด๋๋ฏน ์น ํ๋ก์ ํธ(Dynamic Web Project)**๋ฅผ ์๋ก ๋ง๋ญ๋๋ค.
โข
ํ๋ก์ ํธ ์์ฑ ์ ํฐ์บฃ ์๋ฒ ๋ฒ์ ์ ํ๊ฒ ๋ฐํ์(Target Runtime)์ผ๋ก ์ง์ ํฉ๋๋ค.
โข
์ค์ํ ์ ! ํ๋ก์ ํธ ์์ฑ ๋ง๋ฒ์ฌ ๋ง์ง๋ง ๋จ๊ณ์์ย Generate web.xmlย ์ฒดํฌ๋ฅผ ๊ผญ ํด์ผ ํฉ๋๋ค.
โข
web.xml์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ค์ ํ์ผ๋ก, ์์ผ๋ฉด ํ๋ก์ ํธ๊ฐ ์ ๋๋ก ๋์ํ์ง ์์ต๋๋ค.
6. JSP ํ์ผ ์์ฑ ๋ฐ ์๋ฒ ์คํ [00:32:24]
โข
ํ๋ก์ ํธ ๋ดย WebContentย ๋๋ย WebAppย ํด๋์ย index.jspย ํ์ผ์ ์์ฑํฉ๋๋ค.
โข
JSP ํ์ผ์ HTML๊ณผ ์๋ฐ ์ฝ๋๋ฅผ ํจ๊ป ์ธ ์ ์๋ ์น ํ์ด์ง ํ์ผ์
๋๋ค.
โข
๊ฐ๋จํย <h1>๋ฉ์ธ ํ๋ฉด</h1>ย ํ๊ทธ๋ฅผ ์์ฑํ๊ณ ์ ์ฅํฉ๋๋ค.
โข
ํ๋ก์ ํธ๋ฅผ ์ฐํด๋ฆญ ํย Run as > Run on Server๋ฅผ ์ ํํด ํฐ์บฃ ์๋ฒ์์ ์คํํฉ๋๋ค.
7. ํฌํธ ์ถฉ๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ [00:34:07]
โข
ํฐ์บฃ ์๋ฒ ์คํ ์ย ํฌํธ๊ฐ ์ ํจํ์ง ์์ต๋๋คย ๋๋ย 8080 ํฌํธ๊ฐ ์ด๋ฏธ ์ฌ์ฉ ์คย ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
โข
์ด๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด 8080 ํฌํธ๋ฅผ ์ฌ์ฉ ์ค์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
โข
ํด๊ฒฐ ๋ฐฉ๋ฒ:
1.
ํฐ์บฃ ์๋ฒ ์ค์ ์์ ๊ด๋ฆฌ์ ํฌํธ(์: 8005)๋ฅผ ์ง์ ํด ์ค๋๋ค.
2.
8080 ํฌํธ๋ฅผ ์ฌ์ฉ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์ ์ข
๋ฃํฉ๋๋ค.
โข
์์์์๋ย ํฌํธํฌ(portkill)์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํด ์ฝ๊ฒ 8080 ํฌํธ๋ฅผ ์ ์ ํ ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค.
โข
๋ช
๋ น ํ๋กฌํํธ์์ ์ง์ ํ๋ก์ธ์ค ID๋ฅผ ์ฐพ์ ์ข
๋ฃํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง, ํ๋ก๊ทธ๋จ ์ฌ์ฉ์ด ๋ ํธ๋ฆฌํฉ๋๋ค.
8. ์ธ์ฝ๋ฉ ์ค์ ํ์ธ ๋ฐ ๋ณ๊ฒฝ [00:44:32]
โข
์ธ์ฝ๋ฉ์ ๋ฌธ์ ์ฝ๋ ์ฒด๊ณ๋ก, ํ๊ธ์ด ๊นจ์ง์ง ์๋๋ก UTF-8๋ก ์ค์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
โข
์ต์ ์ดํด๋ฆฝ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก UTF-8๋ก ์ค์ ๋์ด ์์ง๋ง, ๊ณผ๊ฑฐ ๋ฒ์ ์ MS949(์๋์ฐ ๊ธฐ๋ณธ ํ๊ธ ์ธ์ฝ๋ฉ)์ผ ์ ์์ต๋๋ค.
โข
์ธ์ฝ๋ฉ ์ค์ ์ ์ดํด๋ฆฝ์คย Window > Preferences์์ย Encoding์ ๊ฒ์ํด ์ํฌ์คํ์ด์ค ์ ์ฒด๋ฅผ UTF-8๋ก ๋ณ๊ฒฝํฉ๋๋ค.
โข
JSP, HTML, CSS ํ์ผ ๋ชจ๋ UTF-8๋ก ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ง๋ฌด๋ฆฌ ์์ฝ
์ด ์์์ JSP ๊ฐ๋ฐ์ ํ์ํ JDK 17, ์ดํด๋ฆฝ์ค IDE, ํฐ์บฃ 10 ์๋ฒ๋ฅผ ์ค์นํ๊ณ ์ฐ๋ํ๋ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์น์ ํ๊ฒ ์๋ดํฉ๋๋ค. ํนํ ํ๊ฒฝ ๋ณ์ ์ค์ , ์๋ฒ ํฌํธ ๋ฌธ์ ํด๊ฒฐ, ํ๋ก์ ํธ ์์ฑ ์ ์ฃผ์ํ ์ (web.xml ์์ฑ ์ฒดํฌ) ๋ฑ์ ์์ธํ ์ค๋ช
ํด ์ด๋ณด์๋ ์ฝ๊ฒ ๋ฐ๋ผํ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ธ์ฝ๋ฉ ์ค์ ๊น์ง ํ์ธํด ํ๊ธ ๊นจ์ง ๋ฌธ์ ๋ ์๋ฐฉํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผ ํ๋ฉด JSP ๊ฐ๋ฐ ํ๊ฒฝ์ ์๋ฒฝํ๊ฒ ๊ตฌ์ถํ ์ ์์ต๋๋ค!