전체 글

전체 글

    [Spring MVC] 3. MVC 프레임워크 만들기

    📝 프론트 컨트롤러(Front Controller) 패턴 소개 📜 프론트 컨트롤러 패턴의 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받는다. (입구를 하나로!) 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 자동으로 호출한다. 공통 처리가 가능하다. 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다. 스프링 웹 MVC의 핵심도 바로 이 Front Controller이다. 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있기 때문이다. 📝 프론트 컨트롤러 도입 - V1 public interface ControllerV1 { void process(HttpServletRequest request, HttpServlet..

    [Spring MVC] 2. MVC 패턴

    📝 서블릿으로 웹 애플리케이션 만들기 서블릿을 사용할 경우 다음과 같은 방법으로 웹 애플리케이션을 만들 수 있다. @WebServlet(name = "memberListServlet", urlPatterns = "/servlet/members") public class MemberListServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { r..

    더티 체킹(Dirty Checking)이란?

    공부를 하는 과정에서 Spring Data Jpa와 같은 ORM 구현체를 사용하다보면 더티 체킹(Dirty Checking)이란 단어를 종종 듣게 됩니다. 당시에는 짧은 설명만 듣고 나름대로 이해했다고 생각하여 무심코 넘겼지만, 이번에 위 기능이 정확하게 어떻게 동작하는지 확실하게 정리해보고자 합니다. 💡 더티 체킹(Dirty Checking) 정확한 동작 방식을 설명하기 위해 Spring Data JPA가 아닌 네이티브한 코드를 살펴보겠습니다. @Slf4j @RequiredArgsConstructor @Service public class PayService { public void updateNative(Long id, String tradeNo) { EntityManager em = entityMa..

    AJAX란?

    💡 AJAX(Asynchronous Javascript And XML) AJAX란, JavaScript의 라이브러리중 하나이며, HTML, CSS, 자바스크립트, DOM, XML 등 기존에 사용되던 여러 기술을 함께 사용하는 새로운 개발 기법입니다. 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법이며, JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술입니다. 즉, 쉽게 말하자면 자바스크립트를 통해서 서버에 데이터를 요청하는 것입니다. 💡 AJAX를 사용하는 이유 단순하게 생각하면, WEB 화면에서 무언가 부르거나 데이터를 조회하고 싶을 경우, 페이지 전체를 새로고침..