[Spring] 서블릿 필터와 스프링 인터셉터(Servlet Filter, Spring Interceptor)
·
TIL/Spring
서블릿 필터(Servlet Filter)와 스프링 인터셉터(Spring Interceptor)는 왜 사용하는걸까?만약 우리가 개발을 할 때 로그인 여부를 체크하는 로직을 모든 컨트롤러 쪽에 작성을 한다면 작업이 많이 번거로울 것이다.이렇게 모든 컨트롤러 로직에서 공통으로 관심이 있는 것을 공통 관심사(cross-cutting concern)라고 한다. 이러한 공통 관심사는 스프링의 AOP로도 해결할 수 있지만,웹과 관련된 공통 관심사는 서블릿 필터 또는 스프링 인터셉터를 사용하는 것이 좋다. 웹과 관련된 공통 관심사를 처리할 때는 HTTP Header나 URL의 정보들이 필요한데, 서블릿 필터와 스프링 인터셉터는 HttpServletRequest를 제공하고 있어 편리하게 공통 관심사를 처리할 수 있다. ..
[Spring] 빈 스코프 란?
·
TIL/Spring
1. 빈 스코프 란?스프링 빈은 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지된다.이것은 스프링 빈이 기본적으로 '싱글톤 스코프'로 생성되기 때문이다.스코프(scope)는 의미 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다.싱글톤기본 스코프로, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.프로토타입스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다.웹 관련 스코프request: 웹 요청이 들어오고 나갈 때 까지 유지되는 스코프session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프application: 웹의 서블릿 컨텍스트와..
[Spring] 빈 생명주기 콜백 이란? - 스프링 초기화, 소멸 메서드 사용하기
·
TIL/Spring
보호되어 있는 글입니다.
[TIL] Spring Framework - HandlerInterceptorAdapter
·
TIL/Spring
인터셉터(Interceptor)란? Controller에 들어오는 요청(HttpRequest)과 Controller가 응답(HttpResponse)을 가로채는 역할은 한다. Filter와 역할이 유사한데 Filter와 Interceptor는 분명한 차이점이 있다. 1) 호출 시점 > Filter는 DispatcherServlet이 실행되기 전 , Interceptor는 DispatcherServlet이 실행된 후 2) 설정 위치 > Filter는 web.xml , Interceptor는 spring-servlet.xml 3) 구현 방식 > Filter는 web.xml에서 설정을 하면 구현 가능, Interceptor는 설정은 물론 메서드 구현도 필요 Interceptor를 구현하는 방법은 2가지가 있다...
[SIST] Spring_days10_MyBatis
·
TIL/Spring
1. MyBatis란? - DB 연동을 대신해주는 프레임워크이며, XML과 애노테이션을 사용하는 2가지 방법이 있다.(즉, DAO의 역할을 대신해줌) MyBatis의 공식 페이지에서는 아래와 같이 설명 (https://mybatis.org/mybatis-3/ko/index.html) ㄱ. 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. ㄴ. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. ㄷ. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. 2. Mapper XML 파일 1) 마이바티스의 가장 큰 ..
[SIST] Spring_days08_STS(Spring Tool Suite)와 Spring Legacy Project로 메이븐 프로젝트 생성하기
·
TIL/Spring
이전에서 배운 수업은 스프링 버전 3.0.2였는데 오늘부터는 4.0.4 버전을 사용할 것이다. 지금 포스팅하는 글은 STS3으로 STSMVC 스프링 + 메이븐 프로젝트 생성을 하고 구조확인을 하는 실습을 할 것이다. 1. STS(Spring Tool Suite) 다운로드 및 설정 + Spring Legacy Project 생성 STS를 다운로드 및 설정하기 전에 STS에 대해서 간단하게 설명하자면 STS는 이클립스 + 스프링 개발 전용 도구이다. STS4 - Spring Boot + 설치(플러그인)하면 다른 것으로도 spring 개발 가능 STS3 - Spring Boot / Spring Legacy(전통적인 방식) 수업은 STS3을 받아서 Spring Legacy로 한다고 하셨다. Legacy 먼저 알..
[SIST] Spring_days07/08_스프링 타일즈(Tiles)
·
TIL/Spring
1. 스프링 타일즈(Tiles) 1) 페이징 모듈화(집중화) ? - 페이지마다 공통적인 영역(부분)을 모듈화해서 공통적으로 참조할 수 있도록 하는 방법 2) JSP 프로젝트 - @include 지시자, 액션 태그 사용 layout 폴더 ㄴ TOP ㄴ BOTTOM ㄴ ASIDE 3) 스프링에서 페이지 모듈화할 수 있는 방법 = 스프링 타일즈(Spring Tiles) 2. 스프링 타일즈(Tiles) 사용을 위한 다운로드 및 설정 1) http://tiles.apache.org 접속 후 Tiles 2.2.2 (GA) 클릭 -> Tiles 2.2.2 (zip) tiles-2.2.2-bin.zip 클릭 -> Downloads archive.apache.org/dist/tiles/ 클릭 -> v2.2.2/ 클릭 -..
[SIST] Spring_days07_스프링 트랜잭션 격리 레벨(Isolation)
·
TIL/Spring
1. 격리성? - 트랜잭션 처리 과정에 두 개 이상의 트랜잭션이 진행 중일 때 서로 동시에 같은 자원에 접근하면 트랜잭션 처리는 어떻게 진행해야 하는가? > 격리 레벨(수준)을 지정해주어야 한다. - 트랜잭션을 하나의 쓰레드라고 생각한다면 멀티 쓰레드가 하나의 같은 자원(공유자원)을 사용하는 것을 동기화(동기화 처리) 2. 용어 정리 - hitUp() 메서드 : 조회수 증가하는 메서드 ㄴ 공지사항 상세보기 -> 조회수 1 증가 - getHit() 메서드 : 조회수를 읽어와서 반환하는 메서드 위의 2가지 메서드가 동시에 실행되고 있다는 가정 1) Dirty Read 상황 - A 트랜잭션 진행 중 B 트랜잭션이 진행 후 커밋/롤백 A 트랜잭션이 커밋/롤백 되어졌을 때 B 트랜잭션이 가지고 있는 A 트랜잭션의..
[SIST] Spring_days01_스프링 설명/ 스프링 컨테이너 / XML을 이용한 DI 설정
·
TIL/Spring
1. 스프링 프레임 워크 개요 - 스프링은 자바 개발자라면 무조건 알아야 하는 표준 프레임워크 - 스프링 버전 3.0 / 4.0 / 5.0 있음 2. 스프링 사용 하는 방법 - 자바를 이용해서 어플리케이션을 개발할 때 메이븐(Maven)이나 그래들(Gradle)과 같은 빌드 도구를 사용(수업 때는 메이븐을 다룰 예정) - 이런 빌드 도구들의 주요 특징 중 하나는 의존 모듈(jar 파일) 관리 - 빌드? 컴파일 + 실행 - 더 큰 의미로는 프로젝트 생성 -> 컴파일 -> 배포 (모든 것을 관여) - jar 파일들을 중앙 저장소(central repository)라는 서버로 부터 모듈 관리(다운 + 설치) - pom.xml 파일에 코딩만 하면 중앙 저장소로부터 로컬 저장소로 jar(라이브러리) 파일을 다운 ..