전체 글 188

스프링 인터셉터(Interceptor) 란 ?

Interceptor (인터셉터)Spring 이 제공하는 기술로써, 디스패처 서블릿(Dispatcher Servlet) 이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공한다. 즉, Web Container (Servlet Container) 에서 동작하는 Filter 와 달리 Interceptor 는 Spring Context 에서 동작하는 것이다.디스패처 서블릿은 Handler Mapping 을 통해 적절한 컨트롤러를 찾도록 요청하는데, 그 결과로 실행 체인(HandlerExecutionChain) 을 돌려준다. 그래서 이 실행 체인은 1개 이상의 Interceptor 가 등록되어 있다면 순차적으로 Interceptor 들을 거쳐 컨트롤러가 실행되도록 하고, Int..

카테고리 없음 2024.05.10

스프링 Filter 란?

FilterFilter 는 디스패처 서블릿(Dispatcher Servlet) 에 요청이 전달되기 전/후 에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 잇는 기능을 제공한다. 디스패처 서블릿은 Spring 의 가장 앞단에 존재하는 FrontController 이므로, Filter 는 Spring 범위 밖에서 처리가 되는 것이다.즉, Spring Container 가 아닌 Tomcat 과 같은 Web Container (Servlet Container) 에 의해 관리가 되는 것이고 (Spring Bean 으로 등록은 된다), 디스패처 서블릿 전/후 에 처리하는 것이다. 이러한 과정을 그림으로 표현하면 다음과 같다.     Filter 의 메서드Filter 를 추가하기 위해서는 javax.s..

카테고리 없음 2024.05.10

스프링 AOP 란?

AOP (Aspect Oriented Programming, 관점 지향 프로그래밍 )관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 예를 들어, 핵심적인 관점은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이 된다.또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP 에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다.이때, 소스 코드상에서 다른 부분에 계속 반복해서 쓰는 코드들을 발견할 수 있는 데 이것을 ..

카테고리 없음 2024.05.10

스프링 프레임워크 05) Spring Core

Spring Core 란? - Spring ContainerSpring 프레임워크의 근간이 되는 요소로 DI, IoC 기능을 지원하는 영역을 담당한다빈 저장소를 기반으로 빈 클래스들을 제어할 수 있는 기능을 지원하기도 한다빈 저장소의 경우, IoC 패턴이 적용되어 객체 구성부터 의존성 처리까지 모든 일을 처리하는 핵심적인 역할을 한다 Container 는 개발자를 대신하여 Bean 을 생성/관리/제거 한다추가로 독립적인 코드를 어노테이션 (@Bean) 으로 넘겨주면 Container 가 알아서 호출해준다 Container 가 개발자를 대신하여 메서드(코드)를 호출 및 필요한 자원을 전달하는 설계 구조를 IoC(Inversion Of Container / 제어 반전)이라고 한다. IoC 는 메서드가 필요로..

카테고리 없음 2024.04.29

스프링 프레임워크 02) 환경 설정

1. JDK 11 버전 설치  jdk 환경 변수 설정    2. STS3 설치  https://spring.io/tools Spring | Tools spring.io   이클립스 설치한 상위 폴더에 압축해제  필요한건 이 폴더이다다른 파일은 지워도 상관없다 STS.ini 환경설정 설정 파일에서 -vmjdk 경로 설정 (javaw.exe)   이후 STS.exe 파일 실행하면 된다    3. 환경설정 (Preferences)      4. 서버 등록          tomcat admin port 설정 후 서버 실행해서 테스트 해보기   5. Spring Legacy Project 설정현재 STS3 에서 저장소로부터 다운로드 하는 작업이 지원되지 않고있다따라서 수동으로 설치하는 작업이 필요하다  spri..

Spring/공부 2024.04.29

스프링 프레임워크 01) 프레임워크란 ?

FRAMEWORK 란작업에 필요한 여러가지 것들을 따로 직접 구할 필요없이 FRAME 내에서 가져와서 쓸 수 있도록 제공하는 틀 FRAMEWORK / LIBRARY / API 차이-능동/수동Utility Position개발자 PositionFRAMEWORK능동제작을 의뢰조건 제공LIBRARY수동직접 도구를 사용해서 제작직접 사용API능동프로그램간(or 시스템-프로그램 간) 연결통신  SPRINGFRAMEWORK 란Java 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크 핵심기능설명의존성 주입(Dependency Injection, DI)Spring 은 객체 간의 의존성을 주입하는 기능을 제공한다. DI 를 통해 객체 간의 결합도를 낮추고 코드의 유연성을 향상시킨다.제어의 역전 (Inversion of C..

Spring/공부 2024.04.29

빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Compile)

빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Compile) 서버에 기능을 추가 하려면 개발자가 로컬 PC에서 개발을 하고 테스트까지 진행한 뒤에 문제가 없을 경우 사용자가 사용할 수 있도록 수정된 코드를 실서버에 반영해야 한다.서버에 반영을 하는 것을 "배포"라고 하고 배포(Deploy) 하기 위한 과정을 "빌드" 라고 한다.   빌드(Build)란 ?소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말한다.예를 들어 Java 프로젝트를 진행한다면 개발자가 작성한 A.java 와 여러가지 정적 파일등에 해당하는 resources 가 존재한다.빌드를 한다면 소스 코드를 컴파일해서 .class 로 변환하고 resource 를 .class 에서 참..

Spring/공부 2024.04.29

Servlet (4) Filter

서블릿 필터(Servlet Filter) Client 로 부터 Server 로 요청이 들어오기 전에 Servlet 을 거쳐서 필터링 하는 것을 서블릿 필터라고 한다. HttpServlet 을 상속 받지 않고 Filter 인터페이스를 구현하며 doFilter 메서드를 Override 한다 HttpServlet 에서 사용하던 메서드와 다르게 doFilter는 ServletRequest, ServletResponse 객체를 인자로 받는다 @WebFilter(" 필터링 할 url ") 어노테이션을 사용한다 하나의 url 에 여러개의 필터를 추가할 수 있다 naming 한 순서대로 filter 우선순위를 가진다 1. Filter Mapping ( Annotation ) /login url 에 위 2개의 필터를 적..

Servlet (2) doGet, doPost

HttpServletRequest, HttpServletResponse 는 ServletRequest 와 ServletResponse 를 상속 받는다 service 메서드는 모든 요청에 대하여 항상 실행되어 doGet, doPost 등의 메서드가 호출 되지 않는다 1. doGet 메서드 브라우저에서 url 로 접속 혹은 form 에서의 get 요청 등에 실행되는 메서드이다 필요한 로직을 수행하고 난 뒤 다른 페이지로 forwarding 혹은 redirection 할 수 있다 2. doPost 메서드 form 에서 post 요청 등에 실행되는 메서드이다 필요한 로직을 수행하고 난 뒤 다른 페이지로 forwarding 혹은 redirection 할 수 있다 3. redirection & forwarding ..

Servlet (1) Url Mapping

HttpServlet 메서드 기능 void service(ServletRequest req, ServletResponse res) 요청 (새로고침 등) 마다 호출된다 void destroy() Servlet 내용 수정 (코드 수정), 프로그램 종료, 재시작 마다 destroy() 가 호출된다 void init() 처음 Servlet 이 만들어질 때 최초 1회만 동작한다 destroy()가 호출된 이후 다시 요청을 받을 시 호출된다 1. Annotation @WebServlet("url") 을 사용하여 Url Mapping 을 하는 방식이다 HttpServlet 을 상속받는다 service(), destroy(), init() 메소드를 Override 한다 클래스에 @WebServlet(" url ") 을..