본문 바로가기

스프링16

스프링 2-6. Validation 1. 개요 Validation 이란 Java에서 null값에 접근하려고 할 때, null point exception 같은 에러를 발생시킴으로써 에러를 방지하며 검증하는 과정을 말한다. 하지만 Validation을 코드에 다 집어넣으면 이하의 문제가 생긴다. 검증해야 할 값이 많은 경우 코드가 길어진다 서비스 로직과 같은 파일에 있다면 재사용이 불가능하므로 분리해야 한다 흩어져 있는 경우 어디에서 검증을 하는지 알기 어려우며, 재사용이 어렵다. 구현에 따라 달라질 수 있지만, 검증 로직이 변경되는 경우, 테스트 코드 등 참조하는 클래스에서 로직의 변경이 강제되는 경우도 있다. 스프링에선 어노테이션으로 이런 기능을 제공한다. @Size 문자 길이 측정 Int Type X @NotNull null 불가 @N.. 2022. 3. 18.
스프링 2-3. 횡단관심, JoinPoint, Advice 1. 개요 횡단관심이란 로깅, 보안, 트랜잭션 등 다수의 모듈에서 반복적으로 동작하는 부분이다. DB의 경우에도 select, insert, update, delete 등 특정 부분을 제외하곤 같은 동작이 많다. DB 커넥션 준비 Statement 객체 준비 try{ DB 커넥션 연결 Statement 객체 셋팅 select/ insert/ update/ delete 선택 실행 } catch ... { 예외 처리 } catch ... { 예외 처리 } finally { DB 자원 반납 } 밑줄이 그인 부분이 핵심관심 사항, 이외의 부분이 횡단관심 사항이다. 핵심관심 사항은 모듈별로 다르겠지만, 횡단관심 사항은 모듈별로 중복된 코드가 계속 들어가는 부분이다. 중복된 곳을 분리해서 관리하면 재사용성이 높아진.. 2022. 3. 17.
스프링 2-1. IoC, DI 1. 개요 IoC (Inversion Of Control, 제어의 역전) 스프링에서는 일반적은 java 객체를 new 로 생성하여 개발자가 관리하는 것이 아닌 Spring Container에게 모두 맡긴다. 즉 개발자에서 프레임워크로 제어의 객체관리 권한이 넘어갔으니 제어의 역전이라고 한다. DI (Dependency Injection, 의존성 주입) 의존성을 가진 객체를 외부에서 주입함으로써, 내부적인 코드를 수정해서 에러가 나는 상황을 방지 이로 인해 코드를 확장하거나 변경할 때, 영향을 최소화 한다. (추상화) 2. 사용법 2-1. DI 전략 패턴에서 본 것과 비슷한데 일단 인코더를 만든다. Encoder encoder = new Encoder(); String result = encoder.enc.. 2022. 3. 17.
스프링 2-2. Application Context 보호되어 있는 글 입니다. 2022. 3. 17.