πŸ“Œ [Java μ›Ή] MVC와 MVC νŒ¨ν„΄μ΄λž€?

My Pale Blue DotΒ·2025λ…„ 3μ›” 27일
0

JAVA

λͺ©λ‘ 보기
34/35
post-thumbnail

πŸ“… λ‚ μ§œ

2025λ…„ 3μ›” 27일

πŸ“ ν•™μŠ΅ λ‚΄μš©


1️⃣ MVCλž€?

βœ… μ •μ˜

MVCλŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄ 쀑 ν•˜λ‚˜λ‘œ,

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ„Έ κ°€μ§€ μ—­ν• λ‘œ λ‚˜λˆ„μ–΄ 관심사 뢄리(Separation of Concerns)λ₯Ό μ‹€ν˜„ν•©λ‹ˆλ‹€.

κ΅¬μ„±μš”μ†Œμ„€λͺ…
ModelλΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 데이터 처리 λ‹΄λ‹Ή (DB 연동 λ“±)
Viewμ‚¬μš©μžμ—κ²Œ λ³΄μ—¬μ§€λŠ” ν™”λ©΄ (HTML, JSP, Thymeleaf λ“±)
Controllerμ‚¬μš©μžμ˜ μž…λ ₯을 λ°›μ•„ μ μ ˆν•œ 둜직(Model)을 ν˜ΈμΆœν•˜κ³ , κ²°κ³Όλ₯Ό View에 전달

2️⃣ MVC의 λ™μž‘ 흐름

[μ‚¬μš©μž μš”μ²­] β†’ Controller β†’ Model β†’ Controller β†’ View

βœ… μ˜ˆμ‹œ 흐름

  1. μ‚¬μš©μžκ°€ /login URL μš”μ²­
  2. LoginControllerκ°€ ν•΄λ‹Ή μš”μ²­ 처리
  3. UserServiceμ—μ„œ 둜그인 검증
  4. κ²°κ³Όλ₯Ό Model에 λ‹΄μ•„ View둜 전달
  5. Viewκ°€ μ‚¬μš©μžμ—κ²Œ 응닡 λ°˜ν™˜

3️⃣ MVC ꡬ쑰 μ‹œκ°ν™”

     [Browser]
         ↓ μš”μ²­
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚ Controller   β”‚  ← μ‚¬μš©μžμ˜ μš”μ²­ 처리
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         ↓
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚   Model      β”‚  ← DB 처리, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         ↓
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚    View      β”‚  ← ν™”λ©΄ 좜λ ₯
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         ↑ 응닡

4️⃣ MVC 각 μš”μ†Œμ˜ μ—­ν•  μ˜ˆμ‹œ (Java κΈ°μ€€)

βœ… Model (ex: DAO, DTO)

public class UserDto {
    private String userid;
    private String password;
    // getter/setter μƒλž΅
}

βœ… Controller

@WebServlet("/login")
public class LoginController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) {
        String id = request.getParameter("userid");
        String pw = request.getParameter("password");

        boolean result = userService.login(id, pw);
        if(result)
            request.getRequestDispatcher("/home.jsp").forward(request, response);
        else
            request.getRequestDispatcher("/error.jsp").forward(request, response);
    }
}

βœ… View (ex: JSP)

<!-- login.jsp -->
<form method="post" action="/login">
    아이디: <input type="text" name="userid" />
    λΉ„λ°€λ²ˆν˜Έ: <input type="password" name="password" />
    <button type="submit">둜그인</button>
</form>

5️⃣ MVC νŒ¨ν„΄μ˜ μž₯점

ν•­λͺ©μ„€λͺ…
κ΄€μ‹¬μ‚¬μ˜ 뢄리각 계측이 λ…λ¦½μ μœΌλ‘œ μ—­ν•  μˆ˜ν–‰ β†’ μœ μ§€λ³΄μˆ˜ 용이
ν˜‘μ—… νš¨μœ¨λ””μžμ΄λ„ˆ(View), 개발자(Controller, Model) κ°„ μ—­ν•  ꡬ뢄
ν™•μž₯μ„±κΈ°λŠ₯ μΆ”κ°€, ꡬ쑰 λ³€κ²½ μ‹œ μœ μ—°ν•˜κ²Œ λŒ€μ‘ κ°€λŠ₯

πŸ”₯ 정리

  • MVCλŠ” λŒ€κ·œλͺ¨ μ›Ή μ‹œμŠ€ν…œμ˜ ν‘œμ€€ ꡬ쑰
  • ControllerλŠ” μš”μ²­ 처리 및 흐름 μ œμ–΄
  • Model은 데이터 처리 쀑심
  • ViewλŠ” μ‚¬μš©μžμ—κ²Œ λ³΄μ—¬μ§€λŠ” 좜λ ₯ λ‹΄λ‹Ή
  • FrontController νŒ¨ν„΄μ€ MVCμ—μ„œ Controllerλ₯Ό ν†΅ν•©ν•œ ν™•μž₯ν˜• ꡬ쑰

πŸ”— μ°Έκ³  자료

profile
Here, My Pale Blue.🌏

0개의 λŒ“κΈ€