SPRING(31)
-
로그
로그? 로깅?말 그대로 기록이다. 로깅은 기록을 남기는 행위이다. 목적로깅은 왜 할까?유지보수 : 로그를 통해 앱 상태를 보다 빠르게 파악. 해결할 수 있다모니터링 : 비정상적인 동작이 로그라는 형태로 가시화 된다. 찾기 쉬워진다.디버깅 : 개발 중 발생한 오류 원인 추적이 쉬워진다. 로깅 레벨로깅 레벨은 크게 아래와 같이 나뉜다.trace : 가장 상세한 로그. 이 기록이 어디서 어떤 동작으로 통해 이루어졌고, 이 동작을 위해 어떤 내부 동작이 수행됐는지 파악할 수 있다. 정보량이 너무 크고 가시성이 떨어지는 것이 단점이다.debug : 디버깅 목적으로 사용된다.info : 시스템의 일반적 동작을 기록한다. 운영 단계에 사용한다.warn : 말 그대로. 주의가 필요함을 알려준다. 시스템은 돌아간다.er..
2024.08.27 -
HttpServletRequest - sendError()
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String requestURI = req.getRequestURI(); ControllerV2 controller = controllerMap.get(requestURI); if (controller == null) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); } MyView view = controller.process(req, resp); view.render(req, resp);} 상황이상한 uri로 요청이 ..
2024.08.21 -
jsp - 올바른 경로의 jsp를 찾지 못함.
로그 내용2024-08-21T18:40:59.170+09:00 WARN 22444 --- [_basic_2_servlet] [nio-8080-exec-1] o.s.w.s.r.ResourceHttpRequestHandler : "Path with "WEB-INF" or "META-INF": [servlet-mvc/members/WEB-INF/views/new-form.jsp]" 상황올바른 경로의 jsp 파일에 접근하지 못함. 시도1. 입력한 Path - 문제 없음.2. 물리적 경로 - WEB-INF 등의 디렉토리, 파일명. 문제 없음.3. WEB-INF 관련 조사 - 문제 없음.. 알게된 것하나. 'WEB-INF' 하위 디렉토리에 있는 jsp 파일은 dispatcherservlet을 통해서만 접근 가능함..
2024.08.21 -
MVC 패턴 - FrontController?
MVC패턴?Model, View, Controller 의 3계층으로 나눈 패턴이다. Model - 상태, 동작을 수행하고 데이터 전송, 주요 임무로 하는 계층. 컨트롤러에서 담고, view에서 참조한다.View - 클라이언트에게 컨텐츠를 시각화해주는 계층Controller - 흐름 제어, 수문장 역할을 해주는 계층 이다. 적절한 Model, View를 선택한다. 계층을 나눈 이유?1. 하나로 뭉쳐두면, 역할도 책임도 불분명하다.2. 유지보수가 정말 복잡하고 번거롭고 짜증난다. mvc 패턴은 크게 1,2로 나뉜다. MVC 패턴1컨트롤러가 클라이언트에서 받아온 데이터를 Model에 담고View 에서 해당 Model 을 참조하여 시각화하여,클라이언트에게 응답하는 패턴이다. 요청을 처리하고 전송하는 Model..
2024.08.21 -
Provider
Spring bean Scope 중, web 에 사용되는 Scope (request, session 등)가 존재한다. request 의 경우, 클라이언트에서 요청이 들어와서 response 될 때 까지의 라이프 사이클을 갖는다. 그러나, 프로그램 실행 후 스프링 빈을 생성, 초기화하는 단계에서 request Scope는 존재할 수 없다. 요청이 들어와야 생성되기 때문이다. 이에 따라, bean 초기화 시점이 어긋나 에러가 발생한다. 이를 해결하기 위해서는, 해당 bean 이 생성 시기를 지연시켜야 한다. Provider 는 제네릭 클래스로, 개발자가 입력한 매개타입 를 검색할 수 있다.이 프로바이더를 request 스코프 빈 wrapper 로 사용하고, bean으로 취급한 후, 사용 시점에 getObej..
2024.08.19 -
WAS
WS (Web Server)목적 : 정정 리소스 전달설명 : 이미지, HTML, CSS, JavaScript, 텍스트 등 자원을 전달주는 서버 WAS (Web Application Server)목적 : 동적 처리설명 : 정적 처리와 더불어, 다양한 요청을 처리하고 다양한 응답으로 응답할 수 있는 (상호작용 가능한) 서버 Spring 에는 Tomcat Server 가 내장 돼 있으며, 멀티 쓰레드 환경으로, Thread 와 Thread Pool 에 대한 초기값이 설정 돼 있어, 동시성 문제를 어느 정도 알아서 처리해준다. 최적화 등은 개발자가 설정값을 새로 줘야 하니 유의.
2024.08.11