Framework 8

[Spring] Resolver 구현

HandlerMethodArgumentResolver HandlerMethodArgumentResolver는 Interface로써, Controller의 Argument(Parameter)에 지정된 변수들을, Annotation이나 객체의 Type에 따라서 Resolver를 먼저 거쳐, 실제 Data를 Controller에 넘겨주는 역할을 수행한다. Controller에 들어오는 Argument(Parameter)를 가공(암호화 > 복호화) 하거나, Argument(Parameter)를 추가하거나 수정해야 하는 경우에 사용한다. 실제 해당 Interface의 형태는 아래와 같다. /** * Strategy interface for resolving method parameters into argument..

웹/모바일/태블릿/기본 반응형 설정

1. Responsive Web 태플릿, PC, 모바일 등 다양한 해상도로 접근할 때 동일한 서비스를 제공하기 위한 웹 반응형 웹은 모바일 기기에서도 불편함이 없는 서비스를 제공하기 위해 각 해상도에 따라서 레이아웃과 스타일 변화를 준다. 1-1. Media Query CSS 2.1 부터 미디어 타입으로 단말기 종류에 따라서 다른 스타일을 적용시키는 것이 가능했다.하지만 기기의 특성을 정확히 판단하기가 어려워 많이 사용되지는 않았다. CSS 3은 미디어 타입을 개선하여 구체적인 조건을 필요한 스타일을 적용할 수 있도록 확장하였는데 이를 미디어 쿼리라고 한다. Syntax only|not only : 뒤의 조건에서 만 not : 뒤의 조건을 제외한 미디어 타입 all : 모든 미디어 타입 aural : 음..

[Spring Boot] Scheduler

Dependency Spring Boot starter 에 기본적으로 의존 org.springframework.scheduling Enable Scheduling Project Application Class에 @EnableScheduling 추가 @EnableScheduling // 추가 @SpringBootApplication public class SchedulerApplication { public static void main(String[] args) { SpringApplication.run(SchedulerApplication.class, args); } } scheduler를 사용할 Class에 @Component, Method에 @Scheduled 추가 @Scheduled 규칙 Meth..

[Spring Boot] Spring Security(2/2)

이번에는 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..

[Spring Boot] Spring Security(1/2)

대부분의 시스템에서는 회원의 관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. Spring에서는 Spring Security라는 별도의 프레임워크에서 관련된 기능을 제공하고 있는데, 이번에는 Spring Security에 대해서 알아보도록 하겠다. 1. Spring Security란? [ Spring Security란? ] Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되..

[@Spring] @ExceptionHandler와 @ControllerAdvice

우리는 기존에 에러를 핸들링 하기 위해서 try-catch를 사용했다. Spring에서는 이러한 것을 편하게 해결하기 위해 지원가능 기능이 있는데 이것이 바로 @ExceptionHandler이다. @Controller public class SimpleController { // ... @ExceptionHandler(CustomException.class) public ResponseEntity handle(IOException ex) { // ... } } 해당 컨트롤러에서 비즈니스 로직을 수행하다가 CustomException이 발생하면 해당 애너테이션이 붙어있는 메서드가 실행되어 에러를 처리하게 된다. 여기서 추가적으로 Controller에서 작성하는 것이 아니라 분리를 해서 처리를 할 수 있는데..

[Spring Boot/IntelliJ IDEA] ep02. Skeleton Project 구성 파악

지난 ep01. Spring Boot Project Import에서 스프링부트 프로젝트를 웹에서 간단하게 생성하고, 인텔리제이에 import까지 시켜보았다. https://devsyw.tistory.com/3?category=874223 참조 [Spring Boot/IntelliJ IDEA] ep01. Spring Boot Project Import 저는 지금까지 STS, 전자정부프레임워크 등 이클립스 기반 Spring Framework로 개발을 해왔습니다. 하지만 나는 아직 대학생이기에(야간..) 학생 라이센스로 IntelliJ IDEA를 설치할 수 있었습니다!! 오늘� devsyw.tistory.com 바로 개발을 해도 무관하지만 일단 기본적인 프로젝트 구성이 어떻게 되어있는지를 살펴보자(Skelet..

[Spring Boot/IntelliJ IDEA] ep01. Spring Boot Project Import

저는 지금까지 STS, 전자정부프레임워크 등 이클립스 기반 Spring Framework로 개발을 해왔습니다. 하지만 나는 아직 대학생이기에(야간..) 학생 라이센스로 IntelliJ IDEA를 설치할 수 있었습니다!! 오늘을 기점으로 springboot to intellij 토이프로젝트를 진행하며 intellij 적응기를 기록해보려 합니다. 그럼 시작하겠습니다. start.spring.io 링크 접속 해당 링크에 접속을 하면 SpringBoot Project를 간단하게 생성할 수 있다. 위와같이 개발환경을 설정했다. 수 많은 SI나 연식?이 오래된 회사에서는 아직까지도 Maven Project를 선호하며 실제로 많이 쓰이고 있다. 하~~지만! 대세는 Gradle이라고 하니 과감히 선택! (원래 맞으면서..