스프링 부트(Spring Boot)는 2022년에 ‘주류’라고 표현해도 틀린 말이 아닐 정도로 큰 성공을 거뒀다. 거의 모든 자바(Java) 개발자는 스프링 부트에 대해 알고 있을 것이며, 심지어 대다수의 개발자는 화가 나는 상황에도 스프링 부트를 사용해본 적이 있을 것이다. 하지만 소프트웨어 엔지니어링 분야에는 항상 배워야 할 새로운 것이 있고, 해결해야 할 새로운 문제가 있기에 결국에는 보람을 느낄 수 있다. 항상 새로운 것을 발명하고, 코드를 생성할 수 있는 기술과 기회를 갖는다는 것은 지적인 면을 비롯한 모든 점에서도 매우 보람 있는 일이다.
이 책의 저자가 말하는 스프링 부트의 목표 중 하나는 아이디어를 가능한 한 빠르고 효율적으로 코드로 구현해 프로덕션(production)과 같은 가장 특별한 곳에 적용할 수 있도록 하는 것이다. 짧고 즐거운 여정, 혹은 조금 더 길고 즐거운 여정이 되기를 바란다.
이 책에서 그렉은 내부자라는 이점을 활용해 모든 자바 개발자가 경험했을 법한 오래되고,자주 만나는 문제들에 스프링 부트 지식을 추가했다. HTTP 엔드포인트(endpoint) 생성, 보안, 데이터베이스 연결, 테스트 작성 등 우리 모두가 거의 매일 해결해야 하는 작업의 관찰을 통해 스프링 부트를 살펴보는 것보다 더 좋은 학습 방법이 있을까? 이 책은 현대적인 아이디어와 도구를 적용해 진부한 이야기에 새로운 관점을 추가하므로 이 책을 읽다 보면 가장 실용적인 관점에서 하이퍼미디어(hypermedia)와 OAuth 등을 배울 수 있다. 또한, 이 책은 스프링이나 자바에 대한 사전 지식이 전혀 없다고 가정하고 처음부터 시작한다. 기본적인 기술이나 프로그래밍 능력이 있는 사람이라면 누구나 스프링 부트를 사용하는 방법과 이유를 이해할 수 있을 것이다.
스프링 부트에는 주요 메서드(method), 임베디드 컨테이너(embedded container), 자동 설정, 관리 엔드포인트 외에도 많은 것이 존재한다. 예를 들어, 코드 몇 줄로 모든 기능을 갖춘 스프링 애플리케이션을 시작할 때의 순수한 기쁨은 이루 말할 수 없다. 이 책을 읽고 편집기나 통합 개발 환경(IDE, Integrated Development Environment)을 꺼내서 직접 애플리케이션을 만들어보길 바란다.
그렉은 스프링 부트 팀의 중요한 일원으로 스프링 엔지니어링과 관련된 많은 일을 하고 있다. 그럼에도 불구하고 이 훌륭한 책을 위해 아낌없는 노력을 기울인 것에 감사하게 생각한다. 그는 교육자이자 정보 제공자이고 엔지니어임을 매우 명확하게 보여준다. 이 책을 읽으면 항상 차분하지만 열정적이고 유머가 가미되어 있는 그렉의 목소리와 개성이 매우 선명하게 들린다. 스프링을 사용한 코딩은 세월이 흘러도 여전히 재미있으니 직접 읽어보고 즐기자
- 데이브 사이어(Dave Syer) (스프링 부트 공동 창시자 겸 수석 스태프 엔지니어,2022년, 런던)
나는 그렉 턴키스트를 오랫동안 알고 지냈다. 피보탈(Pivotal)에 합류한 후 공식적으로 업무를 시작하기 전에 스프링과 관련된 모든 것을 다루는 연례 콘퍼런스인 SpringOne2GX에서 그를 처음 만났다. 둘 다 그루비(Groovy)와 그레일즈(Grails)의 열광적인 시절을 기억하고 있다. 그곳에서 우리는 생각을 자극하는 훌륭한 대화를 나눴고, 그 대화는 그 이후로 몇 년 동안 계속됐다.
내가 처음 읽은 스프링 부트 관련 서적 중 하나는 그렉의 『Learning Spring Boot』 초판이다. ‘더 일찍 읽었더라면 어땠을까’ 하는 아쉬움이 있다. 믿을 수 있는 동료들이 쓴 다른 책들과 함께 스프링 부트 관련 주제들을 소개하고 참고할 수 있는 가치 있는 자료로 이 책을 추천하고 있다.
나 역시 저자로서 이 책을 집필하고 업데이트할 때 그렉이 얼마나 짜릿하고 힘든 작업을 했는지 잘 알고 있다. 모든 저자는 공유하고 싶은 모든 것, 가장 중요하다고 생각하는 모든 주제와 시간과 분량의 끊임없는 제약 사이에서 균형을 맞춰야 한다. 그렉은 이 두 가지를 능숙하게 조정해 기초를 잘 다진 다음 개발자에게 중요한 주제로 빠르게 전환해 스프링 부트를 사용하며 실제 애플리케이션을 구현할 수 있도록 한다. 데이터, 보안, 설정, 자바스크립트(JavaScript)와의 통합까지 모든 것이 책 안에 다 들어 있다.
나는 스프링 팀에서 그렉과 함께 일할 수 있어서 정말 즐거웠고, 앞으로도 계속 대화를 나눌 수 있기를 바란다. 내 책장에는 항상 그렉의 책이 놓일 영광스러운 자리가 있을 것이고, 여러분도 책장에 이 책을 위한 공간을 만들기를 바란다. 이 책을 읽고 그렉에 대해 알아보자. 여러분의 스프링 부트 애플리케이션에 도움이 될 것이다.
당신의 스프링 부트 여정을 응원한다.
- 마크 헤클러(Mark Heckler) (마이크로소프트 수석 클라우드 애드버킷(Advocate))
이 서문을 읽으면서 책에 대한 설득력 있는 추천사나 인생에 대한 재미있는 일화를 기대했으리라는 것을 알고 있다. 책의 서문이니까 그렇지 않을 이유가 없다. 하지만 양심상 그런 서문을 써줄 수는 없다. 부조리한 느낌이 들기 때문이다. 물론 이 책은 환상적이지만, 그래서 뻔한 얘기에만 머물고 싶지 않다.
이 걸작의 저자인 그렉에 대해 이야기해보자. 그렉은 스프링 팀에서 나보다 더 오래 근무했다. 대부분의 사람이 스프링에 대해 알고 있는 것에 비해 그에 대해서는 잘 모른다. 그렉은 크고 작은 일에 시간을 투자한다. 그가 여러분의 셰르파(sherpa)가 돼 초보자부터 스프링 부트 전문가가 될 때까지 여러분을 안내해줄 것이라고 믿어도 좋다. 정말이다.
그렉은 친구다. 그렉과 나는 몇 가지 중요한 면에서 매우 닮았기 때문에 사이가 좋다. 나는주류는 아니지만 때때로 매우 고통스러운 문제를 해결하는 기묘한 작은 프로젝트를 좋아한다. 한번은 청중 3명에게 강연을 한 적이 있다. 내 발표가 너무 특정한 주제여서 수천 명의 전체 참석자 중 단 3명만이 참석했었다. 희미하게나마 해결의 실마리가 보인다면 기꺼이 지지할 의향이 있다. 그렉도 마찬가지다. 그는 크고 작은 일에 투자한다.
우리는 둘 다 자바 가상 머신(JVM, Java Virtual Machine)과 파이썬(Python)을 좋아한다. 이러한 공통의 애정이 우리를 스프링 파이썬으로 이끌었다. 오래 전, 그렉은 스프링 파이썬 프로젝트를 통해 스프링 프레임워크의 우수성을 파이썬 생태계에 도입했다. 파이썬 생태계는 모든 사용 사례에 대한 대안으로 가득하다. 이러한 선택의 바다에서 스프링 파이썬은 단연 돋보였다. 이 라이브러리는 스프링 프레임워크의 매우 높은 목표를 달성하면서도 익숙한 파이썬 프로그래머에게 라이브러리가 관용적으로 느껴질 수 있는 ‘파이토닉(phythonic)’한 특성을 유지했다. 이는 크게 다른 두 가지 생태계에 대한 깊은 헌신과 친숙함을 보여줬다. 스프링 파이썬 때문에 그렉을 좋아한다. 문제가 아무리 크든 작든 해결될 때까지 기꺼이 앉아서 소매를 걷어붙이고 시야를 넓혀 코드를 작성하는 그의 모습을 볼 수 있다. 한 가지 주제를 깊이 파고들려는 의지가 그를 재능 있는 저자이자 강사로 만들었으며, 이는 그의 책, 강좌, 블로그, 기사에서 잘 드러난다. 그의 재능 덕분에 이 책은 소프트웨어에 관한 또 다른 책이 아니라 시간을 투자할 만한 가치가 있는 책이 됐다.
이 책은 2013년 스프링 부트가 처음으로 공개된 이후 가장 중요한 릴리스인 최근 출시된 스프링 부트 3.0을 다룬다. 그렉을 포함한 스프링 팀원 모두가 이 릴리스를 출시하기 위해 그 어느 때보다 오랜 시간 동안 열심히 일한 것으로 알고 있다. 그런 모든 업무에도 불구하고 그렉은 기록적인 시간 내에 이 책을 여러분의 손에 쥐어주는 데 성공했다. 독자 여러분을 위해 그가 그렇게 노력했기 때문에 기록적인 시간 내에 출판 작업에 들어갈 수 있었던 것이다. 그리고 그렉은 우리가 크고 작은 투자를 할 필요가 없도록 해줬다.
- 조쉬 롱(Josh Long) (스프링 개발자 애드보킷, VMware, 잘 알려진 그렉 턴키스트의 팬)