배워서 바로 쓰는 스프링 부트 2 - 한빛미디어

728x90

벌써 한빛미디어 서평단 활동 3번째 개발 서적이다. 이번 서적은 웹 개발자라면 꼭 공부해야하는 봄.... 스프링이다!!

 

주 언어가 Java이고 웹 개발자를 지망한다면 Spring은 꼭 공부해야 할 것이고 Spring MVC도 어느정도의 숙련도를 요구한다. (필요한 만큼 알면 된다고 하는데, 더 고급진 개발자가 되고싶다면 다다익선이다) 스프링 자체는 워낙 방대한 내용이기 때문에 전부 다 챙기다는건 쉽지 않을 것이다. 스프링은 객체지향 프로그래밍을 도와주는 프레임워크다. 객체지향설계를 공부하면서 스프링을 공부한다면 더 많이 와닿을 것이다. 

 

어느 자바 웹 개발자 박OO 차장

 

대략적인 박차장의 개발인생 

 

그렇다 웹 개발자라면... (Node 라거나.... Angular 라거나... Python은 잘 모르겠다) 스프링의 숙명을 받아들이자! 스프링과 스프링 부트의 구별을 먼저 하는게 좋을 것 같다. 스프링을 사용하기 위해서 처음부터 설정을 할려면.... 처음하는 입장에서 정말 힘들다(심지어 몇번 해봤음에도, 버전의 문제라던지 gradle, maven의 차이? 라거나 그런 차이 때문에 계속 빌드를 실패하는 경우가 허다하다..).  환경설정만 트라이 하다가 실패한적이 많을 것이다. 스프링 부트는 이런 환경설정을 자동으로 해줌으로써 개발자가 개발에만 집중할 수 있는 환경을 제공한다. IDE에서 바롱 스프링 부트 환경으로 프로젝트를 만들 수 있기도 하고(IDE마다 방식이 다름, 인텔리제이는 Ultimate 버전만 가능한걸로 알고, 이클립스도 가능했던걸로 아는데, 안해봐서 잘 모르겠다. 구글 선생님께 물어보자!),  IDE로 스프링 부트 프로젝트를 생성하는 방법도 있지만, Spring Initializr 로 생성하는 방식이 있다.  (Maven/Gradle 프로젝트 중에 어떤걸 만들지, Java/Kotlin/Groovy 중 어떤 언어를 사용할지, 스프링 부트는 몇 버전을 사용할지 고를 수 있다)

 

위와 같이 생겼고 아래와 같이 필요한 의존성을 추가해주면 된다.  예로들어 JPA와 Spring MVC, Spring JDBC를 추가해보자! 의존성 추가는 우측에 ADD DEPENDENCIES... (맥 기준 단축키로 ⌘ + B) 를 클릭하면 아래와 같은 창이 뜨고 여기서 검색해서 원하는 의존성을 추가하면 된다. 

 위와 같이 검색 결과가 나오면 클릭해준다. 그러면 아래와 같이 우측 Dependencies에 의존성이 추가할 의존성 목록이 생긴다.

 

이렇게 의존성 추가를 다 했으면, GENERATE 버튼을 눌려서 github 혹은 zip 파일로 다운받아 압출을 푼 뒤 프로젝트를 진행하면 된다.


그렇다 어쨋거나 스프링 부트는 프로덕션 환경에서 실행할 수 있는 애플리케이션 개발을 쉽고 빠르게 할 수 있다. 서드파티 라이브러리나 스프링 플랫폼 설정이 처음부터 들어 있어 최소한의 작업으로 개발을 시작할 수 있다. 

설정을 변경하지 않는다면 내장된 컨테이너로 톰캣을 사용해 미리 준비된 환경에 따라 동작한다. 스프링 부트를 사용하여 애플리케이션을 개발하면 명령줄로 실행 가능한 하나의 JAR파일을 만들 수 있다. 명령줄에서 java -jar 명령의 인수로 작성한 JAR 파일을 지정해 실행하면 내장된 톰캣이 실행된 후 개발한 애플리케이션이 실행된다.

개발자는 톰캣 등의 애플리케이션 서버를 준비할 필요 없이 단순히 실행만으로 애플리케이션을 동작할 수 있다. 또한 WAR 파일을 만들 수 있어 기존 환경에 애플리케이션 서버가 있다면 스프링 부트를 기존 방법처럼 사용해 애플리케이션을 배포할 수 있다. 

스프링MVC의 기능은 어느정도 알아야 웹 개발이 가능하겠지만, 스프링의 기초(환경설정 등..)부터 학습하며 스프링으로 프로젝트를 진행하는데에는 적지 않은 시간이 소모된다. 당장 프로젝트를 만들고 싶다면 스프링 부트를 사용해보는 것이 좋다는 생각이 든다. 

배워서 바로 쓰는 스프링 부트 2의 목차를 알아보자 총 12챕터로 구성이 되어있다.


목차

Chap1. 스프링 부트의 구성

Chap2. 웹 애플리케이션의 공통 처리

Chap3. 데이터 액세스

Chap4. 보안

Chap5. 화면 개발

Chap6. API 개발

Chap7. 팀 개발

Chap8. 운용

Chap9. 시스템 아키텍처 구성

Chap10. 스프링 5와 스프링 부트 2의 신기능

Chap11. 로컬 개발 환경 구축

Chap12. 예제 애플리케이션 


스프링 책은 3 ~ 4권 정도 읽어봤지만 스프링 부트가 주제인 서적은 처음 읽어봤다. 그래서인지 목차의 구성이 스프링 코어에 집중된 책과는 다소 다르다르다고 느껴졌고, 각 챕터에 어떤 내용이 나올지? 궁금함이 많이 생겼다.  책을 가볍게 읽어나가면서, 내가 쓰고있는 스프링 부트의 기능들은 정말 새발의 피였다는 것을 느끼게 돼었다. 

아무래도 백엔드 개발에 대해서 아무리 해박하더라도 결국 서버에 배포할 줄 모르면 나의 프로젝트를 만들 수 없다. 스프링 부트 책이라 사실 스프링 부트를 활용하는 방법만 어느정도 있겠지? 라는 생각을 했었다. 목차를 봐도 언뜻 알 수 있지만, 단순히 스프링 부트의 활용(물론 부트의 많은 기능들을 서술하고 있다.. 사실 다 기억도 안날정도라서 모르는 것들은 메모를 해두고 다시 볼려고 한다)만 있는 것이 아니라, 인프라(DB, 무정지 배포), 유지보수성을 높이는데 도움이 되는 내용들도 언급하고 있다.

매주 진행하고 있는 스터디에서 다음주부터 본격적으로 프로젝트를 하나 진행해보려고 한다. 때마침 오늘은 AWS 서버와 CI / CD 환경을 구축했다. 원래 계획했던 개발 환경이 있었는데, 이 책을 통해서 나 또한 견문이 많이 넓어졌다. 가능한 빨리, Version 1을 만들고 책의 내용들은 하나씩 추가하며 Version 2, 3 ... 등 계속해서 기능을 추가해볼 예정이다. 

배워서 바로 쓰는 스프링 부트2를 읽으면서, 배워서 바로 쓰는 스프링 프레임워크는 어떨까? 라는 생각이 많이 들었다. 기회가 된다면 읽어보고 싶다.

빠르게 자신의 웹 프로젝트를 개발하고 싶은 개발자들에게 '스프링 부트'는 매력적인 tool일 것이다. 하지만 스프링 부트도 기본적인 지침서가 있어야 한다. 사실 스프링 부트 지침서를 하나 구해서 읽어봤었는데, 만족스럽지 못했었다. 하지만 이번 책은 나의 기대치에도 부합하고, 오히려 생각지도 못한 간지러운 부분도 긁어준 느낌이다. 

"배워서 바로 쓰는" 시리즈 는 이제부터 눈여겨 볼 것이다. 다음 책 나오기만 해봐라 

728x90