Home > CS > 2024 > ๐Ÿ’พ [CS] MVC ํŒจํ„ด.

๐Ÿ’พ [CS] MVC ํŒจํ„ด.
CS

๐Ÿ’พ [CS] MVC ํŒจํ„ด.

1๏ธโƒฃ MVC ํŒจํ„ด.

  • MVC ํŒจํ„ด์€ ๋ชจ๋ธ(Model), ๋ทฐ(View), ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋กœ ์ด๋ฃจ์–ด์ง„ ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ธ ๊ฐ€์ง€ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ ์š”์†Œ์—๋งŒ ์ง‘์ค‘ํ•ด์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ์šฉ์ดํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ๊ด€๊ณ„๊ฐ€ ๋ณต์žกํ•ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Model(๋ชจ๋ธ)

  • ๋ชจ๋ธ(model)์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ƒ์ˆ˜, ๋ณ€์ˆ˜ ๋“ฑ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ๋ฐ•์Šค ์•ˆ์— ๊ธ€์ž๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ๋ฐ•์Šค ์œ„์น˜ ์ •๋ณด, ๊ธ€์ž ๋‚ด์šฉ, ๊ธ€์ž ์œ„์น˜, ๊ธ€์ž ํฌ๋งท(utf-8 ๋“ฑ)์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ทฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.

View(๋ทฐ)

  • ๋ทฐ(View)๋Š” Inputbox, checkbox, textarea ๋“ฑ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์ฆ‰, ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋ฉฐ ๋‹จ์ˆœํžˆ ์‚ฌ๊ฐํ˜• ๋ชจ์–‘ ๋“ฑ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ์ •๋ณด๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜ํ•œ, ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ์— ์ด๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Controller(์ปจํŠธ๋กค๋Ÿฌ)

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ชจ๋ธ๊ณผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ทฐ๋ฅผ ์ž‡๋Š” ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•˜๋ฉฐ ์ด๋ฒคํŠธ ๋“ฑ ๋ฉ”์ธ ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜ํ•œ, ๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๋ชจ๋ธ์ด๋‚˜ ๋ทฐ์˜ ๋ณ€๊ฒฝ ํ†ต์ง€๋ฅผ ๋ฐ›์œผ๋ฉด ์ด๋ฅผ ํ•ด์„ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

2๏ธโƒฃ MVC ํŒจํ„ด์˜ ์˜ˆ ๋ฆฌ์•กํŠธ.

  • MVC ํŒจํ„ด์„ ์ด์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ๋Š” ์ž๋ฐ” ํ”Œ๋žซํผ์„ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ธ ์Šคํ”„๋ง(Spring)์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Spring์˜ WEB MVC๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋งŽ์ด ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด @RequestParam, @RequestHaader, @PathVariable ๋“ฑ์˜ ์• ๋„ˆํ…Œ์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ ๊ฐ’๋“ค์„ ์‰ฝ๊ฒŒ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž์˜ ์–ด๋– ํ•œ ์š”์ฒญ์ด ์œ ํšจํ•œ ์š”์ฒญ์ธ์ง€ ์‰ฝ๊ฒŒ ๊ฑฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์‚ฌ๋ก€ ๊ฐ™์€ ๊ฒƒ ๋ง์ด์ฃ .
  • ๋˜ํ•œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ, ํ…Œ์ŠคํŠธ, ์‰ฝ๊ฒŒ ๋ฆฌ๋””๋ ‰์…˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋“ฑ์˜ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ ์ž๋ฐ”์—์„œ์˜ MVC ํŒจํ„ด.

  • ์ž๋ฐ”์—์„œ์˜ MVC ํŒจํ„ด(Model-View-Contorller) ์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.
  • ์ด ํŒจํ„ด์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋ธ(Model), ๋ทฐ(View), ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ด๋Š” ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

MVC ํŒจํ„ด์˜ ๊ตฌ์„ฑ ์š”์†Œ.

1. Model(๋ชจ๋ธ)

  • ์—ญํ•  : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋Šฅ :
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ.
    • ๋ฐ์ดํ„ฐ ์ €์žฅ, ์ˆ˜์ •, ์‚ญ์ œ์™€ ๊ฐ™์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ.
    • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ ์ œ๊ณต.
  • ์˜ˆ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”ํ‹ฐํ‹ฐ, DAO, ์„œ๋น„์Šค ํด๋ž˜์Šค.
  • ์˜ˆ์‹œ ์ฝ”๋“œ :
    public class User {
      private String username;
      private String email;
        
      // Getter and Setter
    }
    

2. View(๋ทฐ)

  • ์—ญํ•  : ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” UI(์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) ๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๊ธฐ๋Šฅ :
    • HTML, JSP, Thymeleaf ๊ฐ™์€ ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ Œ๋”๋ง
    • ๋ฐ์ดํ„ฐ ์ž…๋ ฅ, ์ถœ๋ ฅ ๋ฐ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ.
  • ์˜ˆ : JSP, Thymeleaf, HTML ํŒŒ์ผ.
  • ์˜ˆ์‹œ์ฝ”๋“œ(Thymeleaf)
    ```java

User List


#### 3. Controller(์ปจํŠธ๋กค๋Ÿฌ)
- **์—ญํ•  :** ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ์—์„œ ๊ฐ€์ ธ์™€์„œ ๋ทฐ์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
- **๊ธฐ๋Šฅ :**
    - ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›๊ณ , ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ ์ ˆํ•œ ๋กœ์ง(๋ชจ๋ธ)์œผ๋กœ ์ „๋‹ฌ
    - ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ์ ์ ˆํ•œ ๋ทฐ๋กœ ๋ฐ˜ํ™˜.
    - HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ทฐ์— ๋ฐ˜์˜.
- **์˜ˆ :** Spring MVC์˜ `@Controller` ํด๋ž˜์Šค.
- **์˜ˆ์‹œ์ฝ”๋“œ (Spring Boot)**
```java
@Controller
public class UserController {
    @Autowired
    private UserService userService;
    
    @GetMapping("/users")
    public String listUsers(Model model) {
        List<User> users = userService.getAllUsers();
        model.addAttribute("users", users);
        return "userList"; // userList.html๋กœ ๋ฐ˜ํ™˜
    }
}

MVC ํŒจํ„ด์˜ ํ๋ฆ„.

  • 1. ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ
    • ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ URL์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋Š” ๋“ฑ์˜ ๋™์ž‘์„ ํ†ตํ•ด ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญ์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  • 2. ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ฒ˜๋ฆฌ
    • ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • 3. ๋ชจ๋ธ์˜ ์ฒ˜๋ฆฌ
    • ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ , ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€/์‚ญ์ œํ•œ ํ›„, ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • 4. ๋ทฐ์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
    • ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ทฐ๋กœ ์ „๋‹ฌํ•˜๊ณ , ํ•ด๋‹น ๋ทฐ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋„๋ก ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • 5. ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
    • ์ตœ์ข…์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์—์„œ MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ.

  • ์ž๋ฐ”์—์„œ๋Š” Spring MVC ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์š” MVC ํŒจํ„ด์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.
  • Spring MVC๋Š” ์ปจํŠธ๋กค๋Ÿฌ, ๋ชจ๋ธ, ๋ทฐ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

Spring MVC์˜ ๊ธฐ๋ณธ ํ๋ฆ„.

  • 1. DispatcherServler
    • ๋ชจ๋“  ์š”์ฒญ์€ ๋จผ์ € DispatcherServlet์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
    • ์ด๊ฒƒ์€ Front Controller๋กœ์„œ, ์š”์ฒญ์„ ์ ์ ˆํ•œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
  • 2. Controller
    • DispatcherServler์€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ ์ ˆํ•œ ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • 3. Model
    • ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ชจ๋ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • 4. View
    • ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ์—์„œ ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ทฐ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • 5. View Resolver
    • ๋ทฐ ๋ฆฌ์กธ๋ฒ„(View Resolver)๊ฐ€ HTML, JSP, Thymeleaf ํ…œํ”Œ๋ฆฟ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ทฐ๋ฅผ ๋ Œ๋”๋งํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

Spring MVC ์ฝ”๋“œ ์˜ˆ์‹œ.

  • 1. Controller
    @Controller
    public class ProductController {
        
      @Autowired
      private ProductService productService;
        
      @GetMapping("/products")
      public String getAllProducts(Model model) {
          List<Product> products = productService.getAllProducts();
          model.addAttribute("products", products);
          return "productList"; // productList.html๋กœ ๋ฐ˜ํ™˜
      }
    }
    
  • 2. Model(Service & Entity)
    ```java
    @Service
    public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public List getAllProducts() { return productRepository.findAll(); } }

@Entity
public class Product {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private double price;

// Getter and Setters } ```
  • 3. View(Thymeleaf ํ…œํ”Œ๋ฆฟ)
    ```html
    <!DOCTYPE html>
Product List

Product List

  • Product Name - Price

```

MVC ํŒจํ„ด์˜ ์žฅ์ .

  • 1. ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ.
    • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(Model)๊ณผ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(View)๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • UI๋ฅผ ์ˆ˜์ •ํ•ด๋„ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 2. ํ™•์žฅ์„ฑ.
    • ๊ฐ ๋ถ€๋ถ„(Model, View, Controller)์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.
  • 3. ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ.
    • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด, ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ ๊ฒฐ๋ก .

  • MVC ํŒจํ„ด์€ ์ž๋ฐ” ๊ธฐ๋ฐ˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ค‘์š”ํ•œ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ตฌ์กฐ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.
  • Spring MVC๋Š” ์ด๋ฅผ ์ž๋ฐ”์—์„œ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋งŽ์€ ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.