분류 전체보기

@PathVariable, @RequestParam, @ModelAttribute HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form쿼리 파라미터, HTML From 1. request.getParameter() HttpServletRequest 의 request.getParameter() 를 사용하면 다음 두가지 요청 파라미터를 조회할 수 있다. GET, 쿼리 파라미터 전송 POST, HTML Form 전송 @RequestMapping("/rmystudylog.tistory.com@ModelAttribute 사용시 역직렬화요청 객체 클래스에 아래 Lombok이 없다면 역직렬화가 되지 않아 값이 제대로 들어오지 않는다.@AllArgsConstructor@NoArgsConsturctor + @Se..
Spring이 대신 객체 생성Spring Bean: 개발자가 직접 객체 생성한게 아니라 Spring 이 대신 객체 생성 주입 해주는 단위Singletone 싱글톤: 싱글톤 객체를 Spring의 ApplicationContext이 대신 만들어서 주입Spring Bean이 싱글톤으로 관리되는 이유대규모 엔프라이즈 서버 환경을 서버 하나당 최대로 초당 수십, 수백 번씩 브라우저나 여러 시스템으로부터 요청을 받아 처리할 수 있는 높은 성능이 요구되는 환경Spring MVC 구조에 따라 하나의 요청에 대한 응답을 만들기까지, 데이터 액세스 로직, 서비스 로직 등의 다양한 기능을 담당하는 객체들이 모두 참여하는 계층형 구조이다.결과: 요청이 올때마다 각 로직을 담당하는 객체를 새로 만들어서 사용한다면 서버에 엄청난..
Spring MVC에서 HandlerAdapater가 필요한 이유 위 사진은 Spring MVC 구조이다. 여기서 다른 건 다 알겠는데 왜 Handler Adapter 존재 이유에 대해 궁금해졌다.V4구조 처럼 프론트 컨트롤러에서 요청에 대한 매핑 정보를 가져온 후 바로 해당 컨트롤러를 호출하면 되지 않나?HandlerAdapater가 없다면아래 코드는 HandlerAdapter가 없는 프론트 컨트롤러이다. 우리가 사용할 컨트롤러를 `controllerMap`에 저장해 두었다가 사용한다.@WebServlet(name = "frontControllerServletV4", urlPatterns = "/front-controller/v4/*")public class FrontControllerServletV4..
@Controller요청을 받아, 그에 대한 처리 뒤, 응답을 반환 Front Controller (Servlet)요청을 받아, Spring에게 처리를 위임 한뒤, 응답을 반환 DispathcerServlet 구현체HandlerMapping: 요청에 해당하는 처리메서드가 존재하는지 검색 (전화번호부)HandlerAdapter: Spring 에게 처리를 위임? (이 구현체가 요청에 맞는 컨트롤러를 호출한다)HandlerMapping 은 아래 HandlerAdapters 모두 순회하며 적합한 HandlerAdapter 검색protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException { if (this.handlerA..
Tomcat + Spring 상세 구조애니메이션으로 이해하는 Spring 동작 원리1. Tomcat 의 Servlet Container유저의 요청에 따라 Servlet(Front Controller) 할당유저의 요청에 따라 스레드를 할당하고, 모든 스레드는 단일 DispatcherServlet으로 사상된다. 2. Spring의 Spring ContainerDispathcerServlet요청에 따라 Spring Controller 할당 Spring Container = Servlet WebApplicationContext + Root WebApplicationContext 1) Servlet WebApplicatoinContext서블릿에서만 이용되는 Bean에 대한 ContextDispatcherServl..
Tomcat + Spring 간단 구조Tomcat + Spring 구조는 위와 같다 = JAR(JVM) + Tomcat(Servlet) + Spring(Controller) 💡Spring Boot가 유저의 요청(Request)받고 -> 작업(Processing) 후 -> 응답(Response) 반환하는 절차1. Request: 수많은 요청들을 Request Queue에 적재2. Processing: Request Queue에서 하나를 가지고 수행 후3. Response: 결과를 반환이 설명만으로는 스프링 MVC가 어떻게 요청을 받고 작업하고 응답하는지 모름 (심화) 설명을 통해 자세히 알아보자 심화) Tomcat + Spring 실제 동작 과정위에서 설명된 요청 -> 작업 -> 응답 절차를 Spring..
김영한 강사님 "스프링 mvc" 내용 정리 + Java의 정석 일부 포함프로세스와 쓰레드포스팅 글 참고 [ASAC 6기] 프로그램, 프로세스와 스레드✅프로그램 VS. 프로세스프로그램: 정적, 실행 가능한 파일 형태프로세스: 실행된 프로그램, cpu와 메모리 할당받아서 프로그램이 실행된 형태 ✅프로세스 VS. 스레드프로세스: 실행단위가 크고 +mystudylog.tistory.com멀티 쓰레딩의 장점도스(DOS)와 같은 OS는 한번에 한가지 작업만 수행 가능.윈도우와 같은 멀티태스킹이 가능한 OS는 동시에 여러 작업 수행 가능CPU의 사용률을 향상시킨다.자원을 보다 효율적으로 사용할 수 있다.사용자에 대한 응답성이 향상된다.작업이 분리되어 코드가 간결해진다.메신저로 채팅하면서 파일을 다운로드 받거나 음성 ..
웹 앱 개발에서 서블릿 컨테이너 사용웹 브라우저는 HTTP라는 프로토콜을 사용하여 네트워크를 통해 서버와 통신한다.서블릿은 의미 있는 비즈니스 로직 외 모든 걸 지원서블릿: 서블릿 컨테이너와 직접 상호작용하는 자바 객체위 사진에서 초록색 부분만 의미 있는 비즈니스 로직이다.나머지는 HTTP메시지를 처리하 위해 수행해야하는 반복적인 작업이다.HTTP를 이해하고 HTTP 요청과 응답을 자바 앱으로 변환하는 역할을 하는 것이 서블릿 컨테이너, 이며 자바 앱이 HTTP 메시지를 변환하는 역할을 한다.서블릿 컨테이너를 사용하면 자바 앱은 통신 계츨을 구현할 필요가 없다. 가장 널리 알려진 구현체 중 하나는 톰캣(Tomcat)이다.실제 앱에서 사용되는 솔루션은 다양하다. 제티(Jetty), 제이보스(Jboss), ..
WAS와 WS의 차이점은 "웹 풀스택" 카테고리에 가면 설명이 있으니 참고 프로젝트를 하다가 "스프링부트는 웹 서버 내장하고 있는데 nginx 같은 웹 서버를 따로 사용해야할까요?"라는 질문을 받았다. 결론부터 말하자면api통신 시: WS필요 없음서버에서 페이지 반환 해야하는 상황이라면: 필요할 수도 있음 (대량의 트래픽이 오고간다면) 이 질문에 나도 대답을 하지 못해서 인프런의 갓영한님의 "스프링 MVC 1편"에 해당 내용에 대해 언급한게 있어서 해당 강의를 보고 내용을 정리해보고자 했다.WAS만 사용할 경우 WAS가 하는 일은 다음과 같다동적 파일 제공정적 리소스 제공애플리케이션 로직 실행여기서 알 수 있듯이 WAS가 정적 리소스도 제공한다는 사실이다.html, css, js, 이미지 같은 정적 리소..
hapBday
'분류 전체보기' 카테고리의 글 목록 (5 Page)