본문 바로가기

분류 전체보기30

[Section 5] AOP 해당 게시물은 백기선님의 스프링 프레임워크 핵심 기술 강좌를 정리한 내용 입니다. 1. 스프링 AOP : 개념 소개 AOP (Aspect-Oriented Programming : 관점 지향 프로그래밍) - AOP는 OOP를 보완하는 수단으로, 핵심 기능에서 부가 기능을 분리하여 이 분리한 부가 기능을 Aspect라는 모듈 형태로 만드는 프로그래밍 기법을 말합니다. ※ 핵심 기능(Core Concerns) : 비즈니스 로직을 말합니다. Ex) 게시글 관리, 회원 관리 등 부가 기능(Cross-cutting Concerns, 흩어진 관심사) : 핵심 기능을 도와주는 부가적인 기능을 말합니다. Ex) 로깅, 보안, 트랜잭션 처리 등 AOP 관련 용어 ① Aspect - 부가 기능을 모듈화한 것을 말함 - As.. 2020. 10. 16.
[Section 4] SpEL (스프링 Expression Language) 해당 게시물은 백기선님의 스프링 프레임워크 핵심 기술 강좌를 정리한 내용 입니다. 스프링 EL 이란? - SpEL은 객체 그래프를 조회하고 조작하는 기능을 제공한다. - Unified EL 과 비슷하지만, 메서드 호출을 지원하며, 문자열 템플릿 기능도 제공한다. - OGNL, MVEL, JBoss EL 등 자바에서 사용가능한 여러 EL이 있지만 SpEL은 Spring 프로젝트 전반에 걸쳐 사용하기 위해 만들어졌으며 스프링 3.0부터 지원된다. SpEL 문법 ① 표현식 #{"표현식"} : "표현식"을 평가(실행) 합니다. ※ 표현식 안에는 프로퍼티를 사용 할 수 있지만, 반대는 안 됨. #{${my.data} + 1} 는 가능 ② 프로퍼티 참조 ${"프로퍼티"} : "프로퍼티"를 참조할 때 합니다. 빈이 .. 2020. 10. 10.
Section 3. 데이터 바인딩 추상화: Converter와 Formatter 해당 게시물은 백기선님의 스프링 프레임워크 핵심 기술 강좌를 정리한 내용 입니다. Converter - S 타입을 T 타입으로 변환할 수 있는 매우 일반적인 변환기. - 상태 정보 없음 == Stateless == 쓰레드 세이프 - ConverterRegistry 에 등록해서 사용 Converter를 이용한 데이터 바인딩 1) Converter 구현 Converter 인터페이스를 구현하는 클래스를 작성 합니다. Converter는 두 개의 제네릭 파라미터를 받습니다. 첫 번째는 source 타입, 두 번째는 target 타입이다. 현재 예제의 경우 text를 Event로 변환해야 하므로 Converter만 구현하면 된다. public class EventConverter { public static cl.. 2020. 10. 5.
[Section 3] 데이터 바인딩 추상화 : PropertyEditor 해당 게시물은 백기선님의 스프링 프레임워크 핵심 기술 강좌를 정리한 내용 입니다. 데이터 바인딩 정의 - 기술적인 관점 : 프로퍼티의 값을 타겟 객체에 설정하는 기능이다. - 사용자 관점 : 사용자가 입력한 값을 애플리케이션 도메인 객체에 동적으로 변환해 넣어주는 기능이다. → 사용자가 입력한 값은 주로 문자열이며 이 문자열을 객체가 가지고 있는 다양한 프로퍼티 타입으로 변환해서 넣어주는 기능을 말한다. * 다양한 프로퍼티 타입 : int, long, boolean, Date 등 심지어 Event, Book과 같은 도메인 타입을 말한다. - Spring은 데이터 바인딩 기능을 여러 인터페이스(PropertyEditor, Converter, Formatter)로 추상화하여 제공 합니다. - Property.. 2020. 10. 1.
[Section 2] Validation 추상화 해당 게시물은 백기선님의 스프링 프레임워크 핵심 기술 강좌를 정리한 내용 입니다. Validator 인터페이스 - Validator는 애플리케이션에서 사용하는 객체를 검증하는 기능을 제공하는 인터페이스이다. - 어떤 특정 계층에 사용하는 기능이 아닌 모든 계층에서 사용할 수 있다. (웹, 서비스, 데이터 계층 등...) - Java EE 표준 스펙 중 하나인 Bean Validation의 애노테이션들을 사용해서 객체를 검증할 수 있다. Validator 인터페이스를 구현하는 클래스 - Validator 인터페이스를 구현하는 클래스는 아래의 메서드를 구현해야 한다. ① boolean supports(Class clazz) : 파라미터로 전달되는 클래스 타입이 해당 Validator가 검증할 수 있는 클래스.. 2020. 9. 13.
[Section 2] Resource 추상화 해당 게시물은 백기선님의 스프링 프레임워크 핵심 기술 강좌를 정리한 내용 입니다. Resource - Resource는 java.net.URL을 추상화한 인터페이스다. - 그리고 스프링 내부에서 많이 사용하는 인터페이스이다. Resource를 추상화한 이유 - java.net.URL 클래스는 클래스 패스를 기준으로 리소스를 읽어오는 기능이 없다. - ServletContext를 기준으로 상대 경로로 리소스를 읽어오는 기능이 없다. - 새로운 핸들러를 등록하여 특별한 URL 접미사를 만들어 사용할 수는 있지만 구현이 복잡하고 편의성 메소드가 부족하다. Resource 인터페이스 구현체 - Resource 인터페이스를 구현한 주요 구현체들은 아래와 같다. ① UrlResource : URL을 기준으로 리소스.. 2020. 9. 13.