❯ 아키텍처(Architecture)
어떤 시스템을 구축할 때 해당 시스템의 비즈니스적 요구사항을 만족하는 전체 시스템 구조를 정의하는것을 의미한다.
이미지나 도형을 사용해 표현하는 경우가 많다.
- 시스템 아키텍처 : 하드웨어와 소프트웨어를 모두 포함한 어떤 시스템의 전체적 구성을 표현한것
이를 통해 해당 시스템이 어떤 하드웨어로 구성되는지, 어떤 소프트웨어를 사용하는지 대략적으로 알 수 있다.
구성요소간의 상호작용이 어떻게 이루어지는지, 시스템이 정상적으로 동작하기 위한 원리 등을 표현할 수 있다.
아래 그림은 채팅 서버 시스템 아키텍처를 간단하게 나타낸 예시이다. - 소프트웨어 아키텍처 : 소프트웨어의 구성을 큰 그림으로 표현한것
해당 소프트웨어가 어떤 기술을 지원하고 어떤 기능을 사용할 수 있는지 대략적으로 알 수 있다. - 애플리케이션 아키텍처 : 애플리케이션이란 소프트웨어의 한 종류로, 웹 애플리케이션은 주로 계층형 아키텍처(N-티어)를 사용한다.
대표적으로 API 계층, 서비스 계층, 데이터 액세스 계층으로 구분된다.
REST API 기반 웹 애플리케이션의 계층형 아키텍처를 조금 더 자세히 알아보자.
- API 계층 : 클라이언트의 요청을 받아들이는 계층을 말한다.
- 서비스 계층 : API 계층에서 전달받은 요청을 요구사항에 맞게 비즈니스적으로 처리하는 계층이다.
실질적으로 요구사항을 수행하는 계층이라고 이해할 수 있다. 필요한 각각의 업무들을 도메인 지식(Domain Knowledge)이라고
하며 서비스 계층에서는 이러한 내용을 비즈니스 로직으로 구현하게 된다. - 데이터 액세스 계층 : 서비스 계층에서 처리된 데이터를 데이터 저장소에 저장하기 위한 계층을 말한다.
❯ Spring Boot
스프링 프레임워크를 개발하고있는 스프링 팀은 스프링 프레임워크를 중심으로 다양한 프로젝트의 개발을 진행하고 있다.
Spring Boot 또한 이러한 스프링 프로젝트 중 하나이다.
스프링은 환경설정이 복잡한 편이다. Spring Boot는 이를 통해 필요한 환경설정을 최소화 하고 개발자가 비즈니스 로직에만 집중할 수 있도록 도와주는 프로젝트이다.
<Spring Boot를 사용해야하는 이유>
- XML 기반의 복잡한 설계 방식 지양 : 스프링의 복잡한 설정을 할 필요가 없음
- 의존 라이브러리 자동 관리 : starter 모듈을 통해 의존 라이브러리를 자동으로 설정
- 애플리케이션 설정 자동 구성 : 의존 라이브러리를 기반으로 애플리케이션 설정을 자동으로 구성함
- 프로덕션급 애플리케이션 빌드 : 코드를 쉽게 빌드해주므로 직접 War파일 형태로 WAS*에 올릴 필요가 없음.
WAS(Web Application Server)는 서블릿 컨테이너라고도 불리며, 구현된 코드를 빌드해서 나온 결과물을
실제 웹 애플리케이션으로 실행되게 해주는 서버를 말한다. 대표적인 WAS는 Tomcat이 있다. - 내장된 WAS를 통한 배포 : Apache Tomcat이라는 WAS를 내장하고 있으므로 별도의 WAS 구축 없이 java -jar <jar 파일명>.jar
명령어를 통해 서비스 가능한 웹 애플리케이션 실행이 가능하다.
참고자료
컴퓨터 구조 : ko.wikipedia.org/wiki/컴퓨터_구조
스프링 프로젝트 종류 및 특징 1 : blog.naver.com/seek316/222131067633
스프링 프로젝트 종류 및 특징 2 : spring.io
이제 스프링까지 넘어오고나니 정말 본격적으로 개발을 시작하는건가 하는 느낌이 든다.
당분간은 페어활동 없이 이론 수업과 실습이 계속해서 진행되는데 기초 개념을 확실히 이해할 수 있도록 학습해두어야겠다.
'부트캠프 개발일기 > Spring' 카테고리의 다른 글
39일차: Spring Framework(Advice, JoinPoint) (0) | 2023.04.07 |
---|---|
38일차: Spring Framework(AOP) (0) | 2023.04.07 |
37일차: Spring Container 실습 (0) | 2023.04.05 |
36일차: Spring Framework (DI, Spring Container, Bean) (0) | 2023.04.04 |
34일차: Spring Framework (0) | 2023.04.02 |