대규모의 복잡한 데이터를 관리하는 애플리케이션.
스프링 프레임워크
서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구.
설정이 매우 복잡 → 스프링 부트.
차이점 1 : 구성
스프링 - 모든 환경을 수동으로 설정
스프링 부트 - 스프링 코어와 스프링 MVC의 모든 기능을 자동 로드 → 수동 x
차이점 2 : 내장 WAS의 유무
웹서버는 정적인 컨텐츠만, was는 어떤 애플리케이션을 돌리고, DB를 연결하고, 어떤 로직을 수행해서, 만든 데이터를 전달
상황에 따라 변하는 정보를 제공할 수 있는가?
Inversion of Control - 제어의 역전.
클래스 A에서 클래스 B 객체 생성
public class A {
b = new B();
}
스프링은 스프링 컨테이너가 객체를 관리, 제공하는 역할을 한다.
public class A {
private B b;
}
→ 코드에서 객체를 생성하지 않음, 어디선가 받아온 객체를 b에 할당
Dependency Injection - 의존성 주입
⇒ 어떤 클래스가 다른 클래스에 의존한다.
public class A {
//A에서 B를 주입받음.
@Autowired
B b;
}
Bean = 스프링 컨테이너에서 관리하는 객체.
이전 코드에서는 개발자가 직접 B 객체를 생성했지만, 위 코드는 어딘가에서 B b;라고 선언했을 뿐 직접 객체를 생성하진 않음 → 스프링 컨테이너에서 객체 주입받음
스프링 컨테이너가 B 객체를 만들어서 클래스 A에 줌.
스프링의 객체
클래스를 빈으로 등록하는 방법 예
@Component //클래스를 빈으로 등록
public class MyBean {
}
관점 지향 프로그래밍
계좌 이체, 고객 관리 프로그램
이식 가능한 서비스 추상화.
→ 어느 기술을 사용하던 일관된 방식으로 처리하도록 하는 것