pat coding

[Spring] 스프링 개념정리 본문

Interview

[Spring] 스프링 개념정리

uuukpyo 2020. 4. 7. 14:11
728x90

1. 스프링 프레임워크란?

자바 웹 애플리케이션 개발을 위한 오픈소스  프레임워크


2. 특징?

1. 의존성 주입(DI)

- IOC Container 가 개발자 대신 xml 파일에 정의된 대로 Bean 객체를 생성하고 의존성을 대신 주입하는 것

 

2. 제어 역행(IOC)

-서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법

-사용자가 작성한 메타데이터(xml 또는 @(어노테이션))에 따라 Bean 클래스를 생성 및 관리 하는 Spring의 핵심 컴포넌트

 

 1. XML 파일 기술

  - 코드와 의존성 주입하는 부분 분리해서 유지보수성을 높일 수 있다.

  - 시스템이 거대해지면 XML파일이 너무 많아서 오히려 유지보수가 어려워짐

 2. @(어노테이션) 사용 

  - 직관적인 코드 작성 가능, 개발의 생산성 증대

 

3. 관점 지향(AOP)

- 보안, 로그, 트랜잭션과 같이 반드시 처리가 필요한 부분을 별도 모듈로 분리

- 중복 코드를 줄이고 핵심 비즈니스 로직에만 집중하며 원하는 관심사의 유지보수가 수월한 코드 구성에 용이함

 

- 용어정리

   1. Target 

      - 부가 기능을 부여할 대상을 의미

   2. Aspect

      - 부가기능 모듈

   3. Advice

      - Aspect가 무엇을 언제 할지를 정의

      - 부가기능을 담은 구현체를 의미

   4. JoinPoint

      - Advice가 적용 될 수 있는 위치

   5. PointCut

      - 부가기능이 적용될 메소드를 선정하는 방법

   6. Proxy

      - 타겟에 대한 요청을 대신 받아 메소드 실행의 전처리, 후처리를 실행

   7. Weaving

      - pointcut에 의해서 joinpoint에 Advice를 삽입하는 과정

 

4. POJO

- 특정 규약과 환경에 종속되지 않는다.

- 코드의 간결함, 자동화 테스트에 유리


3. 스프링을 사용하는 이유?

  - 복잡한 엔터프라이즈 시스템을 빠르게 작성 가능

  - 의존성 주입을 통한 유지보수에 용이하다는 특징을 가지고 있다. 

 

 

728x90
Comments