Notice
Recent Posts
Recent Comments
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
In Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

A Joyful AI Research Journey๐ŸŒณ๐Ÿ˜Š

[61] 230327 JSP Ch. 18 MVC(Model-View-Controller) ํŒจํ„ด ๊ตฌํ˜„ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 61์ผ] ๋ณธ๋ฌธ

๐ŸŒณBootcamp Revision 2023โœจ/HTML5, CSS3, JSP

[61] 230327 JSP Ch. 18 MVC(Model-View-Controller) ํŒจํ„ด ๊ตฌํ˜„ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 61์ผ]

yjyuwisely 2023. 3. 27. 09:49

230327 Mon 61st class

Ch. 18 MVC ํŒจํ„ด ๊ตฌํ˜„
์ง„๋„: p. 516 ~ (๊ต์žฌ: ์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€, ์ €์ž: ์ตœ๋ฒ”๊ท )
์ฑ… ์˜ˆ์ œ ์ฝ”๋“œ: https://github.com/madvirus/jsp23
์ €์ž ๋ธ”๋กœ๊ทธ: https://javacan.tistory.com/

 

์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€ | ์ตœ๋ฒ”๊ท  - ๊ต๋ณด๋ฌธ๊ณ 

์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€ | [์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€]๋Š” JSP 2.3์˜ ์ƒˆ๋กœ์šด ํŠน์ง• ๋ฐ˜์˜๊ณผ JSP๋ฅผ ์ง€์›ํ•˜๋Š” ์š”์†Œ์ธ ์„œ๋ธ”๋ฆฟ๊ณผ ํ‘œํ˜„ ์–ธ์–ด ๋“ฑ์˜ ์ƒˆ๋กœ์šด

product.kyobobook.co.kr


์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๊ธฐ์–ตํ•  ๊ฒƒ์„ ์ •๋ฆฌํ–ˆ๋‹ค.


๋‹ค์‹œ ๊ธฐ์–ตํ•˜๊ธฐ

์ฐธ๊ณ : https://www.elancer.co.kr/blog/view?seq=74


Ch. 18 MVC(Model-View-Controller) ํŒจํ„ด ๊ตฌํ˜„ p. 516

์ฑ…์˜ ๋ชฉ์ฐจ
01 ๋ชจ๋ธ 2 ๊ตฌ์กฐ์™€ MVC ํŒจํ„ด

1.1 ๋ชจ๋ธ 1 ๊ตฌ์กฐ
1.2 ๋ชจ๋ธ 2 ๊ตฌ์กฐ
1.3 MVC ํŒจํ„ด
1.4 MVC ํŒจํ„ด๊ณผ ๋ชจ๋ธ2 ๊ตฌ์กฐ์˜ ๋งคํ•‘
1.5 MVC์˜ ์ปจํŠธ๋กค๋Ÿฌ : ์„œ๋ธ”๋ฆฟ
1.6 MVC์˜ ๋ทฐ : JSP
1.7 MVC์˜ ๋ชจ๋ธ

02 ๋ชจ๋ธ 2 ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ MVC ํŒจํ„ด ๊ตฌํ˜„
2.1 ๋ชจ๋ธ 2 ๊ตฌ์กฐ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• : ๊ธฐ๋ณธ MVC ํŒจํ„ด ๊ตฌํ˜„ ๊ธฐ๋ฒ•
2.2 ์ปค๋งจ๋“œ ํŒจํ„ด ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ
2.3 ์„ค์ • ํŒŒ์ผ์— ์ปค๋งจ๋“œ์™€ ํด๋ž˜์Šค์˜ ๊ด€๊ณ„ ๋ช…์‹œํ•˜๊ธฐ
2.4 ์š”์ฒญ URI๋ฅผ ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉํ•˜๊ธฐ 

03 ๋ชจ๋ธ 1 ๊ตฌ์กฐ์™€ ๋ชจ๋ธ 2 ๊ตฌ์กฐ์˜ ์„ ํƒ

์ด ์žฅ์„ ํ†ตํ•ด์„œ MVC ํŒจํ„ด์„ ์ดํ•ดํ•˜๋ฉด, ์Šคํ”„๋ง MVC์™€ ๊ฐ™์€ ๋ชจ๋ธ 2 ๊ตฌ์กฐ ๊ธฐ๋ฐ˜์˜ MVC ํŒจํ„ด ํ”„๋ ˆ์ž„์›Œํฌ์— ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ ์‘ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

18.1 ๋ชจ๋ธ 2 ๊ตฌ์กฐ์™€ MVC(Model-View-Controller) ํŒจํ„ด

JSP์—์„œ ๋ชจ๋“  ๋กœ์ง๊ณผ ์ถœ๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š๋ƒ ์•„๋‹ˆ๋ฉด JSP์—์„œ๋Š” ์ถœ๋ ฅ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ์„œ ๋ชจ๋ธ 1 ๊ตฌ์กฐ์™€ ๋ชจ๋ธ 2๊ตฌ์กฐ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.


1) ๋ชจ๋ธ 1 ๊ตฌ์กฐ

๋ชจ๋ธ 1 ๊ตฌ์กฐ๋Š” JSP๋ฅผ ์ด์šฉํ•œ ๋‹จ์ˆœํ•œ ๋ชจ๋ธ์ด๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์˜ˆ์ œ๋กœ ์ž‘์„ฑํ•œ JSP ํŽ˜์ด์ง€๊ฐ€ ๋ชจ๋ธ 1 ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

๋ชจ๋ธ 1 ๊ตฌ์กฐ์˜ ์š”์ฒญ/์‘๋‹ต ์ฒ˜๋ฆฌ ๋ฐฉ์‹

๊ทธ๋ฆผ ์ถœ์ฒ˜: https://hyoje420.tistory.com/36

(1) ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ JSP๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ•œ๋‹ค.
(2) ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ๋ฐ›์€ JSP๋Š” ์ž๋ฐ”๋นˆ์ด๋‚˜ ์„œ๋น„์Šค ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ถœ๋ ฅํ•œ๋‹ค. 

JSP ํŽ˜์ด์ง€์—์„œ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ ๊ฒƒ๋“ค์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์€ JSP ํŽ˜์ด์ง€์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์™€ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์„ž์ธ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
ex) ๋ฐฉ๋ช…๋ก ์˜ˆ์ œ: ํ•˜๋‚˜์˜ JSP ํŽ˜์ด์ง€์—์„œ ์„œ๋น„์Šค ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ (๊ธ€์“ฐ๊ธฐ, ์ฝ๊ธฐ ๋“ฑ์˜) ์›ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ–ˆ๋‹ค.


2) ๋ชจ๋ธ 2 ๊ตฌ์กฐ

๋ชจ๋ธ 2 ๊ตฌ์กฐ์˜ ์š”์ฒญ/์‘๋‹ต ์ฒ˜๋ฆฌ ๋ฐฉ์‹

๊ทธ๋ฆผ ์ถœ์ฒ˜: https://hyoje420.tistory.com/36

๋ชจ๋ธ 2 ๊ตฌ์กฐ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด ๋ฐ›๋Š”๋‹ค.
์„œ๋ธ”๋ฆฟ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ์•Œ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•œ ํ›„ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ JSP ํŽ˜์ด์ง€๋กœ ํฌ์›Œ๋”ฉํ•œ๋‹ค. 
ํฌ์›Œ๋”ฉ์„ ํ†ตํ•ด ์š”์ฒญ ํ๋ฆ„์„ ๋ฐ›์€ JSP ํŽ˜์ด์ง€๋Š” ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ํด๋ผ์ด์–ธํŠธ์— ์ „์†กํ•œ๋‹ค.
์ด ๊ณผ์ •์—์„œ ์„œ๋ธ”๋ฆฟ์ด ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

ํŠน์ง•: ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋ชจ๋“  ์š”์ฒญ์„ ๋‹จ์ผ ์ง„์ž…์ , ์ฆ‰ ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. 
ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋ชจ๋“  ์š”์ฒญ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ธ”๋ฆฟ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.
์„œ๋ธ”๋ฆฟ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์ด๊ฒŒ ๋  ์‘๋‹ต ํ™”๋ฉด์„ ์ƒ์„ฑํ•  JSP๋ฅผ ์„ ํƒํ•œ๋‹ค.
MVC ํŒจํ„ด์„ ์ด์šฉํ•ด์„œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ๋•Œ ๋ชจ๋ธ 2 ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 


3) MVC(Model-View-Controller) ํŒจํ„ด p. 518

MVC์˜ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•œ๋‹ค. 

๊ทธ๋ฆผ ์ถœ์ฒ˜: https://blog.naver.com/zxxne/222482502102


- ์ปจํŠธ๋กค๋Ÿฌ(C): ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ ํ๋ฆ„ ์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.

- ๋ชจ๋ธ(M)
: ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ์˜ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

- ๋ทฐ(V)
: ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ์— ๋Œ€ํ•œ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ทฐ(์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ฒŒ ๋  ๊ฒฐ๊ณผ ํ™”๋ฉด)๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.

  • Model : data. data๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •๊นŒ์ง€ ํฌํ•จ. = ์ตœ์ข…์ ์œผ๋กœ data๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ
  • View : data๋ฅผ ์‚ฌ๋žŒํ•œํ…Œ ๋ณด์—ฌ์ฃผ๋Š”๊ฒƒ
  • Controller : ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„์„œ ์š”์ฒญ์— ๋งž๋Š” ๋ชจ๋ธ์„ ์‹คํ–‰

์ฐธ๊ณ : https://velog.io/@vgo_dongv/Java-MVC


MVC ํŒจํ„ด์˜ ๊ตฌ์กฐ

๊ทธ๋ฆผ ์ถœ์ฒ˜: https://hyoje420.tistory.com/36

๊ทธ๋ฆผ ์ถœ์ฒ˜

์ฐธ๊ณ : https://blog.naver.com/vopl1004/222132589216

(1)
์‚ฌ์šฉ์ž๋Š” ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์š”์ฒญ์„ ์ปจํŠธ๋กค๋Ÿฌ์— ๋ณด๋‚ธ๋‹ค. ๋ชจ๋ธ์€ ๋น„์ฆˆ๋‹ˆ์Šค์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ด ๋ชจ๋ธ์„ ์ด์šฉํ•ด์„œ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. 
(2) ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•Œ๋งž์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•œ ํ›„
(3) ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ทฐ๋ฅผ ์„ ํƒํ•œ๋‹ค. 
(4) ์„ ํƒ๋œ ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋งž์€ ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค€๋‹ค. ๋ทฐ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค„ ๋•Œ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์ด ๋ฐ์ดํ„ฐ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค. 

MVC ํŒจํ„ด์˜ ํ•ต์‹ฌ

- ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋ธ๊ณผ ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ทฐ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค.
- ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„ ์ œ์–ด๋‚˜ ์‚ฌ์šฉ์ž์˜ ์ฒ˜๋ฆฌ ์š”์ฒญ์€ ์ปจํŠธ๋กค๋Ÿฌ์— ์ง‘์ค‘๋œ๋‹ค. 

 


4) MVC(Model-View-Controller) ํŒจํ„ด๊ณผ ๋ชจ๋ธ2 ๊ตฌ์กฐ์˜ ๋งคํ•‘

์‹ค์ œ๋กœ ๋ชจ๋ธ 2 ๊ตฌ์กฐ์™€ MVC ํŒจํ„ด์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜ํ•œ๋‹ค.

- ์ปจํŠธ๋กค๋Ÿฌ = ์„œ๋ธ”๋ฆฟ
- ๋ชจ๋ธ = ๋กœ์ง ์ฒ˜๋ฆฌ ํด๋ž˜์Šค, ์ž๋ฐ”๋นˆ
- ๋ทฐ = JSP
- ์‚ฌ์šฉ์ž = ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด์ง€ ํœด๋Œ€ํฐ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ


5) MVC(Model-View-Controller)์˜ ์ปจํŠธ๋กค๋Ÿฌ = ์„œ๋ธ”๋ฆฟ p. 520

๋ชจ๋ธ 2 ๊ตฌ์กฐ์—์„œ ์„œ๋ธ”๋ฆฟ์€ MVC ํŒจํ„ด์˜ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•œ๋‹ค.
์„œ๋ธ”๋ฆฟ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ๊ณผ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ์ œ์–ดํ•œ๋‹ค.

๊ทธ๋ฆผ 18-4) ์ปจํŠธ๋กค๋Ÿฌ ์„œ๋ธ”๋ฆฟ์˜ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹

๊ทธ๋ฆผ ์ถœ์ฒ˜

6) MVC(Model-View-Controller)์˜ ๋ทฐ = JSP

๋ทฐ ์—ญํ• ์„ ํ•˜๋Š” JSP๋Š” ์ปจํŠธ๋กค๋Ÿฌ์—์„œ request ๊ธฐ๋ณธ ๊ฐ์ฒด๋‚˜ session ๊ธฐ๋ณธ ๊ฐ์ฒด์— ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋งž์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


7) MVC(Model-View-Controller)์˜ ๋ชจ๋ธ p. 521

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋ชจ๋ธ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋ธ์ด ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. 
ex) ๊ณ„์ขŒ ์ด์ฒด ๊ธฐ๋Šฅ์„ ์š”์ฒญํ–ˆ๋‹ค๋ฉด ๋ชจ๋ธ์€ ๊ณ„์ขŒ ์ด์ฒด๋ฅผ ์‹œ์ผœ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.
์ปจํŠธ๋กค๋Ÿฌ(์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ ํ๋ฆ„ ์ œ์–ด๋ฅผ ๋‹ด๋‹น)๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ ๋ชจ๋ธ์˜ ๊ณ„์ขŒ ์ด์ฒด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ฆผ 18-5) ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ธ”๋ฆฟ๊ณผ ๋ชจ๋ธ ๊ฐ„์˜ ํ†ต์‹ 

๊ทธ๋ฆผ ์ถœ์ฒ˜


18.2 ๋ชจ๋ธ 2 ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ MVC(Model-View-Controller) ํŒจํ„ด ๊ตฌํ˜„

๋ชจ๋ธ 2 ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด์„œ MVC ํŒจํ„ด์„ ๊ตฌํ˜„ํ•ด๋ณธ๋‹ค.

1) ๋ชจ๋ธ 2 ๊ตฌ์กฐ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• : ๊ธฐ๋ณธ MVC(Model-View-Controller) ํŒจํ„ด ๊ตฌํ˜„ ๊ธฐ๋ฒ• p. 522

๋ชจ๋ธ 2 ๊ตฌ์กฐ๋ฅผ ์œ„ํ•œ ์„œ๋ธ”๋ฆฟ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€, ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋Š” ์–ด๋–ป๊ฒŒ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”์ง€ ๋“ฑ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์ตํ˜€๋ณธ๋‹ค. ๊ทธ ํ›„ MVC ํŒจํ„ด์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์‚ดํŽด๋ณธ๋‹ค.

1. ์„œ๋ธ”๋ฆฟ์€ ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•ด์„œ JSP์— ์ „๋‹ฌํ•œ๋‹ค.
2. JSP๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ฉ”์‹œ์ง€๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.


2) ์ปค๋งจ๋“œ(Command) ํŒจํ„ด ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ

์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด์„œ ๋ช…๋ น์–ด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€์ด๋‹ค.

- ํŠน์ • ์ด๋ฆ„์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋ช…๋ น์–ด ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
- ์š”์ฒญ URI ์ž์ฒด๋ฅผ ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

2.1) ์ปค๋งจ๋“œ(Command) ํŒจํ„ด์„ ์ด์šฉํ•œ ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ๊ธฐ์˜ ๋ถ„๋ฆฌ

์ปค๋งจ๋“œ ํŒจํ„ด: ๊ฐ ๋ช…๋ น์–ด์— ํ•ด๋‹นํ•˜๋Š” ๋กœ์ง ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋ฅผ ๋ณ„๋กœ ํด๋ž˜์Šค๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ

๊ทธ๋ฆผ 18-8) ์ปจํŠธ๋กค๋Ÿฌ ์„œ๋ธ”๋ฆฟ์—์„œ ๋กœ์ง ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋ฅผ CommandHandler๋กœ ๋ถ„๋ฆฌ

๊ทธ๋ฆผ ์ถœ์ฒ˜

์ปค๋งจ๋“œ ํŒจํ„ด์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค๋“ค์€ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–๋Š”๋‹ค.

๊ทธ๋ฆผ ์ถœ์ฒ˜


3) ์„ค์ • ํŒŒ์ผ์— ์ปค๋งจ๋“œ์™€ ํด๋ž˜์Šค์˜ ๊ด€๊ณ„ ๋ช…์‹œํ•˜๊ธฐ


4) ์š”์ฒญ URI๋ฅผ ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

์š”์ฒญ URI ์ž์ฒด๋ฅผ ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์˜ˆ์‹œ)

http://localhost:8080/chap08/hello.do
http://localhost:8080/chap08/guestbook/list.do

์‚ฌ์šฉ์ž์˜ ์•…์˜์ ์ธ ์ž˜๋ชป๋œ ๋ช…๋ น์–ด ์ž…๋ ฅ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, URL ์ž์ฒด๊ฐ€ ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.


18.3 ๋ชจ๋ธ 1 ๊ตฌ์กฐ์™€ ๋ชจ๋ธ 2 ๊ตฌ์กฐ์˜ ์„ ํƒ

๋‘˜ ๋‹ค ์žฅ๋‹จ์ ์ด ์กด์žฌํ•˜๋ฉฐ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋ชจ๋ธ์„ ์„ ํƒํ•œ๋‹ค.

๋ชจ๋ธ ์žฅ์  ๋‹จ์ 
๋ชจ๋ธ 1 - ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๋‹ค.

- ์ž๋ฐ” ์–ธ์–ด๋ฅผ ๋ชฐ๋ผ๋„ ์–ด๋Š ์ •๋„ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๊ธฐ๋Šฅ๊ณผ JSP๊ฐ€ ์ง๊ด€์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. 
- ๋กœ์ง ์ฝ”๋“œ์™€ ๋ทฐ ์ฝ”๋“œ๊ฐ€ ํ˜ผํ•ฉ๋˜์–ด JSP ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค.

- ๋ทฐ ๋ณ€๊ฒฝ ์‹œ ๋…ผ๋ฆฌ ์ฝ”๋“œ์˜ ๋นˆ๋ฒˆํ•œ ๋ณต์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์ฝ”๋“œ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ๋‹ค. ์ฆ‰, ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํž˜๋“ค์–ด์ง„๋‹ค.
๋ชจ๋ธ 2 - ๋กœ์ง ์ฝ”๋“œ์™€ ๋ทฐ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค.

- ์ปจํŠธ๋กค๋Ÿฌ ์„œ๋ธ”๋ฆฟ์—์„œ ๊ถŒํ•œ ๊ฒ€์‚ฌ๋‚˜ ์ธ์ฆ๊ณผ ๊ฐ™์€ ๊ณตํ†ต ๊ธฐ๋Šฅ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ํ™•์žฅ์ด ์šฉ์ดํ•˜๋‹ค.
- ์ž๋ฐ” ์–ธ์–ด์— ์นœ์ˆ™ํ•˜์ง€ ์•Š์œผ๋ฉด ์ ‘๊ทผํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค.

- ์ž‘์—…๋Ÿ‰์ด ๋งŽ๋‹ค. (์ปค๋งจ๋“œ ํด๋ž˜์Šค + ๋ทฐ JSP)

 

728x90
๋ฐ˜์‘ํ˜•
Comments