목록Back-End/Spring Framework (8)
너와 나의 프로그래밍
[Spring Framework] AOP JoinPoint와 Annotation Chpater1. Advice JointPoint & Bound Variable 어드바이스 메소드를 의미 있게 구현하려면 클라이언트가 호출한 비즈니스 메소드의 정보가 필요하다. 어떤 메소드에서 어떤 동작이 이루어졌는지 알면 굉장히 편하다. 스프링에서는 이런 정보들을 이용할 수 있도록 JoinPoint 인터페이스를 제공한다. JoinPoint Interface Signature getSignature() : 클라이언트가 호출한 메소드의 시그니처(리턴타입, 이름, 매개변수) 정보가 저장된 Signature 객체 리턴 Object getTarget() : 클라이언트가 호출한 비즈니스 메소드를 포함하는 비즈니스 객체 리턴 Objec..
[Spring Framework] AOP Element와 Advice Chpater1. AOP(Aspect Oriented Programming) Element 가장 먼저 AOP를 사용하기 위해서는 pom.xml의 dependency 설정을 통해 라이브러리를 추가한다. 그 후 Spring 설정을 위한 .xml 파일의 namespace에 aop를 추가한다. 그 후 Bean에 AOP 기능을 사용할 Bean을 등록해주면 준비는 끝이다. (pom.xml) org.aspectj aspectjrt 1.9.6 org.aspectj aspectjweaver 1.9.6 (Spring 설정 xml) // AOP기능을 이용할 class를 Bean에 등록. 1. AOP 설정에서 가장 루트가 되는 엘리먼트다. aop:confi..
[Spring Framework] Spring AOP의 개념과 용어 Chpater1. AOP(Aspect Oriented Programming)의 개념 Spring Framework의 비지니스 컴포넌트 개발에서 가장 중요한 '낮은 결합도와 높은 응집도' 개념중 AOP는 '높은 응집도'에 해당한다.(낮은 결합도 = IoC) AOP는 비지니스 로직은 아니지만 비지니스 로직만큼 중요한 역할을 한다.(응...?) 하지만 비지니스 로직에 계속 이러한 부가적인 코드들을 추가하게 되면 비지니스 로직에 매번 반복적인 코드와 함께 코드 분석과 유지보수를 어렵하게 한다. AOP는 이러한 부가적인 '공통 코드'들을 효율적으로 관리하는 데 주목한다. AOP의 핵심 개념은 '관심 분리'에 있다. '관심'은 '횡단 관심'과 '핵..
[Spring] Annotation 기반 설정 - 2 스프링에서 의존성 주입을 지원하는 어노테이션으로는 @Autowired, @Qualifier, @Inject, @Resource등이 있다. 이 중 @Autowired와 @Qualifier는 스프링에서 제공하나 나머지 2개는 지원하지 않는다. (@Autowired와 @Qualifier는 org.springframework, @Inject는 javax.annotaition, @Resource는 javax.Inject에서 지원한다.) 스프링 프레임워크에서 지원하는 어노테이션 2가지를 알아보려고 한다. @Autowired @Autowired는 생성자, 메소드, 맴버변수 위에 모두 사용할 수 있다. 주로 맴버변수 위에 설정하며, 해당 타입의 객체를 찾아서 자동으..
[Spring] Annotation 기반 설정 - 1 스프링 컨테이너는 xml로 설정을 하는데 있어 과도한 설정에 부담도 클 뿐더러 가독성도 점차 떨어지는 문제가 발생한다. 프로젝트의 규모가 커지면 커질수록 유지보수에 있어서도 좋지 않다. 그래서 스프링 프레임워크는 어노테이션(Annotation)을 지원한다. 어노테이션은 기본 Java를 공부하면서 많이 사용된다. 예를들어 Junit을 위한 @Test 어노테이션이라든지 아주 흔히 보는 @Override가 대표적인 어노테이션 기법이다. 이 중 스프링 프레임워크에서 자주 쓰이는 어노테이션을 소개하려고 한다. @Component @Component("id 또는 name") @Component 어노테이션은 기존 스프링 컨테이너 설정 파일인 xml 파일에 bean..
[Spring] 의존성 주입 방식 스프링 프레임워크의 핵심인 IoC를 이해했다면 그 다음 당연히 알아야 될 특징이 '의존성 주입'의 대해서다. IoC의 핵심원리는 '객체의 생성과 의존관계를 컨테이너가 자동으로 관리'해주는 점이기 때문이다. 여기서 의존 관계란 '객체와 객체의 결합 관계'를 이야기 한다. 즉, 하나의 객체에서 다른 객체의 변수나 메소드를 이용해야 한다면 객체에 대한 객체 생성과 생성된 객체의 레퍼런스 정보가 필요하다. 스프링의 IoC는 두 가지로 나뉜다. Dependency Lookup : 필요한 객체를 생성하고 클라이언트는 컨테이너가 생성한 객체를 Lookup(검색)하여 사용하는 방식(실제 개발에서는 사용하지 않음) Dependency Injection : 객체 사이의 의존관계를 스프링 ..