Spring Boot 시작하기 ①

양현지·2023년 8월 14일
1

Web

목록 보기
4/10

1. Spring framework

1) Spring

스프링 프레임워크는 Java 기반의 어플리케이션 프레임워크

ⓐ 제어 역전(IoC)

  • Inversion of Control
  • 일반적인 제어권 : 내가 인스턴스를 직접 생성한 후 관리
public class OrderService {
    private OrderRepository orderRepository;

    public OrderService() {
        this.orderRepository = new OrderRepository();
    }
}
  • IoC : 객체 생성과 의존성 주입을 컨테이너에 맡김
@Service
public class OrderService {
    private OrderRepository orderRepository;

    @Autowired
    public OrderService(OrderRepository orderRepository) {
        this.orderRepository = orderRepository;
    }
}
  • OrderService 객체의 생성과 OrderRepository 객체의 주임을 Spring IoC 컨테이너가 처리

ⓑ 의존성 주입(DI)
: 제어 역전의 방법 중 하나, 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식

스프링에서 의존성을 주입"받는" 방식

  • 생성자를 통한 의존성 주입
  • 필드 객체 선언을 통한 의존성 주입
  • setter 메서드를 통한 의존성 주입
  • 생성자를 통한 의존성 주입
    public class DIController{
    	MyService myService;
    public DIController(MyService myService){
    	this.myService = myService;
    }
  • 필드 객체 선언을 통한 의존성 주입
public class FieldInjectionController{
	private MyService myService;
}
  • setter 메서드를 통한 의존성 주입
public class SetterInjectionController{
	MyService myService;
    public void setMyService(MyService myService){
    	this.myService = myService;
    }
}

ⓒ 관점 지향 프로그래밍(AOP)

  • Aspect-Oriented Programming
  • C++(객체 지향 프로그래밍임)과 비교하여 이해해보도록 하자.
  • AOP는 OOP를 더욱 잘 활용하도록 하는 컨셉

ⓓ 모듈

  • 스프링 프레임워크에서 제공하는 모듈을 사용해 더욱 간편히 개발하도록 지원

2) Spring vs Spring boot

"Spring Boot makes it easy to create stand-alone,production-grade Spring based Applications that you can just run"

스프링에 필요한 복잡한 설정없이 스프링 부트를 사용해 간편하게 개발할 수 있다는 것

2. Spring Boot

1) 의존성 관리

  • 스프링
1. 개발에 필요한 각 모듈의 의존성을 직접 설정
2. 호환되는 버전을 명시해야 정상 작동하므로, 어플리케이션에서 사용하는 스프링 프레임워크 & 라이브러리 버전을 명시할 떄 연관된 다른 라이브러리의 버전을 모두 고려해야함
  • 스프링 부트
1. spring-boot-starter (의존성)을 제공
2. spring-boot-starter 에서 각 라이브러리의 기능과 관련해 자주 사용되고 호환되는 버전의 모듈 조합을 제공하여 개발자는 보다 쉽게 라이브러리 호환 문제를 해결

2) 자동 설정

  • 스프링 부트는 스프링 프레임워크의 기능을 사용하기 위한 자동 설멍 기능을 지원
  • 추가된 라이브러리를 위해 필요한 환경 설정을 알아서 찾아줌.

3) 내장 WAS(Web Application Server)

  • 웹 개발의 기본 의존성('spring-boot-starter-web')이 톰캣을 내장
  • 특별한 설정 없이 톰캣 실행 가능

4) 모니터링

  • 시스템의 스레드, 메모리, 세션 등의 주요 요소 모니터링을 위해 도구(Spring Boot Actuator)를 제공
여기까지 스프링 부트를 시작하기에 앞서 필요한 사전 지식을 기재

0개의 댓글

관련 채용 정보