-
MVC(Model-View-Controller)는 웹 애플리케이션 같은 걸 만들 때 사용하는 디자인 패턴이다.
애플리케이션을 만들 때 구조적으로 나누어서 더 깔끔하고 효율적으로 만들 수 있게 해준다.
Model은 데이터와 로직, View는 화면에 보여줄 부분, Controller는 둘 사이를 연결해 준다.
특히 Controller는 Model에서 데이터를 가져와서 View로 보내주고, 사용자로부터의 반응을 받아서 Model에 다시 반영하는 역할을 한다. 중간에서 모든 걸 조율하는 거다.
이렇게 나누면 나중에 수정할 때도 더 편하고, 유지보수하기도 쉬워진다.
MVC 사용 예
Model (모델) - 이름, 이메일, 비밀번호 같은 것들. 이 정보들은 어디에 저장될까? 바로 Model에 저장된다. 예를 들어, 데이터베이스에 저장된 사용자 정보가 Model에 해당된다. 여기서는 데이터를 처리하고, 검증하고, 필요한 로직들을 다룬다.
public class User {
private String username;
private String password;
// 생성자, getter, setter 등등...
}View (뷰) - 사용자가 아이디와 비밀번호를 입력하는 화면, 사용자가 볼 수 있는 화면, 즉 UI를 담당하는 부분
<form action="/login" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username">
<label for="password">Password:</label>
<input type="password" id="password" name="password">
<button type="submit">Login</button>
</form>Controller (컨트롤러) - 사용자가 아이디와 비밀번호를 입력하고 로그인 버튼을 눌렀을 때 그 데이터를 받아서 처리해주는 부분, Controller는 사용자가 입력한 데이터를 받아서, Model과 소통하고, 필요한 작업을 수행한 다음, 결과를 View에 다시 보여주는 역할을 한다.
public class LoginController {
private UserService userService; // Model과 통신하는 서비스 클래스
public String login(String username, String password) {
User user = userService.findUserByUsername(username);
if (user != null && user.getPassword().equals(password)) {
return "로그인 성공!"; // 성공 화면으로 이동
} else {
return "로그인 실패!"; // 실패 화면으로 이동
}
}
}전체적인 흐름
1. 사용자가 로그인 페이지(View)에서 아이디와 비밀번호를 입력하고 제출
2. Controller가 그 데이터를 받아서, Model(UserService)을 통해 데이터베이스에서 사용자를 찾고 비밀번호를 확인
3. 확인된 결과를 바탕으로 View를 통해 사용자에게 로그인 성공 또는 실패를 보여줌