전체 글 150

[Spring] WebUtils 사용하기

Spring MVC를 다룰 때, 요청에 딸려오는 값들을 처리할 때 유용한 ServletRequestUtils 와 더불어 하나 더 유용한 클래스가 있는데, 바로 WebUtils 입니다. WebUtils 클래스를 사용하면 Session에 담겨있는 객체들을 보다 짧은 코드로 넣고 빼고 할 수 있으며, 세션 객체나 쿠키 객체를 받아올 수 있습니다 원래는 다음과 같이 Request 객체를 직접 통해서 Session 객체에 접근해야 했습니다.. 1 UserSession userSession = (UserSession) request.getSession().getAttribute("userSession"); cs 그러나 Spring의 WebUtils를 사용하면 . 을 두 개 사용하여 길게 가지 않아도 됩니다. 1 U..

Spring Framework 2021.06.23

[Spring] Bean 등록 어노테이션 @Component, @Configuration, @Bean 차이

@Component 와 @Configuration은 큰 차이는 없습니다. @Configuration의 내부를 살펴보면 @Component가 정의되어 있습니다. 따라서 @Component와 @Bean을 비교하는 것이 맞습니다. 우선적으로, 개발자가 직접 작성한 클래스에 대하여 @Component는 위와 같이 bean으로 등록 할 수 있습니다. 반대로 라이브러리 혹은 내장 클래스등 개발자가 직접 제어가 불가능한 클래스의 경우 @Configuration + @Bean 어노테이션을 이용하여 bean으로 등록하여 사용하면 됩니다. 정리 @Component - 개발자가 직접 작성한 클래스를 bean 등록하고자 할 경우 사용 @Configuration + @Bean - 외부라이브러 또는 내장 클래스를 bean으로 등..

Spring Framework 2021.06.23

[Web] Web Server(웹서버, 아파치) 와 WAS(톰캣) 이해하기

1. 웹 서버와 WAS(web Application Server) 웹 서버는 정적인 컨텐츠(html,css,js)를 제공하는 서버 ex) Apache, Nginx WAS 는 DB조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버 ex) Tomcat, jeus 즉 웹서버와 WAS의 차이는 어떤 타입의 컨텐츠를 제공하느냐의 차이이다. 웹 서버와 WAS는 각각 독립적으로 존재할수 있다. 대부분의 WAS는 정적인 컨텐츠를 제공해주고 있기 때문에, 웹서버 없이 WAS만 존재할수 있다. 그래서 WAS는 웹 서버를 포함하는 개념이라고 생각해도 될 것같다. WAS 자체로 웹서버의 역할을 수행하기 때문에 무조건적으로 웹서버를 앞단에 두어야할 이유는없다. 그런데 일반적으로 웹서버를 WAS 앞단에 배치하게 되..

WEB 2021.06.23

[Spring] 스프링 설정 - web.xml, root-context.xml, servlet-context.xml 역할

web.xml web.xml은 설정을 위한 설정 파일이다. WAS가 처음 구동 될때 web.xml을 읽어 웹 어플리케이션 설정을 구성한다. DispatcherServlet을 등록해주면서 스프링 설정파일을 지정한다. DispatcherServlet은 초기화 과정에서 지정된 설정파일을 이용해 스프링 컨테이너를 초기화 시킨다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherS..

Spring Framework 2021.06.23

[Spring] Dispatcher-Servlet 이란?

1. Dispatcher-Servlet의 개념 Servlet Container에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일앞에 둬서 중앙집중식으로 처리해주는 프론트 컨트롤러(Front Controller) 위의 말을 설명하자면, 클라이언트로부터 어떠한 요청이 오면 Tomcat(톰캣)과 같은 서블릿 컨테이너가 요청을받는데, 이때 제일 앞에서 서버로 들어오는 모든 요청을 처리하는 *프론트 컨트롤러 를 Spring에서 정의하였고, 이를 Dispatcher-Servlet이라고 한다. 그래서 공통처리 작업을 Dispatcher 서블릿이 처리한후, 적절한 세부 컨트롤러로 작업을 위임해준다. 물론 Dispatcher-Servlet이 처리하는 url 패턴을 지정해 주어야 하는데, 일반적으..

Spring Framework 2021.06.23

[JSP] 서블릿(Servlet)이란?

1. Servlet(서블릿) 서블릿을 한줄로 정의하자면 아래와 같다. 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해서, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술이다. 그런데 좀더 들어가서 설명하면 클라이언트가 어떤 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램이다. 예를 들어, 어떠한 사용자가 로그인을 하려고 할때 사용자는 아이디와 비밀번호를 입력하고, 로그인 버튼을 누릅니다. 그때 서버는 클라이언트와 아이디와 비밀번호를 확인하고, 다음페이지를 띄워주어야 하는데 이러한 역할을 수행하는 것이 바로 서블릿(Servlet)입니다. 그래서 서블릿은 자바로 구현된 *CGI..

JAVA/JSP 2021.06.23

[Spring] 필터(Filter)란 무엇인가?

필터(Filter)란 무엇일까? HTTP 요청과 응답을 변경할수 있는 재사용 가능한 코드.(서블릿 2.3규약에 새롭게 추가됨) 필터는 객체의 형태로 존재하며 클라이언트로부터 오는 요청(Request)과 최종자원(서블릿/JSP)사이에 위치하며, 클라이언트의 요청정보를 알맞게 변경할수 있으며, 또한 필터는 최종 자원과 클라이언트로 가는 응답(Response) 사이에 위치하여 최종 자원의 요청 결과를 알맞게 변경할수 있다. 그림으로 보면 자원이 받게되는 요청 정보는 클라이언트와 자원사이에 존재하는 필터에 의해 변경된 요청정보가 되며, 클라이언트가 보게되는 응답정보는 클라이언트와 자원사이에 존재하는 필터에 의해 변경된 응답정보가 된다. 필터는 클라이언트와 자원사이에 1개가 존재하는 경우가 보통이지만, 여러개의 ..

[HTTP] 쿠키/세션/캐시의 차이점은?

0. HTTP의 특징 (1) Stateless 프로토콜 클라이언트의 상태 정보를 가지지않는 서버 처리 방식. 클라이언트와 첫번째 통신에서 데이터를 주고 받았다고 해도, 두번째 통신에서 이전 데이터를 유지하지 않음. (2) Connectionless 프로토콜 클라이언트가 서버에 요청(Request)를 했을때, 그요청에 맞는 응답(Response)을 보낸후 연결을 끊는 처리방식. But ,실제로는 사이트에서 데이터 유지가 필요한경우가 많다. 정보가 유지되지않으면 , 페이지를 이동할대마다 로그인을 다시하거나, 쇼핑몰의 경우 장바구니를 담아도 데이터가 다날라가기때문이다. 따라서, 이런 상황을 대처하기위해 쿠키와 세션을 사용한다. 쿠키와 세션의 차이점은 크게 상태정보의 저장 위치이다. 쿠키 - 클라이언트(로컬 =..

WEB 2021.06.22

[Spring] 스프링에서의 필터 개념및 예제

Filter란? 필터는 스프링의 독자적인 기능이 아닌 자바 서블릿에서 제공하는 기능이다. 스프링 프레임워크에서 필터로 인증등 다양한 작업을 하는데 최근 xss 공격방어를 하며 필터를 사용해봣기에 공부겸 블로그에 작성해보겠다 위 그림은 스프링 필터와 연관지어 검색하면 많이 보이는 그림중 하나이다. 스프링 프레임워크에서 요청에 대한 라이프 사이클을 나타낸그림이다. 스프링 프레임워크는 들어온 요청이 DispatcherServlet에 의해 컨트롤러에 매핑이된다. Filter는 요청이 DispatcherServlet에 의해 다뤄지기 전,후에 동작한다. 또한 Filter는 FilterChain(필터 체인)을 통해 여러 필터가 연쇄적으로 동작하게 할수 있다. 그럼 Filter는 어디에 쓰이나? 필터는 주로 요청에 대..

[HTML] 웹표준 코딩 용어 GNB, LNB, SNB, FNB 네비게이션 클래스명 이름 종류와 차이

GNB ( Global Navigation Bar ) 사이트 전체에 동일하게 적용되는 최상위 전체 공통네비게이션. 메인메뉴, 대분류 메뉴, 전체 사이트에서 사용되는 공통메뉴바 LNB ( Local Navigation Bar ) GNB 메뉴의 서브 메뉴형식으로 나오는 형태의 네비게이션. 서브메뉴, 중분류 메뉴, 각 서브분류 별 사용되는 특정 지역으로 가는 네비게이션 바 SNB ( Side Navigation Bar ) 일반적으로 왼쪽에 많이 위치해있으며 메인메뉴, 서브메뉴를 제외한 나머지 사이드메뉴, 기타메뉴바 FNB ( Foot Navigation Bar ) 하단메뉴, 하단로고, 주소, 카피라이팅 영역

HTML 2021.06.19