다시 웹, 백엔드로 57

Spring Boot Filter 와 Interceptor

Spring Boot Filter 와 Interceptor  FilterWeb Application에서 관리되는 영역으로써 Spring Boot Framework 에서 Client 로 부터오는 요청 / 응답에 대해 최초 / 최종 단계의 위치에 존재요청/응답의 정보를 변경하거나 Spring에 의해서 데이터가 변환되기 전의 순수한 Client 의 요청 / 응답 값 확인 가능유일하게 ServletRequest, ServletResponse 의 객체 변환Spring Framework 에서는 request / response 의 Logging 용도로 활용하거나 인증 관련된 Logic 들을 해당 Filter 에서 처리선 / 후 처리함으로써 Service business logic 과 분리 시킴     Interce..

Spring Boot Exception

Spring Boot Exception  Web Application 의 입장에서는 에러가 났을 때 내려 줄 수 있는 방법이 많지 않음에러 페이지 (Whitelabel Error Page)4XX Error 또는 5XX ErrorClient가 200 Error 외에 처리를 하지 못 할 때는 200을 내려주고 별도의 에러 Message 전달➡️ 이러한 처리들을 한곳에서 묶어서 처리하는 게 편함+  Exception 처리@ControllerAdvice페이징 처리를 하는 view resolver가 들어있는 Whitelabel Error Page, Error Page 를 내리는 것들을 글로벌 하게 처리할 수 있는 집합 장소@ExceptionHandler특정 컨트롤러에 ExceptionHandler 를 적용 시켜 ..

Spring Boot Validation

Spring Boot Validation  Validation 이란?프로그래밍에 있어 가장 필요한 부분null 값에 대해 접근 하려고 할 때 null point Exception 이 발생, 이러한 부분을 방지하기 위해 미리 검증 하는 과정을 말함public void run(String account, String pw, int age) { if(account == null || pw == null) { return } if(age == 0) { return } // 이후 Logic} 검증해야 할 값이 많은 경우 코드의 길이가 길어짐구현에 따라 달라질 수 있지만 Service Logic과 분리가 필요함흩어져 있는 경우 어디에서 검증을 하는지..

AOP

AOP (Aspect Oriented Programming) 관점지향 프로그래밍MVC 웹 어플리케이션에서는 Web Layer, Business Layer, Data Layer 로 정의Web Layer: REST API 제공, Client 중심의 로직 적용Business Layer: 내부 정책에 따른 logic 개발, 주로 해당 부분을 개발Data Layer: 데이터베이스 및 외부와의 연동 처리  주요 Annotation   횡단 관심AOP 는 메소드들 또는 특정 구역에 반복되는 로직들을 한 곳으로 몰아서 코딩을 할 수 있게 해줌 공통적인 기능들 로그통신메서드 실행 시간 확인인코딩, 암호화 기능  예제   - 메서드 실행 시 argument와 return 값에 대한 추적 log          - 메서드 ..

IoC / DI

IoC / DI IoC (Inversion of Control)Java 객체를 new 로 생성해 개발자가 관리하는 것이 아닌 Spring Container 에 모두 맡김 (싱글톤 형태로 관리됨)프레임워크로 제어의 객체 관리의 권한이 넘어감, '제어의 역전' 이라고 함 DI (Dependency Injection)장점의존성으로부터 격리시켜 테스트에 용이함DI 를 통해 불가능한 상황을 Mock 과 같은 기술을 통해 안정적인 테스트 가능코드를 확장하거나 변경 할 때 영향을 최소화함 (추상화)순환참조를 막을 수 있음  예제 - 자바       - 스프링   - IEncoder 는 같음                   feat. 패스트캠퍼스 - Java/Spring 웹 개발 마스터 초격차