2. πŸ§‘β€πŸ’» MVC와 ν…œν”Œλ¦Ώ μ—”μ§„

μœ€ν•œμ˜Β·2025λ…„ 4μ›” 4일
0

Spring

λͺ©λ‘ 보기
3/6
post-thumbnail

MVC와 ν…œν”Œλ¦Ώ μ—”μ§„

MVCλŠ” Model, View, Controller의 μ•½μžλ‘œ, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” μ£Όμš” 역할을 λΆ„λ¦¬ν•œ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μž…λ‹ˆλ‹€.


νŒ¨ν„΄μ„ κ°€μ§€κ³  역할을 λ‚˜λˆ„λŠ” 이유

  • κ΄€μ‹¬μ‚¬μ˜ 뢄리(Separation of Concerns, SoC)

    각각의 역할을 λ…λ¦½μ μœΌλ‘œ λ‚˜λˆ„μ–΄, μ½”λ“œ κ°„μ˜ 영ν–₯도λ₯Ό μ€„μ΄λŠ” 것이 ν•΅μ‹¬μž…λ‹ˆλ‹€.


예λ₯Ό λ“€μ–΄

  • UI(ν™”λ©΄ ν‘œμ‹œ) β†’ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ κ΄€λ ¨ μ½”λ“œλ§Œ λ‹€λ£Έ
  • λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 β†’ 데이터 처리, 계산, κ·œμΉ™ 적용 λ“± 핡심 둜직 λ‹΄λ‹Ή
  • 데이터 μ ‘κ·Ό β†’ DBμ™€μ˜ μ—°κ²° 및 데이터 μ €μž₯ 처리

βœ… μž₯점

  • μœ μ§€λ³΄μˆ˜μ„± 증가
  • μž¬μ‚¬μš©μ„± 증가
  • ν…ŒμŠ€νŠΈ μš©μ΄μ„± 증가 ...



βš™οΈ λ™μž‘λ°©μ‹

Image

이미지 좜처: μΈν”„λŸ° κ°•μ˜(μŠ€ν”„λ§ μž…λ¬Έ - μ½”λ“œλ‘œ λ°°μš°λŠ” μŠ€ν”„λ§ λΆ€νŠΈ, μ›Ή MVC, DB μ ‘κ·Ό 기술)


  1. μ‚¬μš©μžκ°€ μ›Ή λΈŒλΌμš°μ €μ—μ„œ localhost:8080/hello-mvc와 같은 μš”μ²­μ„ 보냄
  2. 톰캣이 μš”μ²­μ„ λ°›κ³ , Controller에 λ§€ν•‘λœ κ²½λ‘œκ°€ μžˆλŠ”μ§€ 확인
  3. βœ… κ²½λ‘œκ°€ μžˆλ‹€λ©΄ β†’ return "ν…œν”Œλ¦Ώ 이름"으둜 λ°˜ν™˜
  4. ViewResolverκ°€ ν•΄λ‹Ή ν…œν”Œλ¦Ώ νŒŒμΌμ„ μ°Ύμ•„ HTML둜 λ³€ν™˜
  5. λ³€ν™˜λœ HTML이 λΈŒλΌμš°μ €μ— 좜λ ₯됨

πŸ› οΈ ν…ŒμŠ€νŠΈ 방법

  1. 파일 생성(hello-template.html)
<!-- src/main/resources/templages/ μ•„λž˜μ— 파일 생성 -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Hello Template</title>
</head>
<body>
<p th:text="'hello '+ ${name}">hello Empty</p>    <!-- ν•΄λ‹Ή μ½”λ“œλŠ” Thymeleaf 문법인데 μ•„λž˜ μ°Έκ³  ν•­λͺ© 링크 확인 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. -->
</body>
</html>
  1. controller νŒ¨ν‚€μ§€ 생성 및 파일 생성
/*
    1. ν”„λ‘œμ νŠΈ μ•„λž˜μ— controller νŒ¨ν‚€μ§€ 생성
    2. 'HelloController'λΌλŠ” μ΄λ¦„μœΌλ‘œ 클래슀 생성
*/
  1. Controller에 μ½”λ“œ μΆ”κ°€(HelloController.java)
/* 2. ν…œν”Œλ¦Ώ μ—”μ§„ 방식 */
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name", required = true) String name, Model model) {
    model.addAttribute("name", name);
    return "hello-template";
}
  1. λΈŒλΌμš°μ €μ—μ„œ localhost:8080/hello-mvc?name=μ›ν•˜λŠ”μ΄λ¦„ 호좜
  2. 결과확인

    Image



μ°Έκ³ 
Thymeleaf μ‚¬μš©λ²• 정리

0개의 λŒ“κΈ€