728x90

Spring 26

[AOP] JoinPoint와 바인드 변수

횡단 관심의 어드바이스 메서드를 의미 있게 구현하기 위해서는 현재 수행 중인 비즈니스 메서드의 정보를 파악하는것이 좋다. 예를 들어 로그를 남길때 CRUD(select, insert, update, delete)를 사용하고 그에 맞는 각각의 로그가 나온다면 더 정확한 로직을 구현할 수 있게 된다. joinpoint는 현재 수행 중인 포인트컷을 의미하며 joinpoint를 인자로 가지게되면(ex. pjp) 현재 수행중인 비즈니스 메서드의 시그니쳐 등을 알 수 있다. public void printLog(JoinPoint jp) { String methodName = jp.getSignature().getName(); // 현재 수행중인 포인트컷(핵심로직,CRUD)의 메서드명 Object[] args = j..

Spring 2022.09.17

AOP(관점 지향 프로그래밍)

AOP(Aspect Oriented Programming)이란 관점 지향 프로그래밍으로 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어 그 관점을 기준으로 각각 모듈화 하는 것으로 즉, 공통된 로직(횡단 관심)이나 기능을 하나의 단위로 묶어 어떤 횡단 관심을 어떤 핵심 로직에 연결할지 설정하는 것을 말한다. - 공통 로직의 예) 로깅, 예외처리, 트랜잭션, 보안(인증, 인가, 허가),....... 사용하기 위해서는 우선 pom.xml에 설정을 추가 해주어야한다. org.aspectj aspectjrt ${org.aspectj-version} org.aspectj aspectjweaver 1.8.8 용어 정리 Advice - 횡단 관심 pointcut - 횡단 관심을 적용할 핵심 로직을 의미..

Spring 2022.09.16

어노테이션(@)을 이용한 의존성 주입

.xml의 단점으로는 의존관계를 파악하기 어렵고(복잡하다), 설정이 과도하다(무겁다)는 것이 있다. 하나의 클래스 내부에 여러 개의 객체로 된 멤버 변수가 존재하거나 bean으로 등록된 객체의 수가 많아지면서 발생될 수 있는 문제이다. 개발자들은 JAVA 코드와 함께 의존관계를 파악하기를 선호하기 때문에 어노테이션(@)을 이용해 JAVA코드에 xml 설정을 추가하는 것과 같이 사용한다. 어노테이션(Annotation)이란, 사전적 의미로 주석이라는 뜻을 가지고 있으며 자바에서는 소스코드에 추가해서 사용할 수 있는 메타 데이터의 일종이다. 메타 데이터란 애플리케이션이 처리해야 할 데이터가 아니라 컴파일 과정과 실행 과정에서 코드를 어떻게 처리해야 할지를 알려주기 위한 정보이다. 클래스 파일에 임베드되어 컴..

Spring 2022.09.15

IoC(제어의 역행)과 DI(의존성 주입)

DI란 Dependency Injection으로 모듈 간의 의존성을 모듈의 내부가 아닌 외부(컨테이너)에서 주입시켜주는 것으로 IoC(제어의 역행)의 한 종류이며 외부에서 필요한 객체를 결정하기 때문에 개발자는 직접 연결할 필요가 없고 인터페이스를 이용하여 편리하게 관리할 수 있다. 의존관계를 IoC하는 방법 ( 의존성을 주입하는 방법) 1) 생성자 인젝션 (Constructor Injection) 생성자를 이용하여 의존성을 주입하는 방식으로 클래스 생성 시 인자를 받아 생성되는 생성자를 만들어 설정 파일에서 태그를 이용하여 인자를 주입시켜 준다. 2) setter 인젝션 (Setter Injection) 인자가 없는 기본 생성자를 사용하여 객체를 생성한 후, setter 메서드로 의존성을 주입하는 방식..

Spring 2022.09.14

Ioc (제어의 역행)

IoC(Inversion of Control) 제어의 역행이란 기존의 자바 코드에서 객체화를 진행할 때에는 A a = new A(); 와 같이 new 를 사용하여 객체화를 진행했지만 이러한 일련의 작업들을 소스코드로 처리하지 않고 컨테이너가 객체화를 처리함으로써 소스코드에 new를 없애(의존관계를 명시한다.) 결합도를 낮추고 유지보수를 용이하게하는 행위를 의미한다. 위와 같은 행위를 위해서는 web.xml 파일(서블릿 컨테이너에게 설정을 알려주는 파일)에 설정을 해주어야 한다. 서블릿에 관련된 설정으로 어떤 것을 만들고 언제 호출할까 등을 설정해주며 이로써 new를 작성하지 않았지만 서블릿 컨테이너를 통해 객체화가 가능하다. (이를 위해서는 항상 기본 생성자가 필요하다.) .xml 파일은 @(어노테이션)..

Spring 2022.09.14

Spring 설치 및 설정 + 장점

플러그인 방식으로 설치하기 위해 이클립스 Help -> 마켓플레이스에서 sts 검색 후 툴과 애드온 설치 ( 툴을 먼저 설치) 이후 설치가 잘 완료되었다면 properties에서 스프링 확인 가능 프로젝트 생성 -> Spring Legacy Project 생성 생성 시 하단 템플릿에서 스프링 MVC 프로젝트로 생성 프로젝트 우클릭 -> properties -> Maven -> project facets -> java 버전 설정 -> runtimes -> 서버 추가 src/main/resources -> 하위 log4j.xml을 제외한 모든 파일을 제거 src -> main -> webapp -> WEB-INF -> spring, view 제거 web.xml -> 루트 요소(최상위 요소)만 남기고 전부 제..

Spring 2022.09.13
728x90