Published 2021. 6. 11. 20:00
728x90
반응형

1️⃣ 제어 반전, IoC (Inversion of Control)를 지원함. (예시가 DI)

컨트롤의 제어권이 개발자가 아니라 프레임워크에 있음
객체의 생성부터 모든 생명주기의 관리까지 객체의 제어권이 바뀐 것을 의미함
객체를 생성하고, 직접 호출하는 자바프로그램이 아니라, 만들어둔 자원을 프레임워크에서 호출해서 사용함

 

 

2️⃣ 의존성 주입, DI (Dependency Injection) 를 지원함. @Autowired 등

객체간의 의존관계를 관리하는 기술
어떤 객체가 필요로 하는 객체를 자기 자신이 직접 생성하는 것이 아니라, 외부에 있는 다른곳에서 자신이 필요로 하는 객체를 주입받는 것

 


3️⃣ POJO (Plain Old Java Object) 방식의 프레임워크

일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어서 개발이 쉬우며, 기존 라이브러리의 지원이 용이함
자바 객체로 다른 객체와 서로 관계가 설정(상속, 구현)되어 있지 않은 있지 않은 하나의 객체

 

 

4️⃣ PSA (Portable Service Abstraction) 

스프링은 다른 여러 모듈을 사용함에 있어서 별도의 추상화 레이어 제공 (slf4j)
예를 들어 JPA를 사용할 때에서 Spring JPA를 사용하여 추상화 하므로 실제 구현에 있어서 Hibernate를 사용하든 EclipseLink를 사용하든 사용자는 이 모듈의 의존 없이 프로그램에 집중가능

이렇게 추상화 계층을 사용하여 어떤 기술을 내부에 숨기고 개발자에게 편의성을 주는 것과 더불어 portable이라는 확장 성까지 가지고 있는것을 PSA라고 함

 


5️⃣ 관점지향프로그래밍, AOP(Aspect Oriented Programming)를 지원함 (OOP를 극강의 OOP로 만든게 AOP)

실제 비즈니스 로직과 공통적으로 처리할 로직을 분리해놨다가 필요한때에 적시적기에 사용할 수 있도록 하는것
트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 적용되는데, 이런 코드들을 실제 비지니스 로직과 분리
한때, AOP가 OOP(Object Oriented Programming)를 대체하는 기술로 생각되기도 했지만, 실제로 AOP는 OOP를 더욱 OOP스럽게 보완해 주는 기술임

정리하면, 비즈니스 메소드마다 반복되는 공통 로직을 분리하여 관리하는 것

반응형

'면접 준비 > 기술 면접' 카테고리의 다른 글

접근제어자  (0) 2021.06.15
클래스와 인스턴스(객체)  (0) 2021.06.14
MVC1, MVC2 패턴  (0) 2021.06.10
getter, setter 사용이유  (0) 2021.06.09
객체지향의 특징  (0) 2021.06.08
복사했습니다!