35DAYS) Spring Framework 기본(2) - Spring Framework 모듈 구성, Spring Boot

nacSeo (낙서)·2022년 12월 7일
0

◉ 학습목표

1. 아키텍처의 의미를 이해하고, 이를 통한 Spring Framework의 모듈(Module) 구성을 이해할 수 있다.
2. Spring Boot를 이해하고, 사용하는 이유를 알 수 있다.
  1. Spring Framework 모듈 구성

⦿ 학습내용

☞ 아키텍처 (Architecture)

✔︎ 요구사항을 만족하는 결과물을 만드는 데에 있어 청사진 역할

☞ 소프트웨어 아키텍처

✔︎ 소프트웨어의 구성을 큰 그림으로 표현한 것

☞ 애플리케이션

✔︎ 소프트웨어 종류의 하나로서 좁게는 데스크탑이나 스마트폰에서 사용하는 응용 프로그램, 넓게는 클라이언트 요청을 처리하는 서버 애플리케이션

☞ REST API 기반 웹 애플리케이션의 계층

✔︎ API 계층 (API Layer)

  • 클라이언트 요청을 받아들이는 계층
  • 일반적으로 표현 계층(Presentation Layer)라고 불림
  • REST API에서는 API 계층이라 불림

✔︎ 비즈니스 계층 (Business Layer), 서비스 계층 (Service Layer)

  • API 계층에서 전달받은 요청을 업무 도메인의 요구 사항에 맞게 비즈니스적으로 처리하는 계층
  • 애플리케이션에 있어 핵심이 되는 계층

※ 도메인 (Domain) : 해결하고자 하는 문제의 영역
※ 도메인 지식 (Domain Knowleage) : 애플리케이션에서 비즈니스 로직으로 표현해야 하는 지식

✔︎ 데이터 액세스 계층 (Data Access Layer)

  • 비즈니스 계층에서 처리된 데이터를 데이터베이스 등의 데이터 저장소에 저장하기 위한 계층

☞ 아키텍처로 보는 Spring Framework 모듈 구성

(출처 : https://docs.spring.io/spring-framework/docs/5.0.0.M5/spring-framework-reference/html/overview.html)
✔︎ 모듈 (Module)

  • 지원 가능한 여러가지 기능들을 목적에 맞게 그룹화하여 묶어 놓은 것
  • Java 패키지 단위로 묶여 있으며, 피키지 안에는 관련 기능을 제공하기 위한 클래스들이 포함
  • 일반적으로 재사용 가능하도록 라이브러리 형태로 제공되는 경우 多
  1. Spring Boot

⦿ 학습내용

☞ Spring Boot

✔︎ Spring 설정의 복잡함이라는 문제를 해결하기 위해 생겨난 Spring Project 중 하나

☞ Spring Boot 사용 이유

✔︎ XML 사용 기반의 복잡한 설계 방식 지양
✔︎ starter 모듈 구성 기능을 통해 의존 라이브러리를 자동으로 구성
✔︎ 애플리케이션 설정의 자동 구성
✔︎ 프로덕션급 애플리케이션 빌드를 손쉽게 가능
✔︎ 내장된 WAS 기능을 사용하기 때문에 배포 용이

☞ Spring Boot 핵심 컨셉

✔︎ Spring 구성은 Spring에게 맡겨버리고 비즈니스 로직에만 집중하자❗️

◉ 느낀 점

☞ 어제 학습했던 Spring Framework의 특징들에 이어서 해당 모듈 구성과 Spring Boot에 대해 알아보았다. 어제에 비해선 비교적 가벼운 내용들이라 다행이였다 😮‍💨 관련해서 영문서를 읽어야 할 때도 있었고, 갈수록 영어로 된 기술 문서를 접해야 하는 경우가 많아 친해지려 노력하는 중이다 ,,, 지금부터 계속 읽는 버릇을 들여야겠다.

◉ 내일의 키워드

・ DI (Dependency Injection)
profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글