Search

JSP ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์น˜

JSP ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์น˜ ์˜์ƒ ์š”์•ฝ

์ด ์˜์ƒ์€ JSP(Java Server Pages) ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์„ ์ž์„ธํžˆ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. JDK 17 ์„ค์น˜๋ถ€ํ„ฐ ์ดํด๋ฆฝ์Šค IDE, ํ†ฐ์บฃ ์„œ๋ฒ„ ์„ค์น˜ ๋ฐ ์—ฐ๋™, ๊ทธ๋ฆฌ๊ณ  JSP ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์‹คํ–‰๊นŒ์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…ํ•ด ์ค๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

1.
JDK 17 ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • [00:00:20]
2.
์ดํด๋ฆฝ์Šค IDE ์„ค์น˜ ๋ฐ ์••์ถ• ํ•ด์ œ [00:06:21]
3.
ํ†ฐ์บฃ 10 ์„ค์น˜ ๋ฐ ์„œ๋น„์Šค ๋“ฑ๋ก [00:15:33]
4.
์ดํด๋ฆฝ์Šค์™€ ํ†ฐ์บฃ ์—ฐ๋™ํ•˜๊ธฐ [00:20:20]
5.
JSP ๋‹ค์ด๋‚˜๋ฏน ์›น ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ [00:26:56]
6.
JSP ํŒŒ์ผ ์ž‘์„ฑ ๋ฐ ์„œ๋ฒ„ ์‹คํ–‰ [00:32:24]
7.
ํฌํŠธ ์ถฉ๋Œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• [00:34:07]
8.
์ธ์ฝ”๋”ฉ ์„ค์ • ํ™•์ธ ๋ฐ ๋ณ€๊ฒฝ [00:44:32]

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 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!