Spring Framework (2)

강호수·2022년 10월 12일
0

시스템 아키텍처

하드웨어, 소프트웨어 모두를 포함하는 시스템의 전체적인 구성을 큰 그림으로 표현한 것이다. 시스템 아키텍쳐를 통해 어떻게 사용되는지를 대략적으로 알 수 있다.

소프트웨어 아키텍처

웹 애플리케이션 아키텍처

애플리케이션 아키텍처 유형은 다양하게 있지만 우리는 앞으로 계층형 아키텍처를 쓰게 될 것이다.

  • API 계층
    클라이언트의 요청을 받아들이는 계층이고, REST API를 제공하는 애플리케이션을 API 계층이라고 표현한다.
  • 서비스 계층
    API 계층에서 절달 받은 요청을 요구 사항에 맞체 처리하는 계층
  • 데이터 액세스 계층
    비즈니스 계층에서 처리된 데이터를 DB등의 데이터 저장소에 저장하기 위한 계층

위의 세가지 계층을 통해서 정보가 주고받아지는 것을 계층형 아키텍처라고 하게 된다.

Spring Framework 모듈 아키텍처


Spring Framework에서 지원하는 모듈을 아키텍처의 형태로 나타낸 것이 위의 그림이다.
이 때 모듈은 지원되는 기능들을 그룹화 하여 묶어놓은 것이고, 이것들은 Java의 패키지 단위로 묶여져 있다. 그리고 이 모듈들은 재사용 가능하도록 라이브러리 형태로 제공된다.

Spring Boot

Spring Boot가 생기기 이전에 Spring 애플리케이션 개발을 위한 설정은 매우 복잡했다. 하지만 Spring Boot가 개발되고, 어려움이 많이 줄어들었다.

위와 같이 스프링 프로젝트의 'build.gradle' 파일을 들어가보면 dependencies가 설정되어있는 것을 알 수 있다.

위의 것은 External Libraries의 일부분인데, 이것과 같이 library 선언이 되어있어 개발자가 직접 관리해야하는 부담에서 벗어날 수 있다.

Spring Boot는 스타터 모듈을 통해 설치되는 의존 라이브러리를 기반으로 애플리케이션의 설정을 자동으로 구성한다.
위에서 dependencies 사진을 보면 implementation 'org.springframework.boot:spring-boot-starter-web' 이라는 부분을 볼 수 있다.
이것은 웹 애플리케이션이라고 추측한 뒤, 서블릿 컨테이너인 Tomcat을 구성한다.

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

위와 같은 코드를 작성해주면 알아서 Spring에서 설정한 정보들을 실행해준다.

"Spring 구성은 Spring에게 맡기고 비즈니스 로직에만 집중하자"

0개의 댓글