본문 바로가기

book

이것이 스프링 부트다 with 자바

반응형

다양한 웹서비스의 방법이 현재 사용되지만, 기존의 서비스된 레거시 및 신규 서비스 구성되는 언어로써 Java + Spring이 많이 사용됩니다. 최신 2025년 버전으로 스프링 부트의 책이 최근에 출간되었습니다.

 

한빛 미디어에서 다양한 시리즈가 있는데, 이것이 OOO다. 시리즈가 있습니다. 

해당 시리즈에서 다룬다는 것은 단일본보다 조금은 더 비중이 있다고 생각합니다. 

저자분이 실제 정말 다앙한 경험을 현업에서 느끼신 사항을 집필동기에도 적어놓은신것 처럼 

"한권으로 충분히 실무를 준비할수 있는 책을 써보자" 의 의미를 정말 잘 반영한 책이라고 생각이 들었습니다.

내용에 대해서 왜 이렇게 사용해야 하고 이러한 부분이 궁금할수 있다고 생각한 사항이 책에 잘 녹여져 있습니다.

 

 

 

책의 부제로 
JPA와 AWS, 챗GPT까지 스프링 부트를 활용한 백엔드 프로젝트 실습서 
[ 저자 직강 유튜브 강의, 연습문제 제공 ]
의 사항으로

단순히 책만 보는것보다 다양한 활용 방법을 제공합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 - 동영상 강의

https://www.youtube.com/watch?v=oYqLoboqfJU&list=PLVsNizTWUw7HcX_LSpTa7DeA_h5ns97Ht

 

 

 

(작성시점. 2025/7월 기준으로는 총 4개의 강의가 제공되고 있습니다.)

추가적으로 계속 업데이트가 될 예정입니다.

 

 

 

 

 

 

 

 

 

- Q/A관련

저자님의 github를 통해서 질문이 가능합니다.

https://github.com/wonderful-coding-life/hanbit-springboot

 

GitHub - wonderful-coding-life/hanbit-springboot

Contribute to wonderful-coding-life/hanbit-springboot development by creating an account on GitHub.

github.com

 

 

Summary (책에서 주로 다루는 내용)

 

· 처음 접하는 분들은 코드적인 것보다, 개발tool적인 부분이 궁금하실 사항이 많이 있습니다.  그러한 내용이 스프링부트 기초 부분에서 설명하고 있습니다.

언급하고 있는 내용을 살펴보면 특정 한 부분에 치우쳐서 설명하지 않고, 전반적인 부분을 밸런스 있게 잘 설명하는것으로 파악됩니다.

(자세한 사항은 조금 더 내용을 살펴보고 아래에 정리하겠습니다.)

 

 

 내용

가장 편하게 사용하는 스프링부트 부터 설명하는 것이 아닌, 스프링 프레임워크에 대해서 처음부터 설명하고 다양한 방법으로 제공되는데

그 원리가 무엇인지 알려주는 부분이 처음 접하시거나, 그 개념에 혼돈이 있는 분들에게 많은 도움이 됩니다.

 

· 스프링, 스프링 프레임워크, 스프링 부트의 차이를 정확하게 설명할수 있을까요?

 - 단순하게 설정이 편해졌습니다. 이런 부분도 크지만 스프링부트까지 발전하기 까지 그 과정을 알아보는 것도 중요합니다.

· 의존성 주입, 제어의 역전, 컨테이너, AOP라고 불리우는 관점지향 프로그래밍도 스프링의 가장 핵심적인 기능이고, 이 개념을 알아야 더 활용도 높은 코드를 작성할수 있게 하나하나 예시를 통해서 설명합니다.

· 기존  자바 코드를 기준으로 xml을 통한 제어의 역전을 설명하고, @Component, @Autowired, @PostConstruct, @Primary, @Qualifier 어노테이션을 사용하면서, 그것이 의미하고 제공하는 역할에 대해서 예제코드를 통해서 하나하나 실습하게 됩니다.

 

· 환경 구성하기

다양한 SW tool들이 있는데, 이 책에서는 JDK는 21, IDE는 인텔리제이, DB는 MySQL, DB조회 툴은 DBBeaver, API테스트는 Postman을 이용해서 환경 구성을 합니다.

 

꼭 기술적인 부분이 아니라다도, 평소 이런저런 궁금증이 생길수 있는 사항도 곳곳에 "여기서 잠깐" 이라는 섹션으로 다양한 케이스를 생각할수 있는 부분이 있습니다.

 

· 데이터 조회 하기

정말 많은 방법이 있습니다. DB에 저장되어 있는것을 조회하여서 로직을 처리하는 방법은 Spring에서도 다양하게 존재합니다.

예전에 사용하던 기술 및 최근에 나온 기술들이 지속적으로 사용되어 집니다. JDBC, Spring Data JDBC, MyBatis, JPA등의 기술들에 대해서 설명합니다. 추가로 Spring Data MongoDB를 이용한 텍스트 및 공간검색 기능도 함께 살펴봅니다.

회사마다 사용되어 지는 방식이 다를것이고, 기술적으로 다양하게 확인해보고 필요한 기술을 잘 사용하는 것이 중요합니다.

 

· RESTAPI 설계

정보를 원하는 포맷으로 제공할때 단순하게 정보를 조회해서 응답하는 것보다 http 메소드 의미 및 사용법을 이해하고 있어야 합니다.

단위 테스트 및 방법도 함께 작성이 필요합니다.

계시판을 구성하며서 게시글의 생성, 조회, 수정, 삭제 등을 실제 구성해보면서, 기술적인 요소를 확인합니다.

 

 

- 1:다 구조에 대한 해결, 트랜잭션 처리, 모델 엔티티 속성 등을 고려합니다.

이렇게 작성된 코드들은 Postman으로 동작 테스트를 진행합니다.

 

· 조금더 기술 확장해서 사용하기

실제 사용자들의 화면에 정보를 노출하기 위한 것도 필요하빈다. MVC패턴, 타임리프 템플릿 엔진, 스프링 시큐리티, 데이터베이스 연동등을 통해서 조금더 스프링에서 제공하는 다양한 기능을 서비스에 적용해보려고 합니다.

예전에는 프런트와 백앤드가 구별되지 않아서 역할도 함께 진행을 하였지만, 최근에는 SPA 프레임워크들이 많이 나와서 역활이 구별되고 

그 담당하는 기술의 흐름이 변경되고 있습니다. 

JSP -> 타임리프 를 통해서 화면에 객체를 활용한 정보 노출 및 핸들링을 예제를 통해서 하나하나 실습할수 있습니다.

이렇게 작성된 페이지 기능에 스프링 시큐리티의 의존성을 추가하여서 서비스를 운영할때 반드시 필요한 인증이라는 개념을 도입해보고

사용하고자 하는 사람과 제어하려는 입장의 기능을 적용하게 됩니다.

 

이런경우, 취약하게 노출될수 있는 부분 및 토큰, 쿠키 등에 대한 개념도 이해할수 있습니다.

 

· 작성된 것을 빌드 하고 배포하기

이렇게 스프링으로 기능을 로컬로 개발을 한것을 실제 서비스에 활용하기 위해서 빌드 하고 배포라는 단계까지 모두 하나의 과정입니다.

실제 도커, 톰캣, AWS에 배포하는 구성으로 진행합니다.

운영과 개발계, 로컬 개발을 진행할때 동일 구성으로 진행을 할수 없습니다. 각 환경이 다르기 때문입니다. 

그래서 실행 환경별로 설정파일을 분리하여서 프로파일 적용을 아는것이 필수 입니다.

이러한 과정을 이어서 하나하나 진행합니다.

 

VPN구성 및 IAM을 포함해서 실제 스프링부트로 개발된 Application을 배포하기 위한 것을 사진과 함께 잘 설명되어 있어서 쉽게 하나하나  따라 갈수 있습니다.

 

 

 

 

 

반응형