본문 바로가기

book

처음부터 제대로 배우는 스프링 부트

스프링 부트 책은 시중에 매우 많이 있습니다. 

이책의 장단점 및 대상 독자분들에 대해서 리뷰를 해보려고 합니다.

 

책의 표지를 우선 소개해드리고 싶었습니다.

표지에서 언급된 키워드가 이 책의 포인트이고, 저자의 책 구성 방향을 잘 설명하고 있습니다.

책 표지에서 언급된 키워드를 살펴보면, 책의 특징은 아래와 같습니다.

  • 처음부터 제대로 배우는 (Up & Running) : 중급자를 대상으로도 좋다는 의미 (추천사 참고)
  • 자바와 코틀린을 함께 경험할수 있다. 
  • 클라우드 네이티브를 경험할수 있다.
  • 저자분이 VMWare 개발자 분이시며, 자바개발자 및 코틀린 구글 개발자 전문가 입니다

 

■ 인트로는 쉽게..

 

■ 선택사항

 

■ 구체적으로 책 내용 살펴보기

springboot에 대해서 전반적인 부분을 언급합니다. 가장 기본이 되는 CRUD처리 및 API에 대해서 설명은 기본이고

설정, 레디스, 몽고DB등 다앙한 접속, MVC, 프로덕션, 리액터와 웹플럭스를 사용한 리액티브 프로그래밍, 배포, 보안등에 대해서 언급합니다.

보통 책이 모든 기능을 다 설명하면, 이것이 메뉴얼같은 느낌이 들기도 합니다.

하지만 그중에 가장 많이 사용하고 핵심이 되는 개념이 있고, 많은 Annotaion중에 기본적이라고 생각하는 중요하고 많이 사용하는 부분이 있습니다. 여기서 이책의 장점이 있는것 같습니다. 가장 중요한 개념을 빠르게 학습하고 이해한다면, 그것을 바탕으로 가지치기가 가능합니다.

 

처음 Spring이나 Springboot를 사용할때, 뭔가 주입식으로 알게 되는것이 @Annotation이다.

거의 반복하는 패턴으로 사용하기 때문이다.

 

p.53

 - @Controller : MVC의 여러부분을 연결하는데 사용됩니다. 데이터를 전송하는 부분과 데이터를 표현하는 부분(view)을 분리해서 생성하는데, 이것을 연결해주는 역활을 합니다.

@Controller는 @Component의 스테로오타입 별칭입니다. 

저희가 많이 사용하는 어노테이션인 @Component, @Controller, @Repository, @Service에 대해서 모두 해당 jar에 있습니다.

@Controller가 붙은 클래스는 Model객체를 받습니다. Model객체로 표현 계층에 모델기반 데이터를 제공합니다.

또 ViewResolver와 함께 자동해서 랜더링 뷰를 처리합니다.

 

해당 어노테이션의 소스를 보면, Controller, Repository, Service모두 @Component를 기본적으로 포함하고 있습니다.

 

 

@RestController의 구성요소 : Controller + ResponseBody

@RequestMapping 

 - @GetMapping, @PostMapping .....

- REST 구성시, API의 http 상태값에 대한 고민도 되어야 합니다.

 

 

■ DB Access

 - @Entity : JPA어노테이션입니다. (javax.persistence)

 - @Repostory : Spring Data에 정의

 - JPARepository , CrudRepository

- P.82 데이터 테스트를 위한 방법

1) CommandLineRunner, ApplicationRunner를 활용한 방법

2) 람다를 이용하는 방법

3) @Component클래스와 @PostConstruct 메소드를 이용하는 방법

 

■ 설정과 검사

- @Value : application.properties의 내용을 사용하는데 보통 환경변수처럼 ${}형태로 재사용이 가능하다

// 초기값을 설정할수 있다.
@Value("{test-key : initValue}")

 

- @ConfigurationProperties : @Value의 유연하지만, 단점을 보완함, 그 클래스의 속성을 앱 환경에 추가

@ConfigurationPropertiesScan을 이용해서 추가함

@ConfigurationProperties(prefix="greeting")

- 자동 설정 리포트

- 액추에이터 : 스프링부터에서 수행되는 다양한 정보를 취득가능하다.

https://incheol-jung.gitbook.io/docs/study/srping-in-action-5th/chap-16.

 

CHAP 16. 스프링 부트 액추에이터 사용하기 - Incheol's TECH BLOG

"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"

incheol-jung.gitbook.io

 

■ 다양한 데이터 환경 구성하기

"스프링데이터"를 사용해서 처리하는 다양한 방법

p. 125. 많이 사용하는 lombok에 대한 어노테이션 설명

p. Neo4j를 이용한 서비스 개발하기 내용이 있습니다.

 

 

■ 비동기로 처리

 

■ 추가적인 사항

- ApplicationContext에 대한 중요한 정리 (p.239)

 - Spring Security를 통한 인증 보안

 - jar를 통한 배포 방안,처리 방법등에 대한 내용으로 구성되어 있습니다.

 

전반적으로 SpringBoot를 사용하는데, 필요한 개념을 초급,중급 모두 도움이 되는 구성되어 있고, 여러가지 고민되는 요소에 대해서 

정의를 하는 방향이 흥미롭고 도움이 많이 됩니다. 사용법에 대한 설명도 있지만, 왜 사용해야 하는지에 대한 공감대 형성을 통해서 지금 기술의 발전이 어떤 방향이고, 해당 부분은 SpringBoot를 통한 해결방안이 잘 제시되어 있습니다.

 

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."