본문 바로가기

분류 전체보기364

[MVC] 스프링 MVC - 구조 이해(1) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 직접 만든 MVC 프레임워크와 스프링 MVC를 비교해보자. 스프링 MVC 전체 구조1. 직접 만든 프레임 워크와 스프링 MVC 비교우리가 만든 프레임워크는 기본적으로 FrontController 패턴을 사용하여 요청을 중앙에서 관리하고, 적절한 컨트롤러를 호출하는 구조였다. 스프링 MVC의 DispatcherServlet도 같은 역할을 수행한다. 직접 만든 MVC 프레임워크 구조 2. 스프링 MVC의 요청 처리 흐름스프링 MVC의 요청 처리 과정은 우리가 만든 프레임워크와 유사하지만, 더 확장성이 뛰어난 구조를 가지고 있다. DispatcherServlet이 중심이 되어 요청을 처리하며, 어댑터와 핸들러 매핑 등을 활용해 유연한 구조를 .. 2025. 2. 19.
[MVC] MVC 프레임워크 만들기(4) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 유연한 컨트롤러2 - v51. FrontControllerServletV5에 ControllerV4 기능 추가FrontControllerServletV5는 다양한 컨트롤러를 유연하게 처리하기 위해 핸들러 매핑(handlerMappingMap)과 핸들러 어댑터(handlerAdapters)를 사용한다. 기존에는 ControllerV3만 지원했지만, 이번에는 ControllerV4도 함께 추가하여 더욱 유연한 구조를 만든다. 1.1. handlerMappingMap에 ControllerV4 컨트롤러 추가기존의 ControllerV3와 함께 ControllerV4를 사용하는 컨트롤러도 handlerMappingMap에 추가한다.private .. 2025. 2. 17.
[MVC] MVC 프레임워크 만들기(3) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 단순하고 실용적인 컨트롤러 - v4이전 V3 컨트롤러는 서블릿 종속성을 제거하고, 뷰 경로의 중복을 제거하는 등 잘 설계된 구조를 가지고 있다. 하지만 컨트롤러 인터페이스를 구현하는 개발자의 입장에서 보면, 항상 ModelView 객체를 생성하고 반환해야 하는 부분이 다소 번거롭다.좋은 프레임워크는 아키텍처도 중요하지만, 개발자가 단순하고 편리하게 사용할 수 있도록 실용성이 있어야 한다.이번에는 V3를 개선하여 개발자들이 더 편리하게 개발할 수 있도록 V4 버전을 설계해보자.기본적인 구조는 V3와 같지만, 컨트롤러가 ModelView를 반환하지 않고 ViewName만 반환한다.즉, 컨트롤러의 역할을 더욱 단순화하였다.V4 컨트롤러 인터페.. 2025. 2. 12.
[MVC] MVC 프레임워크 만들기(2) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. View 분리 - v2기존 문제점 String viewPath = "/WEB-INF/views/new-form.jsp";RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);dispatcher.forward(request, response);V1 구조에서는 컨트롤러마다 뷰로 이동하기 위한 코드가 반복적으로 작성되어야 했다. 이러한 중복은 유지보수와 가독성을 저하시킬 수 있다. 이를 해결하기 위해 뷰 처리를 별도의 객체로 분리했다.V2 구조에서는 뷰 처리를 담당하는 MyView라는 객체를 도입했다. 컨트롤러는 더 이상 직접 RequestDispatcher를 호출하지 않.. 2024. 12. 8.
[MVC] MVC 프레임워크 만들기(1) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 프론트 컨트롤러 패턴 소개프론트 컨트롤러 도입 전프론트 컨트롤러 패턴을 적용하기 전에는 각 요청마다 개별적인 서블릿을 작성해야 한다. 이 경우, 요청마다 공통적으로 처리해야 하는 로직이 반복되며 유지보수가 어렵다. 프론트 컨트롤러 도입 후 프론트 컨트롤러를 도입하면 모든 요청이 하나의 프론트 컨트롤러 서블릿에서 시작된다. 프론트 컨트롤러는 요청에 맞는 실제 컨트롤러로 위임하여 처리하며, 이 과정에서 공통 로직을 한 곳에서 처리할 수 있다. FrontController 패턴 특징하나의 서블릿에서 클라이언트의 모든 요청을 받는다.프론트 컨트롤러가 요청에 맞는 실제 컨트롤러를 찾아서 호출한다.모든 요청의 입구가 하나로 통합된다.공통 처리(예:.. 2024. 11. 13.
2024년 9-10월 회고 : 퇴사 7개월 차, 그리고 새로운 시작 9월10월 퇴사한 지 6개월이 지난 지금, 이제 슬슬 취업 준비를 하면서 공부를 해야겠다는 생각이 들었다. 마냥 모아놓은 돈을 쓰면서 공부에만 매진할 수는 없는 노릇이니까. 이번 기간 동안 공부를 많이 했다고 생각한다. 9월까지는 공부에만 집중하면서 원서를 간간히 썼고, 그중 한 기업에 최종 합격했다. 유지할 점 (Keep)1. 꾸준한 습관: 특별한 일이 있지 않는 이상은 매일 공부했다. 66일이 넘는 기간 동안 유지해서 이제는 습관이 되었다.2. 실행력: 멘토링을 신청하여 부족한 부분을 체크받고 지적받은 부분은 바로 고쳤다. 필요하다고 생각한 것들은 즉시 실행했다. 개선할 점 (Problem)1. 학습 균형개발 서적을 더 많이 읽기CS, 알고리즘, 개발 분야를 골고루 공부하기2. 생활 관리건강 관리 (.. 2024. 11. 6.