본문 바로가기

강의/토비의 스프링부트

토비의 스프링부트

 

스프링 부트의 특징

1. 스프링 기반 어플리케이션

2. 실무환경에 필요한 수준

3. 독립 수준 어플리케이션

4. 빠르게 복잡한 없이

 

부트가 스프링 버전을 결정하지만
스프링과 스프링 부트는 다르다는 것을 인지해야 한다.

 

스프링 부트의 핵심 목표

1. 매우 빠르고 광범위한 영역의 스프링 개발 경험을 제공

2. 강한 주장을 가지고 즉시 적용 가능한 기술 조합을 제공하면서, 필요에 따라 원하는 방식으로 손쉽게 변형 가능 (빠르고 기술 고민 없이 개발할 수 있도록 도와줌)

3. 프로젝트에서 필요로 하는 다양한 비기능적인 기술(내장형 서버, 보안, 메트릭, 상태 체크, 외부 설정 방식 등) 제공

4. 코드 생성이나 XML 설정을 필요로 하지 않음.

 

전통적으로 스프링 웹어플리케이션은 컨테이너 안에 배포를 하고 동작하는 방식으로 되어있는데

이걸 위해 알아야 할 것들이 너무 많다.

 

Containerless 웹 어플리케이션 아키텍처

Containerless는 serveless와 유사한 개념이라고 보면 된다.

Conatiner 란?

=> docker conatiner, spring container (ioc container) 같은 것들을 떠올릴 수 있다.

Web container는 WebComponent

 

Webprogramming : 서버에서 동작하는 Web component를 만드는 것

Web Component는 WebClient가 필요하고

Webclinet가 요청하면 WebComponent가 일을한다. 응답을 WebClient에가 돌려준다.

WebComponent는 dynamic Content를 만드는 것이 목적이다. (동적인 컨텐츠를 만드는 것)

WebComponent는 WebContatiner 안에 있어야한다.

Web Container는 여러개의 Web component를 관리한다.(life cycle 관리)

 

어떤 Component가 Web 요청을 처리할지 결정하고 선택하는 작업을 Routing, Mapping 이라고 한다. (Handler mapping)

자바에서는 WebComponent를 Servlet이다.

 

 

Servlet Container의 역할을 하는 것들이 Tomcat이다.

이것이 전통적인 자바의 웹 프로그래밍 방식이다.

 

------ 스프링 부트

표준 기술을 사용하려면 Servlet container가 존재해야 하고

스프링 부트를 사용하게 되면 이 뒷단에 Spring Container가 동작하게 되는 원리이다.

 

 

Opinionated (자기 의견을 굉장히 강하게 고집하는)

내가 다 정해줄게 일단 개발만 해

 

스프링 프레임워크의 설계 철학

1. 극단적인 유연함 추구

2. 다양한 종류의 기술 관점을 수용 (표준 기술 구현체 + 상용 기술 + open source)

3. Not opinionated

4. 수많은 선택지를 다 포용

5. 하지만...

 

스프링 부트의 설계 철학

1. Opinionated - 자기 주장이 강한, 자기 의견을 고집하는, 독선적인

2. 일단 정해주는 대로 빠르게 개발하고 고민은 나중에

3. 스프링을 잘 활용하는 뛰어난 방법을 제공

 

스프링 부트가 결정해 주는것

1. 사용 기술과 의존 라이브러리, 버전 결정

* 업계에서 검증된 스프링 생태계 프로젝트, 표준 자바 기술, 오픈 소스 기술의 종류와 의존관계, 사용 버전을 정해줌

* 각 기술을 스프링에 적용하는 방식 (DI 구성) 과 디폴트 설정값 제공

 

유연한 확장

1. 스프링 부트에 내장된 디폴트 구성을 커스트마이징 하는 매우 자연스럽고 유연한 방법 제공

2. 스플이 부트가 스프링을 사용하는 방식을 이해한다면 언제라도 스플이 부트를 제거하고 원하는 방식으로 재구성 가능

3. 스프링 부트처럼 기술과 구성을 간편하게 제공하는 나만의 모듈 작성

 

스프링 부트를 이용한 개발의 오해와 한계

1. 애플리케이션 기능 코드만 잘 작성하면 된다.

2. 스프링을 몰라도 개발을 잘 할 수 있다.

3. 스프링 부트가 직접적으로 보여주지 않는 것은 몰라도 된다.

4. 뭔가 기술적인 필요가 생기면 검색을 해서 해결한다.

 

스프링 부트를 이해하게 되면

스프링 부트가 스프링의 기술을 어떻게 활용하는지 배우고 응용할 수 있다.

스프링 부트가 선택한 기술, 자동으로 만들어주는 구성, 디폴트 설정이 어떤 것인지 확인할 수 있다.

필요할 때 부트의 기본 구성을 수정하거나, 확장할 수 있다.

나만의 스플이부트 모듈을 만들어 활용할 수 있다.

 

강의의 목표

스프링 부트로 만든 스프링 애플리케이션의 기술과 구성 정보를 직접 확인할 수 있다.

적용 가능한 설정 항목을 파악할 수 있다.

직접 만든 빈 구성 정보를 적용하고, 그에 딸느 변화를 분석 할 수 있다.

스프링 부트의 기술을 꼼꼼히 살펴볼 수 있다.

 

프레임워크를 효과적으로 재사용하기 위해서는 프레임워크의 최종 모습뿐만 아니라

현재의 모습을 띠게 되기까지 진화한 과정을 살펴보는 것이 가장 효과적이다.

프레임워크의 진화 과정 속에는 프레임워크의 구성 원리 및 설계 원칙, 재사용 가능한 컨텍스트와 변경 가능성에 관련된 다양한 정보가 들어 잇기 때문이다.

 

 

API 테스트

'강의 > 토비의 스프링부트' 카테고리의 다른 글

자바코드 구성 정보 사용  (0) 2023.02.21
di 적용  (0) 2023.02.20
Dependency injection  (0) 2023.02.20
프론트 컨트롤러 // 스프링 컨테이너  (0) 2023.02.20
dsf  (0) 2023.02.19