대부분의 시스템에서는 회원의 관리를 하고 있고, 그에 따른 인증(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의..
클린코드 책을 읽다보면 Enum 활용의 중요성에 대해 얘기하는 부분이 있습니다. 이번 내용으로는 Enum에 대해 알아보고 기존의 코드를 개선시켜보도록 하겠습니다. 아래의 내용들은 배달의 민족 기술 포스팅을 참고하여 작성하였습니다! 1. 기존의 코드 관리 방법 [ 기존의 코드 관리 방법 ] 일반적으로 프로그래밍을 할 때, Enum과 같이 열거형이 필요한 타입들의 경우 서버에서 데이터를 제공한다. 예를 들어 어떤 글의 진행상태를 나타내는 변수가 있다고 하자. 과거의 시스템과 같은 경우는 아래의 예제와 같이 상수와 관련된 코드들을 별도의 테이블로 만들어서 관리하고 있었다. @Entity @Table("codeVO") @Getter @NoArgsConstructor public class CodeVO exten..
클린코드 책을 읽다보면 Enum 활용의 중요성에 대해 얘기하는 부분이 있습니다. 이번 글에서는 Enum에 대해 알아보고 Enum을 활용하여 기존의 코드를 개선시켜보도록 하겠습니다. 1. Enum이란? [ Enum 이란? ] 일반적으로 상수를 정의할 때, public static final String 으로 상수를 정의한다. 하지만 이렇게 상수를 정의하면서 다양한 문제들이 발생하게 되었고, Java 1.5버전부터는 서로 연관된 상수들의 집합을 의미하는 열겨형 클래스 Enum을 도입하게 되었다. 어떤 일의 처리가 진행중인지 완료상태인지를 나타내는 Status와 관련된 Enum은 아래와 같이 사용될 수 있다. package EnumExample; public class EasyEnumExample { // E..
이번에는 Spring에서 Client로 받은 요청을 객체로 바인딩하기 위해 사용하는 방법들에 대해서 알아보도록 하겠습니다. 1. RequestBody, ModelAttribute, RequestParam이란? [ @RequestParam ] @RequestParam은 1개의 HTTP 요청 파라미터를 받기 위해서 사용한다. @RequestParam은 필수 여부가 true이기 때문에 반드시 해당 파라미터가 전송되어야 하며, 파라미터가 전송되지 않으면 400 에러가 발생한다. 반드시 필요한 값이 아니라면 required를 false로 설정해주면 되고, defaultValue 옵션을 사용하면 기본값 역시 지정할 수 있다. [ @RequestBody란? ] @RequestBody는 클라이언트가 전송하는 Json(..