leehyeon-dv 님의 블로그
스프링 부트 시작하기 본문
엔터프라이즈 애플리케이션이란?
대규모의 복잡한 데이터를 관리하는 애플리케이션
이게 복잡해져서 스프링 프레임워크가 등장!
스프링 프레임워크
서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구
스프링의 설정이 복잡하다는 단점 → 스프링 부트 출시
📌 스프링 부트와 스프링의 차이
- 구성
- 스프링 = 애플리케이션 개발에 필요한 환경을 수동으로 구성하고 정의
- 스프링부트 = 스프링 코어와 스프링 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.21 |
---|---|
스프링 부트 3 둘러보기 (1) | 2024.12.20 |
백엔드 개발자가 알아두면 좋은 지식 (1) | 2024.12.19 |
테스트 코드 (4) | 2024.11.28 |
의존성 주입이란 무엇일까? (0) | 2024.11.28 |