목록Spring/(김영한님)스프링 MVC 1편 - 백엔드 웹 개발 핵심기술 (11)
개발일기

HTTP 요청 메시지 - 단순 텍스트 Http message body에 데이터를 직접 담아서 요청 해당 방식으로는 JSON, XML, TEXT 주로 JSON형식을 사용한다. POST, PUT , PATCH, DELETE package hello.springmvc.basic.request; import jakarta.servlet.ServletInputStream; import jakarta.servlet.ServletRequest; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframew..
스프링 부트 로깅 라이브러리 스프링 부트 로깅 라이브러리를 사용하기 위해서build.gradle 에다가 dependencies에 spring-boot-starter-logging을 포함해야 사용할 수 있다. 새롭게 알게 된 지식은 Logback, Log4J, Log4J2 등등 수 많은 라이브러리들이 있는데, 그것을 통합해준 것이 sl4j라이브러리이다. 인터페이스는 sl4j이고, 구현체는 Logback과 같은 로그 라이브러리를 선택하면 된다. private final Logger log = Loggerfactory.getLogger(getClass()); @Slf4j : 롬복 사용 가능 추가적으로 좀 더 알게 된 사실은 log.info()로 호출하는 것과 System.out.println()사용하면 차이점..

V3 시작하기에 앞서 V3의 구조부터 살펴보자 해당 구조는 V3의 구조이며 기존에 MyView구조에서 ModelView 구현 클래스와 viewResolver가 추가되었다. 이때, ModelView를 사용하면 기존에 request.setAttribute를 통해 호출하던 부분을 Servlet종속성을 제거하여 View에 객체를 전달할 수 있다. 이제 부터 코드를 살펴보자. ModelView package hello.servlet.web.frontcontroller; import java.util.HashMap; import java.util.Map; public class ModelView { private String viewName; private Map model = new HashMap(); publi..

프론트 컨트롤러 패턴 소개 dispatcherServlet의 역할을 해주는 프론트 컨트롤러를 만들어보며 SpringMVC의 큰그림을 그려보자..! 프론트 컨트롤러 도입 전, 우리는 각각의 RequestDispatcher를 통한 forward해주는 공통 코드를 계속해서 중복적으로 만들어주어야 했다. 이러한 부분들을 개선해보자. 여기서 강의에서 꿀팁은 준위 (레벨별) 비슷한 코드끼리 먼저 리팩토링해서 바꾸는게 중요하다고 했다. 그렇다면 구조적인 부분부터 먼저 바꾸고 세밀한 부분은 추후에 개선하는 방향으로 코드를 수정해야한다. 전에 만들었던 코드는 각각의 코드가 따로 따로 호출되어 ControllerA, B , C 를 호출하여 View보여주었다. 프론트 컨트롤러를 도입하면 화면의 그림처럼 공통 코드를 걸쳐서 ..

웹사이트 View 무언가를 띄워서 보여줄 수 있도록 코드를 작성할 것이다. 이 때, 회원이 등록하면 리스트로 보여질 수 있도록 코드를 작성하였는데.. 지금은 JSP도 안쓰는 시대이지만, 해보니 JSP가 선녀였다. form-servlet이다. package hello.servlet.web.servlet; import hello.servlet.domain.member.MemberRepository; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest;..
사실 서블릿을 사용하는 경우는 없을 것 같다. 지금은 Spring boot를 사용하여 간단하게 설정을 하고 MVC패턴을 사용할 수 있기 때문이다. 우선 Servervlet을 사용하기 위해서는 @WebServlet(name="", urlPatterns = "") 이 들어간다. urlPatterns는 localhost:8080/ -> 이 뒤에 붙어오는 url의 문자열을 지정해주는 것이 urlPatterns이다. 또한 상속을 HttpServlet으로 해주어야 한다. 이 때, 상속받아서 사용하는 메소드는 service라는 메소드이다. 예시의 코드는 아래와 같다. package hello.servlet.basic.request; import jakarta.servlet.ServletException; import..
자바 웹 기술 역사 서블릿 - 1997 HTML 생성이 어려움 JSP - 1999 HTML 생성은 편하지만, 비지니스 로직까지 너무 많은 역할 담당 서블릿, JSP 조합 MVC 패턴 사용 모델, 뷰 컨트롤러로 역할을 나누어 개발 MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~2010년 초 MVC패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원 스트럿츠, 웹워크, 스프링 MVC(과거 버전) 서블릿이 나온 이유는 TCP/IP연결하고 , 멀티스레드 공부하는 것이 좀 어려움 그래서 서블릿이라는게 나온다. 하지만 서블릿은 자바 코드로 작성해야한다. 이러한 서블릿은 HTML을 작성하는게 굉장히 어렵다. 그래서 이러한 문제를 해결하고자 JSP가 나온다. JSP는 HTML도 너무 쉽게 ..

정적 리소스 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공 주로 웹 브라우저 ex) /hello.html 달라고 요청이 온다. => web Server에서는 이미 생성된 /폴더/web/hello.html같은 이미 생성된 파일을 제공을 한다. 주로 웹브라우저들에서 요청을함. HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹 브라우저 : HTML 해석 예를 들어서) 주문내역을 보여주세요라고 하면 애플리케이션 로직을 수행할 수 있는 WAS가 데이터베이스를 통해서 주문 정보를 조회한 다음에 이거를 동적으로 HTML 생성해야된다. 이런 것을 ViewTemplate이라고 한다. 주문 정보를 조회한 데이터랑 프로그램 코드를 넣어서 HTML을 동적으로 생성을 한 다음에 동적으로 생성이..