Spring으로 개발을 하다 보면 DTO 또는 객체를 검증해야 하는 경우가 있습니다. 이를 별도의 검증 클래스로 만들어 사용할 수 있지만 간단한 검증의 경우에는 JSR 표준을 이용해 간결하게 처리할 수 있습니다. 이번에는 객체의 검증을 손쉽게 하는 방법에 대해 알아보고자 합니다. 1. @Valid와 @Validated [ @Valid를 이용한 유효성 검증 ] @Valid의 개념 및 사용법 @Valid는 JSR-303 표준 스펙(자바 진영 스펙)으로써 빈 검증기(Bean Validator)를 이용해 객체의 제약 조건을 검증하도록 지시하는 어노테이션이다. JSR 표준의 빈 검증 기술의 특징은 객체의 필드에 달린 어노테이션으로 편리하게 검증을 한다는 것이다. Spring에서는 일종의 어댑터인 LocalVali..
Spring은 공통적으로 여러 작업을 처리함으로써 중복된 코드를 제거할 수 있도록 많은 기능들을 지원하고 있다. 이번에는 그 중에서 필터(Filter) vs 인터셉터(Interceptor)의 차이에 대해 알아보고자 한다. 또한 간략하게 인터셉터(Interceptor)와 AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)에 대해서도 비교해보고자 한다. 1. 필터(Filter) [ 필터(Filter)란? ] 필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤러..
요즘 개발자로 취업준비하려는 분들이 주변에 참 많이 보입니다. 심지어는 본인이 하고 있는 일을 그만두고 개발자로 전향하시는 분도 계시는데, 카페나 SNS 글을 보면 많이 고민하고 어려워하시는 것 같습니다. 물론 최근 개발자의 수요가 증가함에 따라 국비교육이나 온라인 강의 등의 내용도 상당히 많이 보이지만 정작 개발자가 되기 위해서는 어떻게 준비를 시작해야 하고 어떻게 준비를 하면 좋은지에 대한 정보는 부족해 보였습니다. 그래서 이번에는 신입 개발자로 취업하는데 도움이 될만한 내용들을 적어보고자 합니다. 신입 개발자로 취업하기 위해서는 크게 다음의 3가지 과정을 거쳐야 합니다. 자기소개서 코딩 테스트(알고리즘) 기술 면접 물론 임원 면접이나 컬쳐 면접 또는 인적성 등 회사마다 갖는 또 다른 전형들도 있습니..
1. @Transactional 어노테이션(선언적 트랜잭션) [ @Transactional 어노테이션 ] Spring에서는 클래스나 인터페이스 또는 메소드에 부여할 수 있는 @Transactional이라는 어노테이션을 제공하고 있다. 이 어노테이션이 붙으면 스프링은 해당 타깃을 포인트 컷의 대상으로 자동 등록하며 트랜잭션 관리 대상이 된다. 즉, 이 어노테이션을 통해 포인트 컷에 등록하고 트랜잭션 속성을 부여하는 것이다. 이렇듯 AOP를 이용해 코드 외부에서 트랜잭션의 기능을 부여해주고 속성을 지정할 수 있게 해주는 것을 선언적 트랜잭션(declarative transaction)이라고 한다. 반대로 TrnasactionTemplate이나 개별 데이터 기술의 트랜잭션 API를 이용해 직접 코드안에서 사용..
아래의 내용은 토비의 스프링의 2권 2장을 참고해서 작성하였습니다. 1. Spring 트랜잭션의 세부 설정(전파 속성, 격리수준, 읽기전용, 롤백/커밋 예외 등) [ 전파 속성(Propagation) ] Spring이 제공하는 선언적 트랜잭션(트랜잭션 어노테이션, @Transactional)의 장점 중 하나는 여러 트랜잭션 적용 범위를 묶어서 커다란 하나의 트랜잭션 경계를 만들 수 있다는 점이다. 우리는 Spring이 트랜잭션을 어떻게 진행시킬지 결정하도록 전파 속성을 전달해야 하는데, 이를 통해 새로운 트랜잭션을 시작할지 또는 기존의 트랜잭션에 참여할지 등을 결정하게 된다. Spring이 지원하는 전파 속성은 다음의 7가지가 있다. REQUIRED SUPPORTS MANDATORY REQUIRES_NE..