정보관리기술/소프트웨어공학

스프링 부트(Spring Boot) / ①

아이티신비 2024. 1. 23. 11:00

문제6) 스프링 부트(Spring Boot)

 

답)

 

1. 스프링을 더 쉽게 사용할 수 있게 하는, 스프링 부트(Spring Boot) 의 개요

가. 스프링 부트(Spring Boot)의 정의

  • 스프링 프레임워크를 사용하는 프로젝트를 복잡한 설정 없이 쉽고 빠르게 만들어주는 라이브러리/프레임워크

 

나. 스프링 부트의 장점

라이브러리관리 자동화
스프링 부트의 Starter 라이브러리를 등록하여 라이브러리 의존성 관리
라이브러리 버전 자동관리
pom.xml 에 스프링 부트 버전을 입력하면 스프링 라이브러리뿐 아니라 서드파티 라이브러리 버전도 관리
설정의 자동화
@EnableAutoConfigration 어노테이션을 선언해서 스프링에서 자주 사용했던 설정들을 알아서 등록
내장 Tomcat
스프링 부트는 Tomcat 을 내장하고 있기 때문에 @SpringBootApplication 어노테이션이 선언되어 있는 클래스의 main() 메소드를 실행하는 것만으로 서버를 구동 시킬 수 있음
독립적으로 실행 가능한 JAR
스프링 부트는 내장 톰캣을 지원하기 때문에 JAR 파일로 패키징해서 웹 애플리캐이션을 실행시킬 수 있음

 

2. 스프링 부트(Spring Boot) 의 Architecture 및 구성요소

가. 스프링 부트의 Architecture

 

나. 스프링 부트의 구성요소

구분
항목
설명
Layer
Controller Layer
  • UI에서 요청을 받고 응답을 전달
Service Layer
  • 주요 비즈니스 로직을 구현
Repository Layer
  • 데이터베이스에서 가져올 쿼리를 구현
  • JAP를 이용하는 경우 정해진 규측에 따라서 메소드를 사용하거나, 만들어 놓으면 적절한 쿼리를 수행할 수 있음
Domain Layer
  • 실제로 데이터베이스 물리 테이블과 1:1 매핑이 되어 바인딩 됨
Annotation
@RestController
  • @Controller 와 @Response Body 를 합친 어노테이션으로 메소드의 반환 결과를 JSON 형태로 반환
@RequestMapping
  • 요청 URL 을 어떤 메소드가 처리할 것인지 매핑
@Bean
  • 스프링 컨테이너가 Bean 을 등록
@Autowired
  • 생성차나 setter 메소드 없이 의존성을 주입해서 자동으로 객체를 생성
@Configuration
  • 해당 클래스가 환경 설정과 관련된 파일이라는 것을 알려줌
@ConfigurationProperties
  • 프로퍼티 파일을 읽어와서 해당 값들을 사용할 수 있게 만들어 줌
@Transactional
  • 해당 클래스 또는 메소드에 트랜잭션을 적용
@Controller
  • 요청과 응답을 처리해주는 클래스에 사용
@Service
  • 비즈니스 로직을 담당하는 클래스에 사용
@Repository
  • DB에 엑세스하는 클래스에 사용
@ExceptionHandler
  • 컨트롤러 단에서 발생하는 예외를 잡아서 처리해주는 메소드 사용
@ControllerAdvice
  • 전역에서 발생하는 예외들을 잡아서 처리해주는 클래스에 사용
  • 스프링 부트 사용 시 스프링 프레임워크에서 관리하기 어려웠던 사항에 대한 개발자 편의성을 높임

3. 스프링 부트의 일반적인 소스 코드 구조


 

 


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥

'정보관리기술 > 소프트웨어공학' 카테고리의 다른 글

로우코드(Low Code) / ①  (3) 2024.01.24
의존성 주입(Dependency Injection)  (1) 2024.01.24
오픈소스(Open Source)  (1) 2024.01.23
UI/UX 설계기준  (1) 2024.01.23
Usecase Diagram  (1) 2024.01.23