Spring Frame Work ๊ธฐ์ดˆ

2021. 6. 10. 18:05ใ†Back-End ์ž‘์—…์‹ค/Spring Framework

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ Model1๊ณผ Model2 ๋ฐฉ์‹



์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์ œ ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์„ ๋น„์ฆˆ๋‹ˆ์Šค Losic์ด๋ผ ๋ถ€๋ฅด๋ฉฐ, ํ™”๋ฉด์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ถ€๋ถ„์„ Presentation Losic์ด๋ผ ๋ถ€๋ฅด๊ณ , ์ด ๋‘ ๊ฐœ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋ž€?
    • ์‹ค์ œ DB์™€ ์—ฐ๋™ํ•˜์—ฌ Data๋ฅผ ์–ป์–ด์˜ค๊ธฐ ์œ„ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜์—ญ
    • Model์ด๋ผ๊ณ  ๋ช…์นญ
  • ํ”„๋ฆฌ์  ํ…Œ์ด์…˜ ๋กœ์ง์ด๋ž€?
    • ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด์—ฌ ์ฃผ๋Š” ์—ญํ• 
    • View๋ผ๊ณ  ๋ช…์นญ


์œ„์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์€ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

  • Model 1 (Model 1 Architecture)
  • Model 2 (Model 2 Architecture)

 



  ๐Ÿ“ Model์—์„œ์˜ ์šฉ์–ด ๋‚ด์šฉ



DB์™€ ์—ฐ๋™ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ†ตํ•ด ๋“ค์–ด์˜จ Data๋ฅผ ์ €์žฅํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ณดํ†ต DAO(Data Access Object)๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค (์—…๋ฌด) ๋กœ์ง์ด ๊ตฌํ˜„ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

View์—๊ฒŒ ์ œ๊ณตํ•  Data๋ฅผ ๊ฐ€๊ณต / ๊ด€๋ฆฌ ํ•œ๋‹ต๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค Data์™€ Data์˜ ์—ฐ์‚ฐ ์ง‘ํ•ฉ์ฒด์˜ ๊ฒฐ๊ณผ๋ฌผ์ธ ๊ฒƒ์ด์—์š”.

  • ์ผ๋ฐ˜์ ์œผ๋กœ DBMS์— ์˜ํ•ด ๊ด€๋ฆฌ ๋ฉ๋‹ˆ๋‹ค.
    • DB์™€ ๊ด€๋ จ๋œ ์—ฐ์‚ฐ์€ JDBC API์— ์˜์กด
    • ์˜ˆ์‹œ : ๊ฒŒ์‹œํŒ ๊ธ€ ๋“ฑ๋ก / ์ˆ˜์ • / ์‚ญ์ œ ๋“ฑ๋“ฑ(DBMS์™€ ์—ฐ๋™)

 
EJB : ์ค‘๋Œ€ํ˜• ์ด์ƒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Model์˜ ํ•œ ์ข…๋ฅ˜

  • ์˜ˆ์‹œ
    • Java Bean์€ Data 1๊ฑด์„ ์˜๋ฏธ
    • VO(Value Object)๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด ์˜๋ฏธ
    • DTO(Data Transfer Object)๋Š” Data๋ฅผ ์ „์†กํ•ด์ฃผ๋Š” ๊ฐ์ฒด ์˜๋ฏธ 

 

  ๐Ÿ“ View์—์„œ์˜ ์šฉ์–ด ๋‚ด์šฉ


๋‹จ์ˆœํžˆ ๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ด ์ฃผ๋Š” ๋ถ€๋ถ„์ธ ๊ฒƒ์ด์—์š”.

์‚ฌ์šฉ์ž์™€์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ์จ, ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ €์— ์ตœ์ข…์ ์œผ๋กœ ๋ณด์—ฌ์ง€๋Š” ๊ฒฐ๊ณผ๋ฌผ ํŽ˜์ด์ง€๋ž๋‹ˆ๋‹ค!

JSP ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์ด๋ž๋‹ˆ๋‹ค!

 

  • ๊ตฌํ˜„์‹œ ์ฐธ์กฐ ๊ธฐ์ˆ 
    • EL & JSTL
    • ์ปค์Šคํ…€ Tag Library๋ฅผ ํ†ตํ•œ Losic ๊ตฌํ˜„ ๊ฐ€๋Šฅ
    • Velocity ๋˜๋Š” XML / XSLT๋“ฑ์˜ ํ™œ์šฉ ๊ฐ€๋Šฅ
  • ์˜ˆ์‹œ
    • JSP File, HTML File
    • Excel, PowerPoint, MS-Word
    • PDF Format
  • ์ฐธ์กฐ ์‚ฌํ•ญ
    • JSF(Java Server Faces) : View ์˜์—ญ์— ์ดˆ์ ์„ ๋งž์ถ˜ Frame Work

 

 

  ๐Ÿ“ Controller์—์„œ์˜ ์šฉ์–ด ๋‚ด์šฉ


์‚ฌ์šฉ์ž(์›น ๋ธŒ๋ผ์šฐ์ €)์˜ ์š”์ฒญ ์ •๋ณด๋ฅผ ๋ฐ›์•„์„œ ์ด๊ฒƒ์„ ๋ถ„์„ ํ•˜๋Š” ๊ณณ์ด์—์š”!

Model๊ณผ View ๋ถ€๋ถ„๊ฐ€์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ต๋‹ˆ๋‹ค!

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  Java Bean์„ ์ƒ์„ฑํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๊ตฌํ˜„๋œ Method๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(Model) ๋˜๋Š” View๋“ฑ์„ ํ˜ธ์ถœํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ˆ˜ํ–‰ ๋’ค ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ JSP Page๋‚˜, ํ˜น์€ ๋‹ค๋ฅธ URL๋กœ ์ด๋™ ์‹œํ‚ต๋‹ˆ๋‹ค.

 

  • ์ฐธ์กฐ ๊ธฐ์ˆ 
    • ์„œ๋ธ”๋ฆฟ ๋งตํ•‘(ํŠน์ • ํŽ˜์ด์ง€ ์š”์ฒญ์— ๋Œ€ํ•œ ๋งคํ•‘ ๊ธฐ๋Šฅ)

 

  • ๊ตฌํ˜„ ์˜ˆ์‹œ
    • ์‚ฌ์šฉ์ž ์ •์˜ Servlet
    • Frame Work๊ฐ€ ์ œ๊ณตํ•˜๋Š” Servlet

 

Servlet์ด๋ž€?


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

์˜ˆ๋ฅผ ๋“ค์–ด, ์–ด๋– ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•˜๋ ค๊ณ  ํ•  ๋•Œ. ์‚ฌ์šฉ์ž๋Š” ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. 

๊ทธ๋•Œ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•˜๊ณ , ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋„์›Œ์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์„œ๋ธ”๋ฆฟ(Servlet)์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ”๋กœ ๊ตฌํ˜„ ๋œ *CGI๋ผ๊ณ  ํ”ํžˆ ๋งํ•ฉ๋‹ˆ๋‹ค. MVC Model์—์„œ๋Š” Controller๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ด์—์š”!

 

53ํŽ˜์ด์ง€ ์ •๋ฆฌ ํ•  ์ฐจ๋ก€

728x90
๋ฐ˜์‘ํ˜•