본문 바로가기
반응형

Spring Framework5

Spring Security에 관하여 #1 예전에 Spring Security 스터디를 하면서 정리한 글이다. 총 두편에 걸쳐서 작성했고, 1편부터 시작한다. 1. 웹 보안과 스프링 시큐리티 웹 어플리케이션을 개발할 때 항상 보안 관련 부분을 신경써야한다. 악의적인 접근에 제대로 대처하지 못한다면 서비스가 정상적으로 운영되지 않을 것이며, 개인정보 등의 데이터 유출이 발생하면서 신뢰도가 떨어질 것이다. 이는 유저 이탈을 야기할 수 있기 때문에 서비스를 개발하고 운영하는데 있어서 반드시 살펴봐야한다. 스프링 프레임워크에서는 이를 Spring Security 라는 이름으로 쉽게 추가할 수 있도록 환경을 제공한다. 보안에서는 크게 인증/인가 두 가지 측면에서 살펴 볼 수 있다. 인증(Authentication) : 현재 사용자가 누군지 확인하는 과정... 2020. 5. 24.
Spring 빈/컨테이너 생명주기 (Lifecycle) Spring 컨테이너 생명주기 (Life Cycle) 생성, 빈 설정, 사용, 소멸 순으로 구성되어있다. AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); // 빈 추가로 등록 ctx.register(); // 갱신해야 반영됨 ctx.refresh(); // 소멸, 빈도 함께 ctx.close() // JVM소멸시 자동으로 소멸되게끔 ctx.registerShutdownHook() Bean 생명주기 (Lifecycle) 객체 생성 - 초기화 - 사용 - 소멸 순으로 유지된다. 스프링 컨테이너에 의해 객체가 생성되고 초기화와 소멸의 과정을 거친다. 각 초기화와 소멸을 구현하는 방법에는 각각 3가지가 존재한다... 2020. 5. 24.
Spring AOP Proxy에 관하여 AOP Proxy Spring AOP는 두가지 Type의 Proxy를 지원하고 있다. JDK Dynamic Proxy CGLIB Proxy 기본적으로 Spring AOP는 JDK Dynamic Proxy를 사용한다. 이외에 CGLIB Proxy방식도 사용 가능하다. 모델이 인터페이스로 구현되어 있지 않으면 CGLIB을 기본으로 사용한다. JDK Dynamic Proxy J2SE 1.3 부터 제공하는 기능. 메서드 요청을 인터셉트해서 추가적인 행동을 끼워넣을 수 있다. _인터페이스에 대한 Proxy만 지원_하기 때문에 클래스에 대한 Proxy를 지원하지 않는다. Proxy기능을 사용하기 위해 인터페이스를 사용해만 하는 제약사항이 있다. 구현되어 있는 애플리케이션에 Proxy기능을 추가할 때 클래스로 구현되.. 2020. 5. 24.
Spring MVC 1. Spring MVC 기본 프로젝트 생성해보기 STS에서 생성하는 순서 Dynamic Web Project 생성 Maven Project 활성화 web.xml 추가 후 Servlet 설정 1.1. Web.xml 추가 web.xml이 없는 경우 프로젝트 우클릭 - java EE Tools - Generate Deployment Descriptor Stub 클릭 src 폴더 내부에 알아서 해줌 1.2. Servlet 설정 web.xml 생성 후 서블릿 관련 설정을 추가해야 함. Servlet dispatcher 정의 init-param 으로 contextConfigLocation 정의. param-value 에는 config xml파일 경로를 입력. 상대경로나 classpath 입력 가능 Servlet .. 2019. 11. 22.
Spring AOP (Aspect Oriented Programming) Spring AOP(Aspect Oriented Programming) 개요 관점 지향 프로그래밍(AOP)은 문제를 바라보는 관점을 기준으로 프로그래밍 하는 기법이다. 공통된 관심사항을 모듈화하여 여러 코드에 쉽게 적용할 수 있도록 도와준다. 이를 구현하기 위해 기존의 OOP 방식으로는 한계가 있어 (상속, 위임 등으로 해결하려 하지만 코중복된 코드 등의 한계 발생) AOP개념이 도입되었다. 그렇기 때문에 OOP와는 반대되는 개념이 아닌 보완을 해주는 개념이라고 볼 수 있다. Spring IoC 컨테이너에 의존하지 않기 때문에 필요하지 않으면 사용하지 않아도 무방하다. 이러한 특성 때문에 핵심 비즈니스 로직을 변경하지 않고도 공통 관심 기능을 추가, 적용할 수 있다. 공통 관심 기능은 주로 로깅, 트랜잭.. 2018. 10. 30.