ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MVC란?
    컴공지식/웹 2024. 8. 27. 13:39

    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를 통해 사용자에게 로그인 성공 또는 실패를 보여줌

     

     

    '컴공지식 > ' 카테고리의 다른 글

    JSP란?  (0) 2024.08.27
    XAMPP란?  (0) 2024.08.27
    XML이란?  (0) 2024.08.27
    태그 안에 내용 줄바꿈 하는 법  (0) 2024.08.01
    DOM이란?  (0) 2024.07.29
Designed by Tistory.