메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[리뷰] 처음부터 제대로 배우는 스프링 부트

imjihye***

|

2023-07-23

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

도구 선택부터 애플리케이션 보안과 배포까지 스프링 부트의 모든 것

  • 저자 : 마크 헤클러
  • 번역 : 오시영 , 서정대
  • 출간 : 2023-05-08

KakaoTalk_Photo_2023-07-23-22-52-05 001.jpg

 

 

‘처음부터 제대로 배우는 스프링 부트’는 스프링 부트와 그에 관련한 개념뿐 아니라 실습을 수행하며 체화할 수 있는 스프링 부트 지침서다.

회사 스터디에 들어가면서 Java 입문을 배우고 스프링 부트를 바로 공부한 상태라 이해하는데 굉장히 힘들었다.

책의 베타리더 리뷰에 스프링 프레임워크를 처음 사용해보는 초심자와 어느 정도 다뤄본 중급 사용자가 읽으면 좋겠다며 타겟 독자에 대한 평이 갈렸다.

스프링 부트에 대한 근본부터 나와있는 것이 맞으므로 스프링 프레임워크 초심자가 읽되, 초급 개발자가 읽기엔 무리가 있을 것도 같다는 생각이 든다. (물론 난 입문..)

 

여전히 나에겐 어려운 내용이었지만 그럼에도 아무 개념도 모르고 스프링 강의를 읽었을 때보다 훨씬 더 도움이 많이 되었다.

영상 강의를 들었을 때엔 기초 개념보다는 실습을 따라하는데 급급했던 것이다.

Maven과 Gradle의 차이도 알지 못한 채 그저 하라는 대로 Gradle로 설치했다.

책을 따라 가다보면 개념과 원리를 이해하는데 훨씬 도움이 되는 것 같다.

 

스프링 자체도 어려운데 Eclipse를 활용한 강의를 봐서 더 어렵게 느껴졌다.

다행히 이 책에서는 IntelliJ를 사용하니 부담을 조금 내려놓을 수 있었다.

 



 

 

스프링 부트의 세 가지 핵심 기능은 의존성 관리(dependency management) 간소화, 배포(deployment) 간소화, 자동 설정(auto configuration)입니다. 스프링 부트의 모든 기능은 이 세 가지 핵심 측면을 기반으로 합니다.

19쪽, 처음부터 제대로 배우는 스프링 부트.

 

 

Java 언어를 배우기 위해 간단한 코드(메뉴 추천, 구구단 등)만 짜보았기 때문에 스프링 부트의 이점에 대해 크게 와닿지 않았다.

미들웨어나 데이터베이스 연결 같은 일은 고려할 필요도 없었기 때문이다.

스프링 부트에 내장되어 있는 jar 파일 덕분에 자동 설정이 가능하단 것을 깨닫고 그 편의성에 대해 절감할 수 있었다. 이는 배포 간소화에 해당된다.

 

 

 

 

‘스프링 부트 스타터’는 거의 매번 동일한 방식으로 특정 기능을 제공한다는 입증된 전제를 바탕으로 제작된 BOM(Bills of Materials)입니다. BOM은 프로젝트 아티팩트 (라이브러리 등의 구성 요소)의 정보, 버전과 의존성 관리를 포함한 특수한 POM입니다. 여기서 POM은 빌드 도구에서의 의존성을 가져오고 프로젝트 빌드에 사용하는 정보와 프로젝트 구성이 담긴 파일입니다.

20쪽, 처음부터 제대로 배우는 스프링 부트.

 

 

기존에는 API를 만들 때마다 엔드포인트를 설계하고, 요청 수신 및 처리, 객체 간 변환, 하나 이상의 표준 형식으로 정보 교환, 특정 프로토콜로 데이터를 주고받는 일련의 과정을 수행해야 했다. 하지만 이 패턴이 ‘스프링 부트 스타터’에 반영 되어 아주 편리하게 사용할 수 있는 것이다.

 

‘설정보다 관습(convention over configuration)’은 자동 설정에 속하는 개념이다. 

데이터베이스를 자동으로 연결하고, 애플리케이션 종료에 따라 연결 또한 자동으로 종료할 수 있다. 

개발자가 최소한의 노력으로 쿼리를 자동으로 만드는 것이 큰 이점이라고 한다. 

간단한 컨벤션으로 코드를 쉽게 커스터마이제이션하여 복잡한 맞춤형 쿼리를 효율적이고 일관되게 생성할 수 있다.

 

앞서 언급한 것과 같이 스프링 부트의 개념은 의존성을 간소화하는 것은 물론 애플리케이션 기능 전체를 추가하는 데 필요한 작업을 크게 감축한다. 테스트, 유지보수, 업그레이드에 드는 오버헤드 또한 줄일 수 있다.

 

 



  • Maven: 메이븐의 엄격하고 때로는 독단적이기까지 한 선언적 접근법은 프로젝트와 개발 환경을 대단히 일관되게 만듭니다. 메이븐 방식을 따르면 일반적으로 문제가 거의 발생하지 않으므로, 빌드에 신경 쓰지 않고 코드에만 집중하게 됩니다.
  • Gradle: 그레이들은 프로그래밍/스크립팅 중심입니다. 따라서 그레이들로 빌드한 프로젝트에서 새로 출시된 버전의 프로그래밍 언어를 사용하면 종종 문제가 생깁니다. 그레이들 개발팀이 신속하게 대응하겠지만, 프로그래밍 언어의 최신 버전을 선호하거나 반드시 사용해야 한다면 빌드 문제가 발생할 여지가 있음을 염두에 두어야 합니다.

 

그레이들은 빌드 속도가 빠른데, 특히 대규모 프로젝트에서는 메이븐보다 훨씬 더 빠릅니다. 일반적인 마이크로서비스 프로젝트에서는 메이븐과 그레이들의 빌드 속도가 비슷합니다.

(중략)

JVM에서 사용 가능한 언어가 많지만, 그중 널리 사용하는 언어는 자바와 코틀린입니다. 자바는 JVM의 원래 언어이며, 코틀린은 JVM을 사용하는 비교적 새로운 언어입니다. 스프링 부트는 자바와 코틀린을 모두 완벽하게 지원합니다.

31쪽, 처음부터 제대로 배우는 스프링 부트.

 

 

예전에 스프링 강의를 보았을 때에는 무조건 진행자를 따라 Gradle을 설치하였다. 이 책에서는 개념을 요목조목 설명하고, 그 차이와 실 적용시의 장단점을 설명하여 이해가 쉬웠다.

 





SE-0c148f1c-2a48-468a-868a-3f434f795966.png

 

SE-b6cb6f2c-3806-4b08-bf91-bbb17f3930c0.png

 

입문자를 위해 코드 한줄 한줄 설명을 덧붙인다.

 

현재까지 개념에 대해 기초를 다질 수 있었으며, 환경을 설치할 수 있었다.

추후 실습을 통한 후기를 다시 가져오겠다.

 



 

KakaoTalk_Photo_2023-07-23-22-52-06 002.jpg

 

초급 개발자가 아닌 초급 스프링 부트 사용자에게 추천하는 입문서.

 

 

 

 

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

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?