Legacy

2022. 1 . 11 ์˜ ๊ธฐ๋ก

GroovyArea 2022. 1. 11. 09:25

- ํ•˜๋ฃจ ์ •๋ฆฌ - 

  • ์„ธ๋ฏธ ํŒ€ ํšŒ์˜ ๋‚ ์งœ ์ •ํ•˜๊ธฐ (๋ญ˜ ํ•ด์•ผ ํ• ์ง€ ์ƒ๊ฐํ•ด์„œ ์•Œ๋ ค์ฃผ์ž)
  • JSP ์™„๋ฒฝ ๋ณต์Šต ๋ฐ ์˜ˆ์ œ ๋งŒ๋“ค๊ธฐ

- ์˜ค๋Š˜ ๊ณต๋ถ€ ๋‚ด์šฉ - 

JSP

  • JSP๋Š” ์›น ๋ฌธ์„œ์ด์ง€๋งŒ WAS์— ์˜ํ•ด์„œ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์›น ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

directive

  • ์ง€์‹œ์–ด(Directive)
  1. page Directive : JSP ๋ฌธ์„œ(์›นํ”„๋กœ๊ทธ๋žจ)์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์ง€์‹œ
  2. include Directive : JSP ๋ฌธ์„œ์— ์™ธ๋ถ€ ํŒŒ์ผ์˜ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ง€์‹œ
  3. tagLibrary Directive : JSP ๋ฌธ์„œ์— ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์˜ Java ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ง€์‹œ
  4. page Directive : JSP ๋ฌธ์„œ๋ฅผ ์š”์ฒญํ•˜์—ฌ ์‘๋‹ต ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ(ํŒŒ์ผ)์˜ ์œ ํ˜•(MimeType)๊ณผ ์บ๋ฆญํ„ฐ์…‹(CharterSet - Encoding) ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์†์„ฑ (contentType ๊ณผ import๊ฐ€ ์ œ์ผ ์ค‘์š”)
  5. page Directive - import : JSP ๋ฌธ์„œ์—์„œ ์‚ฌ์šฉ๋  ํด๋ž˜์Šค ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํŒจํ‚ค์ง€๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์†์„ฑ
  • page Directive ์—์„œ๋Š” ๋™์ผํ•œ ์†์„ฑ์— ๋‹ค๋ฅธ ์†์„ฑ๊ฐ’์„ ์ค‘๋ณต ์„ ์–ธํ•œ ๊ฒฝ์šฐ ์‹คํ–‰ ์‹œ 500 ์—๋Ÿฌ ๋ฐœ์ƒ
  • ⇒ import ์†์„ฑ์€ ์—ฌ๋Ÿฌ๋ฒˆ ์„ ์–ธ ๊ฐ€๋Šฅ
  • ⇒ ์–˜๋Š” ์ดํด๋ฆฝ์Šค์—์„œ ์ž๋™ ์™„์„ฑํ•ด์คŒ (์ˆ˜๋™์œผ๋กœ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค..)
  1. page Directive - errorPage : JSP ์‹คํ–‰ ์‹œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒ๋œ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์—๋Ÿฌ์ฝ”๋“œ(500) ๋Œ€์‹  ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” JSP ๋ฌธ์„œ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์†์„ฑ - ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ URL์ฃผ์†Œ ๋ฏธ๋ณ€๊ฒฝ
  • ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์—๋Ÿฌ์ฝ”๋“œ๋ณด๋‹ค HTML ๋ฌธ์„œ๋กœ ์‘๋‹ตํ•ด์ฃผ๋Š”๊ฒƒ์ด ์ข‹๋‹ค (์—๋ŸฌํŽ˜์ด์ง€์˜ ์ด์œ )
  1. page Directive - isErrorPage : page Directive์—์„œ isErrorPage ์†์„ฑ๊ฐ’์„ [true]๋ฅผ ์„ค์ •ํ•˜๋ฉด ์˜ˆ์™ธ ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ exception ๋‚ด์žฅ๊ฐ์ฒด ์ œ๊ณต (๊ธฐ๋ณธ๊ฐ’ false)
  • errorPage ์†์„ฑ์€ ๊ทธ๋ฆฌ ๋งŽ์ด ์“ฐ์ด์ง€๋Š” ์•Š์Œ
  • [web.xml] ํŒŒ์ผ์—์„œ ๋ชจ๋“  ์›นํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์š”์ฒญ์—๋Ÿฌ(4xx)์™€ ์‘๋‹ต์—๋Ÿฌ(5xx)์— ๋Œ€ํ•œ ์—๋ŸฌํŽ˜์ด์ง€ ์„ค์ • - ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ URL ์ฃผ์†Œ ๋ฏธ๋ณ€๊ฒฝ
  1. WEB.xml ์—์„œ์˜ error-page ์—˜๋ฆฌ๋จผํŠธ : ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒ๋œ ์—๋Ÿฌ์— ๋Œ€ํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์›นํ”„๋กœ๊ทธ๋žจ์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ
  • exception-type : ์›น ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋ฐœ์ƒ๋œ ์˜ˆ์™ธ์— ๋Œ€ํ•œ ์˜ˆ์™ธํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
  • location : ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์›นํ”„๋กœ๊ทธ๋žจ์˜ URL ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
  • error-code: ํด๋ผ์ด์–ธํŠธ์—์„œ ์ „๋‹ฌ๋˜๋Š” ์ƒํƒœ์ฝ”๋“œ(์—๋Ÿฌ ์ฝ”๋“œ : 4xx or 5xx)๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ ) ์•ผ 500์ด ๋ฐœ์ƒํ•˜๋ฉด ๋Œ€์‹  ์‘๋‹ตํ•ด์ค˜๋ผ (location์œผ๋กœ)
  • web.xml์—์„œ๋Š” Exception์ด ๋” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค (์ค‘๋ณต ์—๋Ÿฌ ์ผ๋•Œ๋Š”) ์ผ๋‹จ 400์œผ๋กœ ๋ณด๋‚ด์ž.. 404๋„ ๋งŽ์ด ๋ณด๋ƒ„

include - directive

  • ์„œ๋ฒ„ ์ปจํ…์ŠคํŠธ๋กœ ์กด์žฌํ•˜๋Š” ํŒŒ์ผ์˜ ์ฝ”๋“œ๋ฅผ ํ˜„์žฌ JSP๋ฌธ์„œ์— ํฌํ•จํ•˜๋Š” ์ง€์‹œ์–ด - ์ •์  ํฌํ•จ
  1. jspf ํŒŒ์ผ์€ ๋‹ค๋ฅธ jsp์— ํฌํ•จ๋˜๋Š” ํŒŒ์ผ (์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์ง€ ์•Š์Œ) - ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์™€ ์‘๋‹ต์ด ๋ชฉ์ ์ด ์•„๋‹Œ ๋‹ค๋ฅธ JSP ๋ฌธ์„œ์— ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋œ ํŒŒ์ผ
  • JSPF ํŒŒ์ผ๊ณผ ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” JSP ํŒŒ์ผ์— ์„ ์–ธ๋œ page ์ง€์‹œ์–ด(Directive)์˜ contentType ์†์„ฑ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ ๋™์ผํ•˜๊ฒŒ ์„ค์ •
  • ํ—ค๋”์™€ ํ‘ธํ„ฐ ๋ถ€๋ถ„์— ์ด์šฉํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ (์œ ์ง€๋ณด์ˆ˜์— ์œ ์šฉํ•จ)
  • ๊ทธ๋ƒฅ ์š”์ฒญํ•˜๋ฉด ํ…์ŠคํŠธ๋กœ ๋ฐ›์•„๋“ค์—ฌ์„œ ๊ธ€์ž๊ฐ€ ๋‹ค๊นจ์ง (์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ฐ”๋€Œ์ง€ ์•Š์Œ ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋จ) ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํŒŒ์ผ๊ณผ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋Š” java์ฝ”๋“œ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Œ
  1. Header ์˜์—ญ : ๋กœ๊ณ , ๋ฉ”๋‰ด ๋“ฑ
  2. Content ์˜์—ญ : ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ๊ฒฐ๊ณผ
  3. footer ์˜์—ญ : ์ €์ž‘๊ถŒ, ์•ฝ๊ด€, ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ์ •์ฑ… ๋“ฑ ์ถœ๋ ฅ
  4. a ํƒœ๊ทธ ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ ์ ์„ ๋•Œ ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ํ•ด์ค˜์•ผํ•จ. (๋‹ค๋ฅธ ํด๋”์— ์žˆ์„ ์ˆ˜๊ฐ€ ์žˆ์Œ)

tagLib - directive

  • jsp๋งŒ ์ด์šฉํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ.
  1. ํƒœ๊ทธ ํด๋ž˜์Šค : JSP ๋ฌธ์„œ์—์„œ ์ปค์Šคํ…€ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ž‘๋˜๋Š” ํด๋ž˜์Šค
  2. ⇒ TagSupport ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ž‘์„ฑ → ์ƒ์†๋ฐ›๋Š” ์ด์œ  : ๋ถ€๋ชจ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž„. WAS๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ.
  3. doStartTag() : JSP ๋ฌธ์„œ์—์„œ ์ปค์Šคํ…€ ํƒœ๊ทธ์˜ ์‹œ์ž‘ํƒœ๊ทธ ์‚ฌ์šฉ ์‹œ ์ž๋™ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ
  4. doEndTag() : JSP ๋ฌธ์„œ์—์„œ ์ปค์Šคํ…€ ํƒœ๊ทธ์˜ ์ข…๋ฃŒํƒœ๊ทธ ์‚ฌ์šฉ ์‹œ ์ž๋™ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ
  5. WEb-inf ํด๋”์— xml ํŒŒ์ผ๋กœ ์›น์ž์›์œผ๋กœ ๋“ฑ๋กํ•จ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ ๋””์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ tld ์ผ๋กœ ๊ทœ์น™์— ๋งž๊ฒŒ ๋งŒ๋“ค์ž
  6. uri ์—˜๋ฆฌ๋จผํŠธ๋Š” jsp ์›น๋ฌธ์„œ์—์„œ tld ํŒŒ์ผ์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„์ž ๊ฐ™์€ ์—ญํ• .
  7. tag-class์— ์žˆ๋Š” ํด๋ž˜์Šค๊ฐ€ ๊ฐ์ฒดํ™” ๋˜์–ด ์ž๋ฐ” ๋ช…๋ น์ด ์‹คํ–‰๋จ. body๊ฐ€ ์—†๋‹ค (ํƒœ๊ทธ ๋‚ด์šฉ์ด ์—†์Œ)
  • JSP ๋ฌธ์„œ์— ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ(TLD)์„ ํฌํ•จํ•˜์—ฌ ์ปค์Šคํ…€ ํƒœ๊ทธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ง€์‹œ์–ด
  • ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ : ํƒœ๊ทธ ํด๋ž˜์Šค๋ฅผ ์ปค์Šคํ…€ ํƒœ๊ทธ๋กœ ๋“ฑ๋กํ•˜๋Š” XML ํŒŒ์ผ
  • ์Šคํฌ๋ฆฝํ‹€๋ฆฟ์œผ๋กœ taglib Directive๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€ ํฌํ•จ
  • prefix ์†์„ฑ : ์ปค์Šคํ…€ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค(namespace)๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ํ‘œํ˜„ (์–ด๋””์— ์‚ฌ๋Š” ๊น€์”จ ๋Œ€๊ฐ• ์•Œ๋ ค๊ณ ) - prefix๊ฐ€ ์—†๋Š” ํŒŒ์ผ๋กœ ๋งŒ๋“  ํ›„ ์ž…๋ง›์— ๋งž๊ฒŒ ์ด๋ฆ„ ์ง€์–ด์„œ ์‚ฌ์šฉ.
  • uri ์†์„ฑ : ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์— ๋“ฑ๋ก๋œ ์‹๋ณ„์ž (uri ์—˜๋ฆฌ๋จผํŠธ์˜ ํƒœ๊ทธ๋‚ด์šฉ)๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • : ์ž๋™ ์™„์„ฑ

JSP ๋‚ด์žฅ ๊ฐ์ฒด

  • WAS ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด JSP ๋ฌธ์„œ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” Java ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค)
  1. page(HttpJspPage) : JSP ๋ฌธ์„œ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์—ฌ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค(๋ฉ”์†Œ๋“œ์˜ this์™€ ์œ ์‚ฌ)
  2. config(ServletConfig) : WAS ํ”„๋กœ๊ทธ๋žจ์— ๋“ฑ๋ก๋œ ๊ฐ’์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค
  3. out(JspWriter) : ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•  ์‘๋‹ต ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค(์ถœ๋ ฅ์ŠคํŠธ๋ฆผ) - ํ‘œํ˜„์‹์„ ์“ฐ๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ out.println์ด ๋™์ž‘
  4. request(HttpServletRequest) : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค
  5. response(HttpServletResponse) : ํด๋ผ์ด์–ธํŠธ์˜ ์‘๋‹ต์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค
  6. session(HttpSession) : ํด๋ผ์ด์–ธํŠธ์™€์˜ ์—ฐ๊ฒฐ ์ง€์†์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค
  7. application(ServletContext) : ์„œ๋ฒ„์˜ ์ปจํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์—ฌ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค
  8. pageContext(pageContext) : JSP ๋ฌธ์„œ์— ํ•„์š”ํ•œ Java ๊ฐ์ฒด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค - (๋ถ€๋ชจ) ๋‹ค ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  9. Exception(Throwable) : JSP ๋ฌธ์„œ ์‹คํ–‰ ์‹œ ๋ฐœ์ƒ๋˜๋Š” ์˜ˆ์™ธ๋ฅผ ์ €์žฅํ•˜์—ฌ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค - page Directive์˜ isErrorPage ์†์„ฑ๊ฐ’์„ [true]๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์ œ๊ณต๋˜๋Š” ๋‚ด์žฅ๊ฐ์ฒด
  10. ๊ฐ์ฒด ์Šค์ฝ”ํ”„ ์ค‘์š”ํ•จ
<short-name>c</short-name>
	<uri>http://www.itwill.xyz/jsp/custom</uri>
	<tag>
		<name>display</name>
		<tag-class>xyz.itwill.custom.CustomTag</tag-class>
		<body-content>empty</body-content>
	</tag>
<%@taglib prefix="c" uri="http://www.itwill.xyz/jsp/custom"%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
	<h1>taglib Directive</h1>
	<hr>
	<p>JSP ๋ฌธ์„œ์— ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ(TLD)์„ ํฌํ•จํ•˜์—ฌ ์ปค์Šคํ…€ ํƒœ๊ทธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ง€์‹œ์–ด</p>
	<p>ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ : ํƒœ๊ทธ ํด๋ž˜์Šค๋ฅผ ์ปค์Šคํ…€ ํƒœ๊ทธ๋กœ ๋“ฑ๋กํ•˜๋Š” XML ํŒŒ์ผ</p>
	<hr>
	<c:display/>
	<c:display/>
	<c:display/>
</body>
</html>

=> short-name ์—˜๋ฆฌ๋จผํŠธ๋Š” prefix์™€ ๊ฐ™์€ ์‹๋ณ„์ž ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ!


- ์„ธ๋ฏธ ํŒ€ํ”Œ -

> ๊ฐ ๋งก์€ ์—ญํ• ์˜ ํ…Œ์ด๋ธ” ๋ฐ ์ปฌ๋Ÿผ๋ช… ํ™•์ธํ•˜๊ธฐ

> ํ† ์š”์ผ 2~6์‹œ ํšŒ์˜ (๊ณต๋ถ€๋Š” ์ž์œ )

> ์ฐธ์กฐํ‚ค ํ™•์‹คํžˆ ๊ณต๋ถ€ํ•ด์˜ค๊ธฐ


- ์Šคํ„ฐ๋”” ๋‚ด์šฉ ๋ฐ ๊ฒฐ๊ณผ -

> tagLib ์“ฐ๋Š” ์ด์œ  ํ™•์ธ

> ์ „์ฒด์ ์ธ jsp ๋ณต์Šต  (์ง€์‹œ์–ด, ์Šคํฌ๋ฆฝํŒ…์š”์†Œ)

๋ฐ˜์‘ํ˜•