스터디/Spring37 Spring MVC 패턴 옛날 옛적에... MVC 패턴 이전에는 하나의 서블릿과 JSP만으로 비즈니스 로직과 뷰 로직을 모두 처리하였다. 이렇게 하게 되면, 한 서블릿이나 JSP이 너무 많은 역할을 담당하게 되고, 이는 곧 유지보수의 어려움으로 이어진다. 따라서, MVC 패턴이라는 것을 만들었다. MVC 패턴 등장 MVC 패턴은 하나의 서블릿이나, JSP로 처리하던 것을 컨트롤러(Controller)와 뷰(View)라는 영역으로 서로 역할을 나눈 것을 말한다. 컨트롤러(Controller) : HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 그리고 뷰에 전달한 결과 데이터를 조회해서 모델에 담는다. 모델 : 뷰에 출력할 데이터를 담아둔다. 뷰 : 모델에 담겨있는 데이터를 이용해 화면을 그린다. 뷰는 모델이.. 2023. 3. 30. 쓰레드 풀을 이용한 쓰레드 관리 최근에 계속 쓰레드에 관해서 공부하고 있다. 이번에는 Servlet 관점에서 보는 쓰레드 관리에 관하여 포스팅 하겠습니다. 먼저, Servlet 관점에서의 쓰레드를 보기 전에 웹의 요청 및 응답 흐름에 대해서 간단히 살펴보도록 하겠습니다. 먼저, 위 그림은 클라이언트에서 서버로 HTTP 요청을 보내고 서버는 이에 대한 응답을 주는 사진입니다. 과정을 정리해보자면, HTTP 요청시 WAS는 Request, Response 객체를 새로 만들어서 서블릿 객체 호출합니다.개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용한다.개발자는 Response 객체에 HTPP 응답 정보를 편리하게 입력한다.WAS는 Response 객체에 담겨있는 정보로 HTTP 응답 정보를 생성한다. 2~3번에서.. 2023. 3. 26. ResponseEntity에 관하여 ResponseEntity를 공부하게 된 계기 HTTP에 대해서 공부를 하던 중 불연듯 이런 생각이 들었습니다. 'HTTP에대해서 배웠는데, 나는 객체 그러니깐 BODY밖에 전송해본적이 없네 내가 Headers와 Status Line을 따로 만들어야 하는 건가?' 객체를 클라이언트에게 @ResponseBody를 사용해 JSON형식으로 전송할 줄은 알고있었지만, 한번도 Headers나 Status Line의 정보들을 직접 다뤄서 클라이언트에게 전송해본 적은 없었습니다. HTTP 정리(1) (tistory.com) 그렇다면 이러한 것들을 전송할 수 있는 방법은 어떤 것이 있을까?? ResponseEntity의 사용 목적 ResponseEntity는 HTTP 스펙에 맞춰서 메세지 응답을 하기위해서 만들어진 클.. 2022. 12. 2. @Builder를 이용해 Entity <=> DTO 변환하기! @Builder를 알아보기 전에 빌더 패턴에 대해서 알아보겠습니다. 빌더 패턴은 새로운 객체를 만들어내는 방법 중 하나인데, 새로운 객체를 만들어내는 방법은 점층적 생성자 패턴, 자바 빈즈 패턴 그리고, 빌더 패턴등이 있습니다. 먼저, 생성자를 통해 새로운 객체를 만드는 방법을 알아보겠습니다. 클래스용 점층적 생성자 패턴 사용 public class Person { private final int age; private final String name; private final int height; private final int weight; private final String academicBackground; public Person(int age, String name){ this(age,nam.. 2022. 12. 1. [김영한님 스프링 핵심원리] request scope request scope에 대해 알아보기 위해서, 로그를 찍어보는 간단한 예제를 만들겠습니다. @Component @Scope(value="request") public class MyLogger { private String uuid; private String requestURL; public void setRequestURL(String requestURL){ this.requestURL = requestURL; } public void log(String message){ System.out.println("[" + uuid + "]" + "[" + requestURL + "]" + message); } @PostConstruct public void init() { uuid = UUID.rand.. 2022. 11. 5. [김영한님 스프링 핵심 원리] 빈 스코프 스프링에서 지원하는 스코프 싱글톤 : 기본스코프로 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토 타입 : 스프링 컨테이넌느 프로토타입 빈의 생성과 의존관계 주입가지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 싱글톤 public class SingletonTest { @Test void singletonBeanFind(){ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); System.out.println("초기화 끝"); SingletonBean bean1 = ac.getBean(SingletonBean.class); Sin.. 2022. 11. 3. 이전 1 2 3 4 5 ··· 7 다음 728x90