Spring

    Filter, Interceptor, AOP

    개요 공통 프로세스 웹 개발을 하다보면 하나의 핸들러에만 적용되는 것이 아니라 서비스 단위로 공통적 으로 처리해야하는 작업들이 있다. 로그인 체크, 세션 체크, 권한 체크, XSS 방어, PC와 모바일웹의 분기처리, 로그, 페이지 인코딩 등등 공통적으로 처리해야 하는 작업들을 모든 서비스 마다 작성한다면 중복된 코드가 많아지게되어 프로젝트 단위가 커질수록 서버에 부하를 줄 수 있으며, 유지보수에 어려움을 줄 수 있다. 그렇기 때문에 공통된 작업은 따로 빼서 관리하는게 좋다. 공통된 작업을 프로그램의 흐름 앞, 중간, 뒤에 추가하여 자동으로 처리할 수 있는 방법을 알아보자 Filter, Interceptor, AOP Spring Flow Request(요청) -> Filter(필터) -> Dispatche..

    Spring WebFlux

    Spring WebFlux if(Kakao) dev 2018 스프링5 웹플럭스와 테스트 전략 - 이일민(Toby) 스프링 5.0에 새로 등장한 웹 프레임워크 + 리액티브 스택 spingMVC와 두 개의 웹 기술 트랙 초기 이름은 스프링 웹 리액티브, 현재는 웹 플럭스로 바뀜 스프링 웹 플럭스 VS MVC SpringMVC : 서블릿 스택 기반 웹 프레임워크 Spring WebFlux : 리액티브 스택 스프링 웹 플럭스와 MVC가 공유하는 부분과 고유한 부분 (이 부분 때문에 혼란스러울 것이다) 예제 SpringMVC - Hello API @GetMapping("/hello/{name}") public String hello(@PathVariable String name) { return "Hello " ..

    [에러] org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfig' defined in file

    문제 SecurityConfig.class 를 만들고 controller 단위 테스트 실행 시 NoSuchBeanDefinitionException 이 발생하였다. 에러문 전체 더보기 Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultT..

    예외처리 - @ExceptionHander, @ControllerAdvice, @RestConrollerAdvice

    웹 어플리케이션 개발에 있어서 예측 가능한 유저의 행동을 제어하고 서버가 다운되는 것을 막기 위해 여러가지 예외처리가 필요하다. 예외 처리 하는 다양한 방법 메소드 내에서 예외 상황을 예측해서 처리하는 try-catch 문을 이용하는 방법 요구사항에 의한 예외처리 ( ex ) validation : 특정값이 0 ~ 255범위가 아니면 유효하지 않은 값으로 판단하고 예외처리 스프링 시큐리티에서 인터셉터로 잡아서 UnautorizedException 같은 예외 처리 예외 처리 적용의 문제 예외처리를 적용하다 보면 코드가 엄청나게 복잡해지고, 코드가 복잡해지면 유지보수하기 어려워진다. 비즈니스 로직에 집중하기 어렵고, 비즈니스 로직과 관련된 코드보다 예외 처리를 위한 코드가 더 많아지는 경우도 생긴다. 이런 ..

    Spring 이란

    Spring 이란 Spring은 Java 언어 기반의 프레임워크이다. Java로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀 이라고 할 수 있다. '프레임워크 (Framework)' 개발자에게 구조화된 뼈대를 제공함으로써, 기본 구조에 맞게 코드를 작성하게 하여 코드를 작성하는 시간 낭비를 줄여주고 일정한 품질이 보장되는 결과를 얻을 수 있게 해준다. Spring 이라는 단어는 문맥에 따라 다르게 사용된다. Spring DI 컨테이너 기술 Spring Framework 요즘에는 Spring을 spring boot, spring framework 등 모두 포함한 스프링 생태계를 통틀어 말한다. Spring의 핵심 개념, 컨셉 자바 언어 기반의 프레임워크 자바 언어의 가장 큰 특징 : 객체 지향 언어 S..