이것저것 해보기🌼

Spring 핵심 본문

BE/Spring Boot

Spring 핵심

realtree 2021. 7. 5. 14:27

스프링 프레임워크의 구성

: 약 20개

https://spring.io/projects/spring-framework

 

스프링 핵심기능 

: DI, AOP, ...

   - AOP : 로깅, 트랜잭션 관리, 시큐리티에서의 적용

 

중점적으로 다루는 모듈

: 스프링 부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티

 

 

스프링의 과제
테스트의 용이성, 
느슨한 결합

 

 

1) IoC / DI

의존 관계 주입

 

IoC (Inversion of Control) : 일반적인 Java 객체를 new로 생성하여 관리하지 않고, Spring Container에 맡긴다.

즉, 객체관리의 권한이 개발자에서 프레임워크로 넘어간다.

 

DI (Dependency Injection) : 의존성을 코드로부터 격리시켜 코드테스트에 용이하다. 

불가능한 상황을 Mock과 같은 기술을 통하여 안정적으로 테스트가 가능하다. 

코드를 확장하거나 변경할때 영향을 최소화하고, 순환참조를 막을수 있다.

 

 

 

2) PSA 

이식가능한 추상화

 

 

3) AOP (Aspect Oriented Programming)

관점중심 프로그래밍

 

 MVC 웹 애플리케이션

- Web Layer : REST API를 제공하며, Client 중심의 로직적용

- Business Layer  : 내부 정책에 따른 login을 개발

- Data Layer : 데이터베이스 및 외부와의 연동 처리

 

주요 Annotation

@Aspect   : AOP 정의하는 class

@Pointcut : 기능을 어디에 적용시킬지

@Before   : 메소드 실행하기 이전

@After     : 성공적으로 실행 후 

@AfterReturning : 메소드 호출 성공실행시

@AfterThrowing : 메소드 호출실패 예외발생

@Around

 

 

'BE > Spring Boot' 카테고리의 다른 글

Annotation 정리  (0) 2021.07.05
[AOP] 메소드 로그 찍기, Decode/Encode 하기  (0) 2021.07.05
[Object Mapper] Object 를 text로 바꾸기  (0) 2021.07.05
Response 내려주기  (0) 2021.07.03
[REST API] DELETE 다루기  (0) 2021.06.30