μ•Œμ“Έ IT 지식

[μ•Œμ“Έ IT] MVC μ›Ή ν”„λ ˆμž„μ›Œν¬

Meng's Computer 2021. 1. 11. 14:04

πŸ“’ κ°œμš”

넀이버 같은 딱봐도 λ³΅μž‘ν•œ μ›Ήμ‚¬μ΄νŠΈλŠ”, μš”μ†Œμ™€ κΈ°λŠ₯듀이 λ§Žμ•„μ§€κ³ , ꡬ쑰가 이것저것 μ–½ν˜€μžˆλ‹€λŠ” 것이 λŠκ»΄μ§‘λ‹ˆλ‹€.

λ­”κ°€ κ±°λŒ€ν•΄μ§€κ³  λ³΅μž‘ν•΄μ§ˆμˆ˜λ‘, νŠΉμ • κΈ°μ€€μœΌλ‘œ 뢄리,λͺ¨λ“ˆν™”ν•΄μ„œ 접근을 ν•΄μ•Όν•©λ‹ˆλ‹€.

ꡭ가기관을 μž…λ²•,사법,ν–‰μ •μœΌλ‘œ λ‚˜λˆ„λ“―μ΄, μ›Ήμ‚¬μ΄νŠΈλ₯Ό λΉ„λ‘―ν•œ μ†Œν”„νŠΈμ›¨μ–΄λŠ”

  • Model
  • View
  • Controller

λΌλŠ” 접근법이 많이 μ‚¬μš©λ©λ‹ˆλ‹€.

 

πŸ“’ MVC Web Framework

MVC νŒ¨ν„΄

MVC νŒ¨ν„΄

  • Model : "데이터"에 κ΄€λ ¨λœ 것
  • Veiw : λˆˆμ— λ³΄μ΄λŠ”κ²ƒ, μ›Ήμ˜ 경우 HTML/CSS λ‚˜νƒ€λ‚΄λŠ” μš”μ†Œλ“€
  • Controller : λ­”κ°€λ₯Ό μ œμ–΄ν•˜λŠ”κ²ƒ, ν”„λ‘œκ·Έλž˜λ°μ˜ λŒ€λΆ€λΆ„μ„ 차지

κ²Œμ‹œνŒμ„ μ˜ˆμ‹œλ‘œ λ΄…μ‹œλ‹€.

Model

πŸ‘‰ κ²Œμ‹œνŒμ— 쓰이고 읽히고 μˆ˜μ •λ˜λŠ” 글듀은, DB에 λ°μ΄ν„°λ‘œ μ €μž₯될 κ²ƒμž…λ‹ˆλ‹€.
이 λ°μ΄ν„°μ˜ ν˜•μ‹μ„ μ§€μ •ν•˜κ³ , μ €μž₯ν•˜κ³  λΆˆλŸ¬μ˜€λŠ” μž‘μ—…λ“€μ— κ΄€ν•œ μ½”λ“œλ“€μ΄ Model 

Veiw

πŸ‘‰ 이걸, μ‚¬μš©μžλ“€μ΄ λͺ©λ‘κ³Ό κΈ€, μž…λ ₯ν™”λ©΄ λ“±μœΌλ‘œ μ‹œκ°μ μœΌλ‘œ λ³Ό 수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” HTML/CSS λ“±μ˜ μš”μ†Œκ°€ View

Controller

πŸ‘‰ Model에 데이터λ₯Ό View에 μ—°κ²°μ‹œμΌœμ„œ μ‚¬μš©μžκ°€ GUI화면을 톡해 데이터λ₯Ό 읽고,μ“°κ³ ,μ§€μš°κ³  ν•  수 μžˆλ„λ‘ μ „λ°˜μ  제이λ₯Ό ν•˜λŠ” νŒŒνŠΈκ°€ Controller μž…λ‹ˆλ‹€.

μ•žμ„ , "정적 μ›Ή vs 동적 μ›Ή" ν¬μŠ€νŒ…μ—μ„œ 동적 웹을 "식당"에 λΉ„μœ ν–ˆμŠ΅λ‹ˆλ‹€.

 

[μ•Œμ“Έ IT] Static Web ? Dynamic Web ?

πŸ“’ κ°œμš” 편의점과 식당이 μžˆμŠ΅λ‹ˆλ‹€. νŽΈμ˜μ μ€ 미리 μ‘°λ¦¬λ˜μ–΄μžˆλŠ” μŒμ‹λ“€μ„ λ‚΄κ°€ 사닀 먹을 수 μžˆμŠ΅λ‹ˆλ‹€. 식당은 λ‚΄κ°€ μ£Όλ¬Έ λ„£μœΌλ©΄, κ·Έ μžλ¦¬μ—μ„œ μŒμ‹μ„ μ‘°λ¦¬ν•΄μ„œ λ§Œλ“€μ–΄ μ œκ³΅μ„ ν•΄μ£Όλ©΄ 먹을 수

youngminieo1005.tistory.com

Model은 이 μ‹λ‹Ήμ˜ μ‹λ£Œν’ˆμ°½κ³ λ₯Ό κ΄€λ¦¬ν•˜κ³ , μŒμ‹μ„ μš”λ¦¬ν•˜λŠ” "μ£Όλ°©μž₯"
ViewλŠ” μ£Όλ°©μž₯이 λ‚΄μ˜¨ μŒμ‹μ„ ν”Œλ ˆμ΄νŒ…ν•˜λŠ” "직원"
ControllerλŠ” 주문도 λ°›κ³  μ„œλΉ™λ„ ν•˜λŠ” λ§€λ‹ˆμ €λΌκ³  μƒκ°ν•˜λ©΄ μ λ‹Ήν•©λ‹ˆλ‹€.

μ΄λ ‡κ²Œ Model, View, Controllerλ₯Ό κ°–μΆ˜ μ›Ήμ‚¬μ΄νŠΈλ₯Ό μ½”λ“œλ‘œ κΈ°λ³Έ 골격을 ν•œ 번 짜고 λ‚˜λ©΄, κ·Έ μ½”λ“œλ₯Ό 기반으둜 λ‚΄ μ‚¬μ΄νŠΈλ₯Ό κ°œλ°œν•˜λŠ” 일이 μˆ˜μ›”ν•΄μ§€κ² μ§€λ§Œ, 이런 ꡬ쑰 자체λ₯Ό κ°œλ°œν•˜λŠ” 것은 κ½€λ‚˜ μ‹œκ°„μ΄ 걸릴 κ²ƒμž…λ‹ˆλ‹€.

닀행이도 μ—¬λŸ¬ νšŒμ‚¬λ‚˜ λΉ„μ˜λ¦¬ 단체, ν˜Ήμ€ κ°œμΈλ“€μ΄ 이 MVC ꡬ쑰의 κΈ°λ³Έ 섀계가 갖좰진 μƒνƒœμΈ
"MVC μ›Ή ν”„λ ˆμž„μ›Œν¬" λž€ κ±Έ μ œκ³΅ν•©λ‹ˆλ‹€.

마치, 건물의 기초 골격과 μˆ˜λ„,μ „κΈ°,λ‚œλ°©μ΄ μ„€μΉ˜λœ μ±„λ‘œ μ‚¬μš©μžκ°€ μ›ν•˜λŠ”λŒ€λ‘œ 집을 κ°œμ‘°ν•˜κ³  κΎΈλ°€ 수 있게 μ œκ³΅ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

"ν”„λ ˆμž„μ›Œν¬"λŠ” 남이 이미 μ§œλ†“μ€ μ½”λ“œλž€ μ μ—μ„œ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ λΉ„μŠ·ν•˜μ§€λ§Œ, 이 λ‘˜μ„ κ°„λ‹¨νžˆ λΉ„κ΅ν•˜μžλ©΄

라이브러리(Library) ν”„λ ˆμž„μ›Œν¬(Framework)
각각 κ°œλ³„μ μΈ κΈ°λŠ₯듀을..
λΉ„μœ ν•˜μžλ©΄, λ¬Έμ§μ΄λ‚˜ μš•μ‘° λ“±μ˜ λΆ€μ†ν’ˆ
"κ°€μ Έλ‹€ μ“°λŠ” 것"
λΆ€μ‘±ν’ˆλ“€μ΄ μ—°κ²°λ˜μ–΄μ„œ..
기초적인 μ œν’ˆ 골격을 κ°–μΆ˜ μƒνƒœ
"κΈ°λ³Έ ν‹€μ—μ„œ 덧뢙여 λ§Œλ“œλŠ” 것"

μ›Ή ν”„λ‘œκ·Έλž¨μ–Έμ–΄μ—λŠ” λ‹€μ–‘ν•œ μ–Έμ–΄κ°€ 있고, 또 μ–Έμ–΄λ§ˆλ‹€ λ‹€λ₯Έ MVC μ›Ή ν”„λ ˆμž„μ›Œν¬κ°€ μžˆμŠ΅λ‹ˆλ‹€.

예둜 λ“€λ©΄, ν•œκ΅­μ—μ„œ, Java μ–Έμ–΄λ‘œ λ™μž‘ν•˜λŠ” Spring ν”„λ ˆμž„μ›Œν¬, php 의 Laravel 등이 μžˆμ§€μš”.

νŠΉμ΄ν•˜κ²Œ MVC라고 μ•ˆν•˜κ³ , MTV(T,Template) λΌκ³ ν•˜λŠ” python의 Django, Ruby 의 Ruby on Rails, ν•¨μˆ˜ν˜• μ–Έμ–΄ Scala의 Play λ“±λ“± ꡉμž₯히 λ§Žλ‹€κ³  ν•©λ‹ˆλ‹€.

μ›Ή ν”„λ‘œκ·Έλž¨μ–Έμ–΄ - μ›Ή ν”„λ ˆμž„μ›Œν¬ 

후에, 본인이 μ–΄λŠ νšŒμ‚¬μ—μ„œ 일을 ν•˜λŠ”κ°€, λ˜λŠ” μ–΄λ–€ μ›Ήμ‚¬μ΄νŠΈλ₯Ό λ§Œλ“œλŠ”κ°€μ— λ”°λΌμ„œ, 무슨 언어와 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν• μ§€ κ²°μ •ν•˜λ©΄ λ©λ‹ˆλ‹€.

λŒ€λž΅μ μΈ κ΅¬μ‘°λ‚˜ μ‚¬μš©λ²•μ€ λ‹€ λΉ„μŠ·ν•΄μ„œ, ν•œ 두가지 써보면 μƒˆλ‘œμš΄ κ±Έ 접해도 μ‰½κ²Œ 터득할 수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

 

λ¬Έμ œλ‚˜ 잘λͺ»λ˜μ—ˆκ±°λ‚˜ λ―Έν‘ν•œ μ„€λͺ… 있으면 μ•Œλ €μ£Όμ„Έμš”. πŸ™


 

728x90
λ°˜μ‘ν˜•