[Spring] Spring Framework / Spring Boot

형이·2023년 9월 20일

Spring

목록 보기
1/21
post-thumbnail

📝 Spring

🖥️ 1. Framework

1-1. Framework란?

  • '뼈대나 근간'을 이루는 코드들의 묶음
  • 프로그램의 기본 흐름이나 구조를 정하고, 이 구조에 자신의 코드를 추가하는 방식으로 개발할 수 있도록 하는 프로그래밍의 기본 틀을 의미
  • 개발에 필요한 구조가 제공되고, 여기에 필요한 부분을 조립하는 형태로 개발이 진행된다.

1-2. 라이브러리란?

  • 라이브러리란 자주 사용되는 조직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합

1-3. Framework vs 라이브러리

  • 프레임워크는 자동차의 프레임, 즉 기본적으로 구성하고 있는 뼈대를 말한다.
  • 라이브러리는 자동차의 기능을 하는 부품을 의미한다.
  • 한 번 정해진 자동차의 프레임은 바꿀 수 없음 (= 프레임워크는 한 번 정해지면 바꿀 수 없음)
 소형차를 만들기 위해 뼈대를 사용하는데, 이 뼈대로 SUV를 만들 수 없다. (Framework)
 그러나 바퀴나, 선루프, 헤드라이트 등은 비교적 다른 종류로 쉽게 바뀔 수 있다. (라이브러리)

🖥️ 2. Spring

2-1. Spring이란?

  • 스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 불린다.
  • 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.

2-2. Spring vs Spring Boot

Spring 관련 문서

스프링 프레임워크는 기능이 많은 만큼 환경설정이 복잡한 편. 스프링 부트는 스프링 프레임워크를 사용하기 위한 복잡한 환경설정을 자동화하여 사용자가 편하게 스프링을 사용할 수 있도록 도와준다.

스프링 부트 내부에는 Tomcat이 포함되어 있기 때문에 따로 Tomcat을 설치할 필요가 없다.

2-3. Spring Boot 설정

📌 Embed Tomcat

  스프링 부트는 내장형 톰캣을 가지고 있기 때문에 별도의 톰캣을 설정할 필요가 없어졌으며, 그렇기 때문에 독립적으로 실행 가능한 jar로 손쉽게 배포가 가능해졌다.

📌 AutoConfigurator

  공통적으로 필요한 DispatcherServlet과 같은 설정을 어노테이션을 이용하여 대신할 수 있도록 해준다.

  스프링 부트의 main 메서드는 @SpringBootApplication 어노테이션을 가지고 있는데, 이것은 ComponentScan + configuration + EnableAutoConfiguration을 합친 어노테이션이라고 볼 수 있다.

@SpringBootApplication
public class CoreApplication {
	public static void main(String[] args) {
		SpringApplication.run(CoreApplication.class, args);
	}
}

  • @ComponentScan은 @component 어노테이션 및 @Service, @Repository, @Controller 등의 어노테이션을 스캔하여 Bean으로 등록해주는 어노테이션

  • @EnableAutoConfiguration은 사전에 정의한 라이브러리들을 Bean으로 등록해 주는 어노테이션 (사전에 정의한 라이브러리들 모두가 등록되는 것은 아니고 특정 Condition(조건)이 만족될 경우에 Bean으로 등록)

[Spring Boot] @SpringBootApplication 이란?

0개의 댓글