개발자가 소프트웨어를 개발하기 위해 사용하는 도구
- 프레임워크: 구조 (개발 환경이자 틀)
- 라이브러리: 기능 모음 (애플리케이션 개발에 필요한 클래스, 함수 등을 모아놓은 코드 모음)
1. 스프링 프레임워크: 엔터프라이즈 애플리케이션을 위한 개발 환경 제공
※ 엔터프라이즈 애플리케이션: 대규모의 복잡한 데이터를 관리하는 애플리케이션
2. 스프링 부트: 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 도와주는 도구
- 설정이 복잡하다는 스프링의 단점 보완
- 스프링 부트는 스프링에 속한 도구
3. 스프링 콘셉트
1) 제어의 역전(IoC, Inversion of Control)
: (객체를 직접 생성하거나 제어하는 것이 아니라) 외부에서 관리하는 객체를 가져와 사용하는 것
2) 의존성 주입(DI, Dependency Injection)
: 어떤 클래스가 다른 클래스에 의존한다.(직접 객체를 생성하지 않고 스프링 컨테이너에서 객체를 주입받고 있음)
3) 스프링 컨테이너와 빈
(1) 스프링 컨테이너: 스프링 프레임워크의 핵심 요소. 빈을 생성하고 관리
(2) 빈: 스프링 컨테이너가 생성하고 관리하는 객체
4) 관점 지향 프로그래밍(AOP, Aspect Oriented Programming)
: 프로그래밍에 대한 관심을 핵심 관점, 부가 관점으로 나누어서 관심 기준으로 모듈화하는 것
5) 이식 가능한 서비스 추상화(PSA, Portable Service Abstraction)
: 스프링에서 제공하는 다양한 기능들을 추상화시켜서 개발자가 쉽게 사용하도록 하는 인터페이스
예) 클라이언트의 매핑과 클래스, 메서드의 매핑을 위한 애너테이션
4. 정리
- IoC: 객체의 생성과 관리를 개발자가 하는 것이 아니라 프레임워크가 대신하는 것
- DI: 외부에서 객체를 주입받아 사용하는 것
- AOP: 프로그래밍을 할 때 핵심 관점과 부가 관점을 나누어서 개발하는 것
- PSA: 어느 기술을 사용하던 일관된 방식으로 처리하도록 하는 것
'Spring Boot' 카테고리의 다른 글
스프링 부트 3 - http://localhost:8080/test, 컨트롤러 생성 (@Controller, @GetMapping 애너테이션) (0) | 2024.03.18 |
---|---|
개발 환경 구축하기 - 인텔리제이 설치 및 설정, 스프링부트3 프로젝트 만들기 (0) | 2024.03.16 |
H2 데이터베이스 연결 오류 (1) | 2024.01.25 |
STS 화면 레이아웃 재설정 (1) | 2024.01.25 |
500 오류 (0) | 2024.01.16 |