엔터프라이즈 애플리케이션이란?
대규모의 복잡한 데이터를 관리하는 애플리케이션
이게 복잡해져서 스프링 프레임워크가 등장!
스프링 프레임워크
서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구
스프링의 설정이 복잡하다는 단점 → 스프링 부트 출시
📌 스프링 부트와 스프링의 차이
- 구성
- 스프링 = 애플리케이션 개발에 필요한 환경을 수동으로 구성하고 정의
- 스프링부트 = 스프링 코어와 스프링 MVC의 모든 기능을 자동으로 로드해 수동으로 개발환경을 구성할 필요없음
- 내장 WAS의 유무
- 스프링 = 톰갯과 같은 WAS에서 배포
- 스프링 부트 = WAS를 자체 보유 (jar 파일만 만들면 WAS를 설정하지 않아도 애플리케이션 실행가능)
📌IOC(제어의 역전)
다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것
예)
//클래스 A에서 클래스 B 생성
public class A {
b = new B();
}
//제어의 역전 적용
public class A {
private B b;
}
코드에서 객체를 생성하지 않고 어디선가 받아온 객체를 b에 할당
📌DI(의존성 주입)
어떤 클래스가 다른 클래스에 의존한다는 뜻
예)
public class A {
@Autowired
B b
}
Ioc/DI를 기초로 하는 스프링 코드이다
여기에서 사용하는 @Autowired라는 애너테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입하는 역할을 한다
(빈 = 스프링 컨테이너에서 관리하는 객체)
기존은 A에서 B 객체를 쓰고 싶은 경우 직접 생성했지만 스프링의 경우는 스프링 컨테이너에서 객체를 주입받아 사용
📌스프링 컨테이너와 빈
- 스프링 컨테이너 = 빈이 생성괴고 소멸되기까지의 생명주기를 이 스프링 컨테이너가 관리
- 빈 = 스프링 컨테이너가 생성하고 관리하는 객체 (예: 앞에서 본 B)
- 스프링에서 빈을 스프링 컨테이너에 등록 하는 방법
- XML 파일설정
- 애너테이션 추가
@Component //클래스 Exfile을 빈으로 등록
public class Exfile { }
📌AOP (관점 지향 프로그래밍)
핵심관점, 부가 관점으로 나눠서 관심 기준으로 모듈화하는 것
예) 고객관리하는 프로그램
- 핵심관점 = 고객관리
- 부가관점 = 로깅, 데이터베이스 연결
이를통해 프로그래머는 핵심관점 코드에만 집중할 수 있게 되어 프로그램의 변경과 확장에도 유연하게 대응할 수 있음
📌PSA (이식 가능한 서비스 추상화)
스프링에서 제공하는 다양한 기술들을 추상화해 개발자가 쉽게 사용하는 인터페이스
어느 기술을 사용하던 일관된 방식으로 처리하도록 하는 것
- 클라이언트의 매핑과 클래스
- 메서드의 매핑을 위한 애너테이션
'spring > spring 이론' 카테고리의 다른 글
스프링 부트 3 둘러보기 (0) | 2024.12.20 |
---|---|
백엔드 개발자가 알아두면 좋은 지식 (0) | 2024.12.19 |
테스트 코드 (4) | 2024.11.28 |
의존성 주입이란 무엇일까? (0) | 2024.11.28 |