[Spring] 용어 사전

용어 사전

용어 설명
Servlet java 코드 안에 HTML 태그가 삽입되어 있는 .java 파일
클라이언트 요청을 처리해서 결과를 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바프로그램
JSP(Java Server Pages) Servlet을 사용하는 대신 간편한 웹 개발을 위한 기술
Java 언어를 기반으로 하는 Server Side 스크립트 언어
html안에서 고유의 문법으로 동적인 기능을 제공한다
JDBC 자바에서 데이터베이스에 접속할 수 있도록 하는 API
단점 : 반복되는 코드가 여러 곳에 존재하여 비효율적이다.
단점 : java 코드와 sql 코드의 분리가 되지 않아 불편하다.
MyBatis 자바의 RDB 개발을 도와주는 프레임워크
장점 : 자바 코드 두 줄로 DB 연동 처리
장점 : java 코드와 sql 코드의 분리하여 XML 파일로 관리
ORM(Object-relational mapping) 객체 설계와 DB 설계를 중간에서 mapping해주는 기술
JPA(Java Persistence API) 현재 자바의 ORM 기술의 표준
Java APP와 JDBC의 사이에서 동작한다.
인터페이스의 모음으로 실제로 동작하지는 않는다.
Hibernate JPA 인터페이스를 구현한 대표적인 오픈소스
Spring Spring Framework
Spring의 3대 요소는 [IoC, DI, AOP]이다.
Aspect AOP에서 여러 객체에 적용되는 공통 기능을 Aspect라고 부른다.
트랜잭션이나 보안 등이 Aspect의 좋은 예이다.
Advice 언제 공통 관심 기능을 핵심 로직에 적용할 지를 정의한다.
예를 들어 메서드를 호출하기 전(언제)에 트랜잭션 시작(공통 기능) 기능을 적용한다는 것을 정의한다.
Joinpoint Advice를 적용 가능한 지점을 의미한다.
메서드 호출, 필드 값 변경 등이 Jointpoint에 해당한다.
스프링은 프록시를 이용해서 AOP를 구현하기 때문에 메서드 호출에 대한 Joinpoint만 지원한다.
PointCut Joinpoint의 부분 집합으로서 실제 Advice가 적용되는 Joinpoint를 나타낸다.
스프링에서는 정규 표현식이나 AspectJ 문법을 이용해서 Pointcut을 정의할 수 있다.
Weaving Advice를 핵심 로직 코드에 적용하는 것을 weaving이라고 한다.
Before Advice 대상 객체의 method 호출 전에 공통 기능을 실행
After Returning Advice 대상 객체의 method가 익셉션 없이 실행된 이후 공통 기능을 실행
After Throwing Advice 대상 개게의 method가 익셉션이 발생한 경우 공통 기능을 실행
After Advice 익센션 발생 여부에 상관없이 대상 객체의 메서드 실행 후 공통을 실행(try-catch-finally의 finally와 비슷)
Arount Advice 대상 객체의 메서드 실행 전, 후, 또는 익셉션 발생 시점에 공통 기능을 실행하는데 사용

Annotation

이름 설명
@Configuration 해당 클래스를 스프링 설정 클래스로 지정
@Bean 해당 메서드가 생성한 객체를 스프링이 관리하는 빈 객체로 등록
@Autowired 의존 관계에 해당하는 타입의 빈을 찾아서 필드에 할당한다.
의존 관계를 설정 클래스에서 명시하지 않아도 된다.
메서드에 붙은@Autowired는 해당 메서드의 파라미터 타입에 해당하는 Bean 객체를 찾아서 인자로 주입한다.
@Qualifier @Autowired에 의해 자동 주입되는 객체가 여러 개인 경우 하나를 특정하기 위해서 사용한다.
A 타입의 객체를 DI해야하는 경우, A 타입의 객체뿐만 아니라 A타입을 상속한 AA타입의 객체도 DI의 대상이 되어 충돌이 난다.
이러한 경우 하나를 특정하기 위해서 사용한다.
@Component Component Scan의 대상으로 지정한다.
객체를 생성해서 Bean으로 등록할 Class임을 나타낸다.
@Component를 사용하면 설정 클래스에서 직접 Bean으로 등록하지 않아도 된다.
@ComponentScan 설정 클래스에 @Component를 붙혀야, 클래스를 스캔해서 스프링 Bean으로 등록할 수 있다.
@ComponentScan(basePackages = {‘spring’}은 spring 패키지와 그 하위에 속한 클래스를 스캔 대상으로 설정한다.
스캔 대상에 해당하는 클래스 중에서 @Component가 붙은 클래스의 객체를 생성해서 Bean으로 등록한다.
@Aspect AOP의 공통 부분을 정의한다.
@Order 다수의 @Aspect가 적용될 때 적용 순서를 지정한다.

Reference

Tags:

Categories:

Updated:

Leave a comment