![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/btdFsu/btrJgxGSSDp/N9kfYPZocNEbwyaMQmdsjk/img.png)
자동차의 바퀴를 교체하기 위해서 우리는 자동차 전체를 교체할 필요 없이 우리는 바퀴만 바꿔 갈아끼우면 된다. 객체 지향 프로그래밍에 장점이 이것이라고 생각한다. 클래스의 변경이 필요하면 다른 클래스의 영향을 끼치지 않으면서 변경이 가능하도록 우리는 구현이 가능하다. 이러한 작업을 더 수월하게 진행할 수 있도록 도입된 기능이 DI(Dependency Injection)와 IoC(Inversion of Control) 이다. 자바로 객체를 생성할 때 우리는 new 연산자를 이용하여 리모콘을 생성하여 사용하였다. 하지만 DI는 컨테이너가 new하지 않고 직접 인스턴스를 생성시켜주는 작업을 말한다. 코드에 직접적인 연관 관계가 발생하지 않아 느슨한 결합이 가능하다. 심지어 싱글톤으로 하나만 사용되기 때문에 무척..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ccia69/btrI3xBMdrx/Bpz4GmcoRUNORDLAOkkOX0/img.jpg)
어노테이션은 사전적 의미로는 주석이라는 뜻이다. 자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터(meta data: 데이터를 위한 데이터)라고 볼 수 있다. 어노테이션의 용도 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시(런타임시)특정 기능을 실행하도록 정보를 제공 기본적으로 어노테이션을 사용하는 순서는 다음과 같다. 1. 어노테이션의 정의 2. 클래스에 어노테이션을 배치 3. 코드가 실행되는 중에 Reflection을 이용하여 추가정보를 획득하여 기능실시 @PathVariable 메서드 인..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/caEN35/btrJhy6p1Jj/h5PkgGKoUSwXk7PJJ8L0K0/img.png)
💡 스프링 시큐리티(Spring Security)란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 즉 인증(Authenticate, 누구인지?) 과 인가(Authorize, 어떤것을 할 수 있는지?)를 담당하는 프레임워크를 말한다. 스프링 시큐리티는 주로 서블릿 필터와 이들로 구성된 필터체인을 통해 웹 요청에 대한 보안 관련 처리를 수행한다. 서블릿 필터란 HTTP 요청을 가로채 전처리 및 후처리를 수행할 수 있도록 만들어진 자바 표준 기술이다. 필터는 체인으로 구성될 수 있으며, 하나의 필터가 자신의 역할을 한 후 요청과 응답 객체를 다음 필터로 넘길 수 있다. 그리고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장..