1. SpringBoot와 Retrofit 연동 [ SpringBoot와 Retrofit 연동 ] SpringBoot 프로젝트에서 Retrofit2를 사용하기 위해서는 2가지 의존성을 추가해주어야 한다. // https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit compile group: 'com.squareup.retrofit2', name: 'retrofit', version: '2.9.0' // https://mvnrepository.com/artifact/com.squareup.retrofit2/converter-gson compile group: 'com.squareup.retrofit2', name: 'converter-gson..
1. 빈 스코프(Bean Scope)의 종류 Spring의 Bean은 별다른 설정이 없으면 Singleton Scope로 생성된다. 특정 타입의 Bean을 하나만 만들어 두고 공유해서 사용하기 위해서인데, 이러한 까닭에 Bean에 상태를 저장하는 코드를 작성하는 것은 동시성 문제를 유별하여 위험한 상황을 초래할 수 있다. 하지만 요구사항과 구현 기능 등의 필요에 따라서 비싱글톤이 필요한 경우도 많다. 그리고 이를 명시적으로 구분하기 위해서 scope라는 키워드를 제공한다. Spring 에는 다음과 같은 Scope들이 존재한다. [ Scope의 종류 ] 싱글톤 Spring 프레임워크에서 기본이 되는 스코프 스프링 컨테이너의 시작과 종료까지 1개의 객체로 유지됨 프로토타입 프로토타입 빈의 생성과 의존관계 주..
이번에는 Spring Security가 어떤 과정으로 Authentication 처리를 하는지, 그리고 실제로 어떻게 구현하는지 알아보도록 하자. 1. Spring Security 처리 과정 Spring Security 아키텍쳐는 위와 같으며 각각의 처리 과정에 대해서 자세히 알아보도록 하자.(아래에서 설명하는 내용은 Session을 활용한 Spring Security의 구현 방식으로, Session과 Token 기반의 구현방식에 대해서는 여기를 참고하세요! ) [ 0. 사전 세팅 ] 먼저 프로젝트에서 사용할 Dependency들을 build.gradle에 추가해준다. dependencies { implementation 'org.mariadb.jdbc:mariadb-java-client' impleme..
대부분의 시스템에서는 회원의 관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. Spring에서는 Spring Security라는 별도의 프레임워크에서 관련된 기능을 제공하고 있는데, 이번에는 Spring Security에 대해서 알아보도록 하겠다. 1. Spring Security란? [ Spring Security란? ] Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되..
기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 상당히 번거로워 져서 어노테이션(Annotation, @)를 활용한 Bean 등록 방법이 탄생하게 되었다. 이번에는 Spring에서 Bean을 등록하기 위해 활용가능한 @Bean, @Component, @Configuration 어노테이션에 대해서 알아보도록 하겠다. 1. Spring Bean이란? [ Spring Bean 이란? ] Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소이다. Spring의..