1.1 스프링의 새로운 시작
1.1.1 스프링의 새로운 모습 살펴보기
- 스프링은 J2EE를 경량화하려는 대안으로 시작했다. 컴포넌트 코드 작성은 가벼웠으나 개발 구성은 무거웠다.
- 초기 스프링은 구성에 필요한 XML 코드가 많았다. 이를 극복하기 위해 스프링 2.5는 애노테이션을 도입했고, 명시적인 XML 구성을 상당부분 제거했다. 스프링 3.0에서는 XML 대신 타입 세이프하고 리팩토링이 가능한 자바 기반의 구성을 도입했다. 이런 노력에도 불구하고 복잡한 구성과 의존성 관리에서 벗어나지 못했다.
1.1.2 스프링 부트의 핵심 살펴보기
자동 구성
- 클래스패스에 있는 보일러플레이트를 자동으로 구성
스타터 의존성
- 스프링 부트의 스타터 의존성을 사용하면 다른 의존성들을 전이적으로 끌어올 수 있다.
- 이미 라이브러리 간에 호환성을 테스트 했기 때문에 의존성간의 호환성을 고려할 필요가 없다.
명령줄 인터페이스
- 스프릥 부트 CLI는 개발자가 코드에만 집중할 수 있도록 스사터 의존성과 자동구성을 활용한다.
액추에이터
- 액추에이터는 작동 중인 애플리케이션의 내부를 살펴볼 수 있는 기능을 제공한다.
1.1.3 스프링 부트가 받는 오해
스프링 부트는 애플리케이션 서버가 아니다.
- 스프링 부트는 내장 서블릿 컨테이너를 내장하여 애플리케이션 서버 기능을 제공한다.
스프링 부트는 자동 구성을 하려고 어떤 형태의 코드도 생성하지 않는다.
- 그 대신 메이븐이나 그레이들이 제공하는 전이적 의존성 해결 기능을 활용하여 스프링 애플리케이션 컨텍스트에 자동으로 빈을 구성한다.
1.2 스프링 부트 시작하기
1.2.1 스프링 부트 CLI 설치하기
스프링 부트 CLI 수동으로 설치
소프트웨어 개발 키트 매니저로 설치
Homebrew로 설치
- $ brew tap pivotal/tap
- $ brew install springboot
-> Warnnig : Spring Boot has relocated to spring-io/tap
-> 문제해결: $ brew tap spring-io/tap, $ brew uninstall springboot $ brew install spring-boot
- $ spring version
맥포트로 설치
명령 자동 완성 활성화
1.2.2 Spring Initializer로 스프링 부트 프로젝트 구성하기
Spring Initiaizer의 웹 인터페이스 사용
Spring Tool Suite에서 스프링 부트 프로젝트 만들기
IntelliJ에서 스프링 부트 프로젝트 새로 만들기
스프링 부트 CLI에서 Initializer 사용
- spring init -dweb,jpa,security --build gradle
1.3 요약
자동 구성 : 전통적인 스프링 애플리케이션에 있던 보일러 플레이트 구성 제거
스프링 부트 스타터 : 명시적 라이브러리 이름이나 버전 대신에 스프링 부트가 제공하는 방식으로 빌드 의존성 지정
스프링 부트 CLI 명령줄 : 그루비를 사용하여 빠르고 간편하게 개발할 수 있도록 한다.
액추에이터 : 작동 중인 애플리케이션 내부를 살펴보면서 스프링 부트가 어떤 식으로 처리하는지 파악할 수 있게 한다.
리딩 : 이영범
3.x에 비해 훨씬 간단하게 hello world를 찍을 수 있었다.
스프링 자체를 공부하려면 따로 준비를 하는 것이 좋다.
요즘 추세 groovy도 node처럼 간단한 명령줄로 서버를 띄우고, 코드의 변경부분도 바로 적용시켜준다.
맥포트는 카탈리나에서 잘 돌지 않음
jdk 최신버전 15는 문제가 생김 11 버전으로 사용
openjdk 랑 jdk 특정 버전부터 합쳐짐
책 앞쪽에 링크에 소스코드 있음
리딩 준비, 제비뽑기, 9시5분 출석체크