스프링 교과서 - 기초부터 탄탄하게 배워서 바로 쓰는 스프링 입문
라우렌치우 스필커 지음, 정성권 옮김 / 길벗 / 2024년 5월
평점 :
장바구니담기


"스프링 교과서"라는 책 제목에서 유추해볼 수 있듯이 스프링 프레임워크에 관한 내용을 담은 입문서이다.

스프링 프레임워크는 자바 개발자라면 한번쯤 접해본 가장 많이 선택되어 사용되는 프레임워크이다.

이는 스프링으로 명명한 이유에서 알 수 있듯 한번 사용해본 개발자라면 이 프레임워크의 장점을 알 수 있을 것이다.

많이 쓰이는 프레임워크인만큼 이를 다루는 책들도 시중에 많이 출판되었다.

이 책도 그 중에 하나인데 스프링 프레임워크도 최신 기술을 사용하여 점점 다루는 기술들이 변하고 다양해지는 만큼 여러 책을 보면서 느끼는 것이지만 최신 기술 내용이 담긴 책을 선택하는 것이 좀 더 도움이 될 수 있다고 생각한다.

이 책도 최근 발매된 스프링의 최신 입문서이다.

총 15장으로 이루어진 입문서로 첫번째 장에서는 단순한 예제를 시작으로 스프링을 적용하는 방식들에 대해서 설명한다. 스프링을 사용하려는 개발자라면 최신 기술도 중요하지만 가장 중요한 스프링 코어와 스프링 MVC 등의 기초 내용을 다루는 첫번째 장을 꼼꼼히 읽어야 하는 부분이다.

두번째 장부터는 직접 프레임워크를 생성하고 코드를 작성하면서 각각의 스프링의 요소들의 역할과 처리 흐름들을 이해할 수 있도록 예시 코드와 함께 설명을 덧붙인다.

이후에는 스프링의 코어 요소들을 이해를 한 후부터는 스프링 웹과 REST 서비스와 데이터를 처리하는 방식 및 구현한 애플리케이션을 실제 실행해볼 수 있는 테스트 과정도 함께 다룬다.

이 내용들에도 앞의 내용 구성과 같이 예시 코드와 그림 설명을 덧붙여서 큰 흐름을 단계별로 따라가며 익힐 수 있도록 되어 있어 아예 구현을 해보지 않은 분들이라도 어렵지 않은 내용이라고 생각한다.

나는 항상 입문서를 읽을 때 큰 흐름을 직접 따라하고 내용 정리를 통해 이해하는 편이다.

이 책도 내가 익히는 방법대로 구성되어 있어 핵심 내용과 함께 하나의 큰 흐름을 처음부터 끝까지 밟아갈 수 있도록 구성되어 있다는 점이 처음 접해보는 분들도 책의 흐름을 따라가보는 것을 추천한다.

개발자로서 스프링 기술은 개발자를 시작한 처음부터 지금까지 계속 사용중이다.

이미 알고 있는 기본 개념일지라도 시간을 내어 책의 구성대로 내용을 따라가며 한번 더 개념을 정리해볼 수 있어 도움이 되었다.

아무리 사용하고 있는 기술이고 알고 있는 기술이라도 매번 느끼는 것이지만 시간을 내어 정리하다보면 이 과정에서 또 알고 생각해볼 수 있는 내용들이 있다.

이번에도 이 책을 읽으면서 스프링의 개념을 쭉 정리해볼 수 있었다.

시간을 내어 스프링을 접해보려고 하거나 깊이있는 이해가 부족한 분들, 개념을 처음부터 알아가길 원하는 분들 모두에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
최고의 프로덕트는 무엇이 다른가 - 더 나은 소프트웨어를 만드는 방법
유진호 지음 / 비제이퍼블릭 / 2024년 5월
평점 :
장바구니담기


새로운 소프트웨어나 서비스를 제대로 만들기 위한 과정을 배울 수 있는 책이다.

이 책은 크게 총 다섯 챕터로 구성되어 있다.

소프트웨어 개발이 무엇이고, 가장 어렵고 불확정한 일이지만 이 과정에서 성공적인 성과를 이루기 위해서 각 영역을 담당하는 사람들이 어떤 부분을 고려해야 하는 지 등을 다룬다.

특히 소프트웨어 개발은 여러 환경의 요인과 요구사항 등으로 인해서 한번에 완료할 수 없다는 점을 인지하여 단편적인 면만 보는 것이 아닌 폭넓은 관점에서 보아야 한다.

이렇기 때문에 각 영역을 담당하는 사람들은 각자의 위치에서 고려해야 하는 영역들도 설명한다.

소프트웨어 개발은 불확실성과의 싸움이기 때문에 이를 효과적으로 다루고 현실적인 결과물을 만들기 위해서 유연한 개발 원칙을 담은 EoA 라는 관점도 함께 다루기 때문에 이를 토대로 언제 개발을 시작하고 어떠한 순서대로 진행할 지에 대한 전략도 함께 세울 수 있게 해준다.

또한 프로젝트의 목표와 가치를 이해하여 공유함을 통해 최종 결과에 대한 결과물을 이해할 수 있게 해주어 각 과정별로 어던 계획을 세울 수 있을지에 대해서도 생각해볼 수 있게 해준다.

또한 고객과의 끊임없는 소통을 통해서 개발 일정을 확보하고 조율할 수 있고, 고객의 참여를 통해서 피드백을 받아 견고한 소프트웨어를 만들 수 있고 개선 사항에 대해서는 개선할 방법도 마련할 수 있다.

이후에는 소프트웨어를 만들고 운영할 때 고객과의 신뢰를 유지하고 더 나아가 리스트가 발생했을 때 이를 감당할 수 있는 방법을 고려하는 내용도 다룬다.

이 내용에서는 가장 핵심적인 역할은 고객과의 소통으로 고객의 니즈와 요구사항을 파악하여 이를 통해 피드백을 얻는 방법도 함께 다룬다.

또한 실제로 작업하는 개발자들이 어떻게 효율적으로 작업할 수 있는 지원 방법에 소개한다.

특히 개발자들의 업무를 관리할 때 업무의 부하가 발생하지 않도록 효율적인 업무 분배와 여러 자원을 통해서 생산성을 향상시킬 수 있는 방법도 다룬다.

하나의 소프트웨어와 서비스를 완성하기 까지, 그리고 완성 후의 유지보수 기간까지 각 과정에서 생산성과 완성도를 높이기 위해서 참고할 내용들을 소개하여 결과물 뿐만 아니라 이 결과물을 만들기 위해 참여하는 작업자들의 환경을 개선하는 방법도 이해할 수 있어 개발자뿐만 아니라 서비스 개발에 참여하는 분들 모두가 참고할 내용이 가득하다.

좀 더 나은 환경에서 좀 더 완성도있는 서비스를 개발하고 운영하기를 원하는 분들이 한번쯤은 읽어보면 좋을 책이다.


댓글(1) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
김종필 2024-07-08 17:26   좋아요 0 | 댓글달기 | URL
안녕하세요. 좋은 책을 많이 읽으시는 분 같아서 좋아요를 눌러 봤습니다.
같은 동종 업계 분이라면 대화를 좀 해보고 싶다는 생각이 들 정도네요.
 
읽기 쉬운 코드 - 지속 가능하고 유지/보수하기 쉬운, 이해할 수 있고 복잡하지 않은, 좋은 코드를 짜는 방법과 아이디어 로버트 C. 마틴 시리즈
마크 시먼 지음, 김현규 옮김 / 길벗 / 2024년 3월
평점 :
장바구니담기


이 책은 표지 내용처럼 더 좋은 코드를 작성하기 위한 방법에 대해서 설명한다.

그간 내가 작성한 후기들의 책은 대부분 저연차의 개발자들도 읽기 어렵지 않은 책들이 대부분이었는데,

이번 책은 저연차의 개발자분들은 조금은 어려울 수 있는 책이다.

2~3년전부터 고민해왔던 내용들을 다루는 책이어서 인지 나는 이 책이 출간되기를 기다렸었다.

현재 운영 중인 코드를 리팩토링하거나 혹은 새로운 서비스를 개발하기 위한 코드를 작성할 때 나 외에 이 코드를 추후 접할 다른 개발자분들이 이해하기 쉬운 코드를 작성하고 싶기 때문이다.

특히 연차가 쌓이면서 지금까지 여러 개발자분들의 코드를 접해볼 기회가 많았는데, 나는 먼저 코드를 읽을 때 어떤 고려사항으로 코드를 구조화하고 기능을 구현하였는지 생각해본다.

어떤 코드는 이러한 의도가 잘 드러난 반면 어떤 코드는 이해하기 어렵게 코드가 작성되어 있어 리팩토링 및 유지보수하는데에 어려움을 겪었던 적이 있었다.

이 경험 때문인지 내가 작성하는 코드들이 다른 개발자분들이 이해할 수 있도록 작성하려고 한다.

아마 나와 같은 고민을 대다수의 개발자분들이 하실 거라고 생각한다.

이러한 고민들을 이 책을 통해서 어느정도 답을 얻을 수 있었다.

이 책은 크게 두 분류로 나뉜다.

코드를 작성할 때 참고할 여러 내용과 단계, 두번째는 기존 코드에서 기능 추가 및 리팩토링, 성능을 높이기 위해 코드를 보강하는 내용이다.

첫 부분에서는 코드를 작성하는 단계를 집짓기 비유로 들어 얼마나 중요한 작업인지 다시 한번 인식할 수 있었고,

코드를 좀 더 점진적으로 안정적이게 개선하기 위한 여러 수단과 체크리스트들도 제시해주고 있어 실제로 업무를 하면서 이 부분을 참고하여 리팩토링하는데에 도움이 될 내용이었다.

이후부터는 각 챕터별로 상세하게 코드를 잘 작성하고 보강하는 방법들을 다루는데, 책을 읽다보면 저자의 노하우와 중요시 여기는 부분을 이해할 수 있었다.

나는 이 책을 다 읽어갈 때쯤 그동안 어떠한 기준에서 코드를 작성해왔는지 생각해보게 되었다.

그간 나의 코드 작성 습관에 빗대어보니 어느 부분을 보완해야 할지 기준도 알게 되었다.

읽기 쉬운 코드라는 말이 누군가에게 쉬울 수 있지만 누군가에는 어려울 수 있다.

특히 나 외에 이 코드를 접할 개발자분들도 쉽게 이해하고 읽힐 수 있어야 한다는 점에서 어려운 부분이다.

하지만 이 책을 읽고 나니 좀 더 기준점이 명확해졌다.

좋은 습관을 만들기 위해 이 책을 한번은 꼭 읽어보길 추천한다.

역시 기대한 만큼 나에게 도움될 내용이 많았다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
클라우드 네이티브 스프링 인 액션 - 스프링 부트와 도커, 쿠버네티스로 애플리케이션 구축하기 I♥Cloud (아이러브클라우드) 27
토마스 비탈레 지음, 차건회 옮김 / 제이펍 / 2024년 3월
평점 :
장바구니담기


스프링부트와 도커 & 쿠버네티스로 애플리케이션을 구축하기 위한 과정을 배워볼 수 있는 책이다.

온라인 서점의 웹 사이트를 구축하면서 도커와 쿠버네티스의 클라우드 환경에서 애플리케이션을 구축하는 과정을 담고 있는데, 온라인 서점을 구축하는 예시를 단계별로 설명해주고 있다는 점에서 단계별로 좀 더 구체화해주고 있어 개인적으로 좋았다.

첫번째 장에서는 애플리케이션을 구축을 하기 전 이 책의 핵심 내용인 클라우드 네이티브란 무엇인지에 대한 소개하는데, 이를 통해 클라우드의 기술을 활용하여 애플리케이션을 개발하기 위한 접근 방식을 이해할 수 있다.

두번째 장에서는 클라우드 네이티브의 패턴과 기술에 대한 내용을 다루는데, 특히 클라우드 네이티브의 12가지 개발 원칙에 대한 내용을 다루고 있고, 클라우드 환경에서의 애플리케이션을 구축하기 위해 사용하는 기술들에 대해서 소개한다.

세번째 장부터는 본격적으로 클라우드 네이티브 개발을 위한 방법을 단계별로 소개한다.

스프링 부트로 애플리케이션을 구성하고, 작성한 코드를 테스트 코드로 검증하는 방법과 배포를 위한 빌드와 파이프라인을 구성하는 내용을 다룬다.

이후에는 각 단계를 설정과 데이터를 관리하기 위한 방법과 저장하는 방법을 위해 사용하는 기술을 다룬다.

이를 토대로 설계한 애플리케이션을 컨테이너 환경에 기동하기 위한 이미지를 생성하는 방법, 이를 등록하는 방법을 소개하고 이후에는 쿠버네티스 환경에 대한 설정도 상세히 다룬다.

후반부에는 API 게이트웨이나 보안, 확장성 등 클라우드에서 실행되는 분산 시스템에 대한 속성과 패턴들을 다루고, 리액트 프로그래밍, 이벤트 중심의 아키텍처에 대한 설명을 통해 Rabbit MQ와 스프링 클라우드 스트림 등을 구현하는 방법을 살펴본다.

이후에는 안정적인 운영을 위한 보안과 인증의 기술도 다루고 있어 분산 시스템 환경에서 데이터를 송/수신하고, 이를 접근하기 위한 사용자와 애플리케이션에 권한을 부여하는 방법도 알 수 있다.

후반부의 내용은 첫번째 장 만큼이나 중요하다고 생각하는데, 운영 환경에서 안정적으로 애플리케이션을 운영하기 위한 내용이 담겨있기 때문이다.

책의 두께만큼이나 다루는 내용이 많이 담겨 있어 도움받을 내용이 많이 담겨있다.

클라우드 네이티브 환경에 대한 공부를 시작하고자 하는 분들이나 좀 더 깊이 있게 공부를 해보고자 하는 분들, 안정적인 애플리케이션을 운영하기 위한 기술을 공부해보고 싶은 분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
Release의 모든 것 - 대규모 웹 분산 시스템을 위한 운영 고려 설계 | 아마존 소프트웨어 공학 분야 베스트셀러
마이클 나이가드 지음, 박성철 옮김 / 한빛미디어 / 2023년 11월
평점 :
장바구니담기


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

책의 제목에서 유추할 수 있듯이 운영 환경에서의 접할 수 있는 여러 문제 상황들을 유연하게 대응하기 위한 설계 방법을 배워볼 수 있는 책이다.

개발과 테스트를 잘 마무리했다고 해서 운영 환경까지 문제가 없을 거라는 경우는 없을 것이다.

분명 테스트 과정에서 많은 케이스에 대한 검증과 결과를 완료하였다고 하더라도 오류들이 발생할 수 있다.

이런 상황들을 경험하게 되었을 때의 해결 방안에 대한 방안을 빠르게 모색해야 하는데, 이 책은 이런 상황에 대해서 포괄적인 방안을 제시해준다.

특히 테스트 과정에서의 우리가 고려해야 하는 여러 요소들을 예시로 설명해주기 때문에 좀 더 이해할 수 있도록 해준다.

이 책은 총 4가지 챕터로 구성되어 있다.

첫번째 챕터에서는 시스템이 멈추지 않고 계속해서 안정적으로 유지할 수 있도록 안정성을 구축하는 기반을 다지는 방법을 살펴본다.

특히 시스템을 안정성있게 유지하기 위한 패턴에 대한 내용을 다루는 내용은 반드시 읽어보기를 추천한다.

두번째 챕터에서는 점점 진화되는 운영 환경에서 복잡하게 이루어진 여러 요소들을 운영시 고려하며 설계하는 방법에 대해 다루는데, 시스템을 안정적으로 운영하기 위한 전반적인 설계 방법을 소개한다.

현재 시스템들이 운영되는 환경에서부터 이 시스템을 이루는 여러 구성 요소들과 보안영역까지의 전반적인 내용이 담겨있다.

세번째 챕터에서는 대용량 데이터를 다루는 배치에 대한 설계와 각 서버 간의 버전 관리 내용을 다룬다.

특히 이 챕터는 배치 설계방법과 무중단 배치에 대해 알아볼 수 있었고, 버전 관리의 중요성을 다시한번 느끼게 되었다.

네번째 챕터는 시스템이 점점 진화하면서 이에 유연하게 적응하는 시스템을 만드는 방법을 알아본다.

특히 여러 장애 상황을 무작위로 가해 시스템을 점점 개선하는 생소할 수 있는 카오스 공학에 대해서도 배워볼 수 있다.

개인적으로 이 책은 시스템을 개발하고 운영하는 모든 분들이 한번쯤 꼭 읽어보기를 추천한다.

운영 환경 설계에 대한 고려사항들에 대해 모두 담겨 있다는 점에서 한번 읽고 끝이 아닌 소장해도 좋을 책이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo