Spring (183) 썸네일형 리스트형 [MVC] Front Controller Version2 이번 장부터 프론트 컨트롤러 Version1(링크)에 이어 MVC 프레임워크를 만들어본다. 글의 하단부에 참고한 강의와 공식문서의 경로를 첨부하였으므로 자세한 내용은 강의나 공식문서에서 확인한다. 모든 코드는 깃허브(링크)에 올려두었다. 이전 장에서는 프론트 컨트롤러를 도입하여 클라이언트 요청의 진입점을 하나로 통일하는 작업을 진행하였다. 이번 장에서는 MyView라는 클래스를 생성하여 컨트롤러에서 View로 이동하는 부분이 중복되는 문제를 해결해본다. 전체적인 다이어그램은 아래의 이미지와 같다. MyView 이전 장에서는 없었던 MyView가 추가되었다. 생성 시점에 view의 경로로 생성되며 render가 호출되면 경로에 있는 view로 forward 시킨다. @AllArgsConstructor pu.. [MVC] Front Controller Version1 이번 장부터 프론트 컨트롤러 패턴을 적용하여 MVC 프레임워크를 만들어본다. 글의 하단부에 참고한 강의와 공식문서의 경로를 첨부하였으므로 자세한 내용은 강의나 공식문서에서 확인한다. 모든 코드는 깃허브(링크)에 올려두었다. 프론트 컨트롤러 우리는 지금까지 Servlet의 문제점을 JSP로 개선하고 JSP의 문제점을 MVC 패턴으로 개선하였다. 하지만 많은 코드들이 중복된다는 MVC 패턴의 한계점을 해결하지 못하였다. 아래의 이미지와 같이 컨트롤러마다 공통되는 부분이 중복되어 들어가는 상황이 발생하였다. (물론 공통되는 부분을 하나의 메서드로 추출해도 되지만 추출된 메서드를 호출하는 것조차도 중복이라고 볼 수 있다.) 프론트 컨트롤러를 도입하게 되면 컨트롤러(or 서블릿) 앞단에 마치 프록시처럼 작동하는 .. [Reactive Programming] 개요 Spring WebFlux Series - 1 이번 장에서는 Spring의 WebFlux를 알아보기 위한 선수 지식인 자바의 Observer 패턴과 Pub, Sub 구조에 대해서 알아본다. 모든 코드는 깃허브 (링크)의 테스트 코드에 있으므로 필요하다면 참고하도록 한다. Reactive Programming Reactive의 의미는 외부에서 어떠한 이벤트가 발생하였을 때 대응하는 것을 의미한다. 당연한 이야기이지만 Reactive Programming이란 Reactive한 방식으로 프로그래밍하는 것을 의미한다. Duality(쌍대성) 쌍대성(雙對性; duality)은 수학과 물리학에서 자주 등장하는 표현이다. 보통 어떤 수학적 구조의 쌍대(雙對; dual)란 그 구조를 '뒤집어서' 구성한 것을 말하는데,.. [MVC] Servlet vs JSP vs MVC패턴 - 3 이번 장부터는 Servlet, JSP, MVC 패턴의 차이에 대해서 알아본다. 글의 하단부에 참고한 강의와 공식문서의 경로를 첨부하였으므로 자세한 내용은 강의나 공식문서에서 확인한다. 모든 코드는 깃허브(링크)에 올려두었다. Servlet vs JSP vs MVC 패턴 - 1(링크)와 Servlet vs JSP vs MVC 패턴 - 2(링크)을 통해서 순수 Servlet과 JSP로 개발한 애플리케이션의 한계에 대해서 알아보았다. JSP의 도입으로 순서 서블릿의 단점은 어느정도 보완이 되었으나 여전히 JSP 파일 하나가 너무 많은 책임을 가진다는 한계점이 존재하였다. 이번 장에서는 JSP의 한계점인 "JSP 파일 하나가 너무 많은 책임을 가진다"라는 문제점을 MVC 패턴을 사용하여 해결해본다. 사용되는 M.. [MVC] Servlet vs JSP vs MVC패턴 - 2 이번 장부터는 Servlet, JSP, MVC 패턴의 차이에 대해서 알아본다. 글의 하단부에 참고한 강의와 공식문서의 경로를 첨부하였으므로 자세한 내용은 강의나 공식문서에서 확인한다. 모든 코드는 깃허브(링크)에 올려두었다. Servlet, JSP, MVC 패턴의 차이에 대해서 알아본다. 이번 장에서는 JSP를 사용하여 애플리케이션을 개발해본다. 사용되는 Member와 MemberRepository 클래스는 이전에 작성한 Servlet vs JSP vs MVC 패턴 - 1(링크)를 참고한다. JSP를 사용한 애플리케이션 개발 JSP를 사용하기 위해선 두 개의 의존성을 추가해야한다. build.gradle의 dependencies 경로에 아래의 의존성을 추가한다. implementation("org.apa.. [MVC] Servlet vs JSP vs MVC 패턴 - 1 이번 장부터는 Servlet, JSP, MVC 패턴의 차이에 대해서 알아본다. 글의 하단부에 참고한 강의와 공식문서의 경로를 첨부하였으므로 자세한 내용은 강의나 공식문서에서 확인한다. 모든 코드는 깃허브(링크)에 올려두었다. Servlet, JSP, MVC 패턴의 차이에 대해서 알아본다. 이번 장에서는 Servlet을 사용해 본다. 세가지 방식에서 사용될 Member클래스와 MemberRepository클래스다. Member import static lombok.AccessLevel.PRIVATE; @Getter @Setter @NoArgsConstructor(access = PRIVATE) public class Member { private Long id; private String username;.. [MVC] HttpServletResponse 이번 장에서는 HttpServletRequest(링크)에 이어 HttpServletResponse에 대해서 알아본다. 글의 하단부에 참고한 강의와 공식문서의 경로를 첨부하였으므로 자세한 내용은 강의나 공식문서에서 확인한다. 모든 코드는 깃허브(링크)에 올려두었다. HttpServletRequest는 HTTP 메시지를 파싱하여 개발자가 사용하기 용이하게 변경해주었다. HttpServletResponse는 개발자가 HTTP 응답코드를 지정하고 헤더와 바디를 생성하면 HTTP 응답 메시지 생성해준다. 기본적인 사용법 응답 메시지의 Content-Type을 지정할 수 있다. Cookie값과 유효기간을 지정할 수 있다. 페이지를 Redirect시켜 다른 페이지로 사용자를 이동시킬 수 있다. @WebServlet(.. [MVC] HttpServletRequest 이번 장에서는 자바 서블릿(링크)에 이어 HttpServletRequest에 대해서 알아본다. 글의 하단부에 참고한 강의와 공식문서의 경로를 첨부하였으므로 자세한 내용은 강의나 공식문서에서 확인한다. 모든 코드는 깃허브(링크)에 올려두었다. HttpServletRequest 역할 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신 파싱하여 HttpServletRequest 객체를 생성한다. 우리는 클라이언트가 보낸 HTTP 요청을 확인하는 것이 아니라 서블릿이 요청을 토대로 생성한 HttpServletRequest를 가지고 개발을 진행하면 된다. HTTP 요청 메시지 POST /save HTTP/1.1 Host: localhost:8080 Content-Type: applic.. 이전 1 ··· 12 13 14 15 16 17 18 ··· 23 다음