코드를 읽는 능력이 쓰는 능력만큼 중요하다는 것, 테스트가 문서이기도 하다는 것, 그리고 기술보다 소통이 프로젝트의 성패를 가른다는 것 등, 이 책은 예전에 내가 개발자로서 그 깨달음에 이르기까지 겪었던 수년간의 시행착오를 단 한 권으로 압축해 놓았다. 대학에서 학생들의 코드를 보고, 현업에서 주니어 개발자들과 함께 일하면서 늘 느꼈던 “이것을 먼저 알았더라면”이라는 아쉬움, 이 책은 바로 그 답을 제공해준다. 프로그래밍 언어의 문법을 막 익힌 단계에서 진정한 소프트웨어 엔지니어로 나아가고자 하는 모든 개발자에게 필독을 권한다.
- 이민석 (국민대학교 소프트웨어융합대학 교수, 전 이노베이션 아카데미 학장)
생성형 AI의 등장으로 우리가 알고 있던 소프트웨어 개발 방식이 달라진다고 한다. 혹은 여전히 코드를 작성하는 과정만이 소프트웨어 엔지니어링의 전부라고 생각하는 이들도 적지 않다. AI 에이전트의 도움으로 코드 작성의 방법과 중요성은 줄어들고 있다. 하지만 소프트웨어 개발의 본질은 변하지 않고 있다! 즉 해결하려는 비즈니스 문제(도메인)를 이해하고, 기존 코드와 이전 개발자의 관점을 파악하며, 적절한 추상화 그리고 아키텍처를 설계하는 능력 말이다.
이 책은 스프트웨어 생명 주기를 따라서 개발자가 경험하고 각 단계에서 이해해야 할 것들을 알려주고 있다. 또한 소프트웨어 엔지니어로서의 커리어 패스를 설계할 수 있는 내용도 담고 있다.
이 책은 주니어 엔지니어에게는 경험치를 올려줄 수 있는 로드맵이 되고, 시니어 엔지니어에게는 자신의 개발 방식과 경력을 다시 점검할 수 있는 체크리스트들이 된다.
이 책과 함께 여러분의 소프트웨어 엔지니어 역량을 키워보기 바란다.
- 김병부 (라인 플러스, 『스프링 부트로 개발하는 MSA 컴포넌트』 저자)
대부분의 소프트웨어 개발이 조직 단위로 움직이는 현대의 개발 환경을 고려할 때, 기획부터 유지보수까지 개발의 전 수명 주기를 체계적으로 이해하고 엔지니어링 원칙을 적용할 수 있는 거시적인 관점이야말로 엔지니어에게 요구되는 능력이자 뛰어난 엔지니어를 구분하는 기준이라 할 수 있습니다.
이 책은 소프트웨어 엔지니어가 갖추어야 할 3가지 역량, 즉 기술적 역량(Hard Skills), 소프트 스킬(Soft Skills), 그리고 태도 및 성장 가능성(Mindset)에 대해 균형감 있게 이야기 하고 있으며, 초보 개발자에게는 엔지니어링 역량을 향상시키기 위한 이정표를 제시하고 지식을 새로 업그레이드해야 하는 고참 엔지니어에게는 매너리즘을 벗어나기 위한 통찰을 제공하고 있습니다.
빠르게 변화하는 새로운 기술 스택의 홍수 속에서 소프트웨어 개발의 기본기와 지속적인 성장을 고민하는 엔지니어, 그리고 현대적인 소프트웨어 공학을 이해하고자 하는 모든 이에게 이 책은 선택이 아닌 필수입니다.
- 김영기 (삼성전자 네트워크 사업부 SE 그룹, 『모던 데이터 아키텍처 설계와 구현』 역자)
제가 처음 개발자로 일을 시작할 때는 도시전설처럼 타고난 천재 엔지니어들이 궁금했었습니다. 30년이 지난 지금은 주어진 환경에서 완성형으로 성장하는 진짜 '소프트웨어 엔지니어' 이야기가 더 흥미롭습니다.
이 책은 실패하면서 성장한 선배들이 경험하고 쌓아놓은 이야기 보따리입니다. 제가 지난 10년동안 소프트웨어 교육 개발자로 살아오면서 일을 시작하는 후배들에게 지식을 설명하고, 경험을 공유하고, 성장할 방법을 알려주던 대부분의 내용이 이 책에 담겨있습니다. 이 책을 다 읽는다고 갑자기 ‘진짜’ 소프트웨어 엔지니어가 되지는 않겠지만, 더 성장하기 위해서 고민이 있을 때마다 읽는다면 길을 찾도록 도와줄 것입니다. 미리 실패하지 않도록 정답을 알려주는 과외 교재보다는 책장에 두고 여러 번 다시 읽는 책으로 추천합니다. 그리고 언젠가 책에 없는 자신의 이야기를 들려주면 좋겠습니다.
- 김정 (코드스쿼드 대표 + 소프트웨어-교육 개발자)
이 책은 그저 ‘코드를 작성하는 법’을 알려주기 위한 책이 아니다. “프로그래머 신입이 진정한 소프트웨어 엔지니어로 성장”하기 위해 필요한 핵심 개념들을 매우 간결하게 정리한 책이다. 유지보수 가능한 코드 작성, 테스트, 아키텍처, 데이터, 배포, 협업과 커뮤니케이션까지, 실무에서 언젠가는 마주치고야 마는 영역을 폭넓게 다룬다. 특히 경력 2~5년 차 개발자가 자신의 경험을 체계화하고 시야를 넓히기에 좋은 길잡이 역할을 하리라 확신한다. 각 장마다 소프트웨어 엔지니어링의 핵심적인 개념의 설명을 한 후, 말미에는 더 깊게 공부할 수 있는 추천 도서들로 학습의 방향을 잡아준다.
아마도 AI 에이전트 코딩시대에 꼭 필요한 지식을 습득하기 위한 가장 압축적이고 현대적인 소프트웨어 엔지니어링 입문서로 추천할 수 있는 책이라 생각한다.
- 김종원 (엔씨소프트 PI 전략팀 TD)
AI가 코드를 더 많이, 더 빠르게 만들어내는 시대에도 마지막 판단과 그 결과에 대한 책임은 결국 사람에게 남는다. 그 책임을 감당하려면 코드를 읽고, 시스템을 모델링하고, 테스트와 운영을 설계하는 기초가 더 단단해야 한다.
이 책은 교육 기관에서 잘 다루지 않는 그 기초를 한 권에 정리해, 프로그래머에서 엔지니어로 옮겨가는 길을 알려준다. 또한 현장에서 차이를 만드는 영역들을 두루 짚고, 책의 거의 모든 장에서 AI가 그 일을 어떻게 바꾸는지 함께 살핀다. 경력 초반의 엔지니어에게는 출발점을, 일정 시간 일해 온 엔지니어에게는 자신이 어느 자리에 서 있는지 점검할 기회를 제공한다. AI 시대에 더 무거워지는 전문성이 무엇인지 진지하게 묻는 분이라면 이 책을 곁에 두기 바란다.
- 박용권 (당근마켓, 엔지니어링 매니저)
“AI가 촉발시킨, 최대의 위기와도 같은 시대에 개발자들은 과연 무엇을 준비해야 할까요?” 요즘 이런 질문을 많이 받습니다. 그만큼 지금의 개발자들이 느끼는 위기감은 정말 크다고 할수 있습니다. 물론 AI가 더 고도화된다면, 코드는 모두 AI가 만들게 될 거라고 생각합니다. 그럼 개발자들은 앞으로 어떤 일을 해야 할까요?
저는 이 책에 대다수의 답이 들어있다고 생각합니다. 우리는 코드를 생산하는 일을 멈추고 그 외에 다른 많은 일들, 즉 설계, 모델링, 사용자 인터페이스 설계 등 우리가 소프트웨어를 만들면서, 해왔던 많은 일들을 지금처럼 해야 합니다. “난 이걸 거의 10년 가까이 걸려서 배워왔던 것 같은데, 어떻게 정수만을 뽑아서 한 권의 책으로 만들었을까”라는 생각을 하며 이 책을 읽었습니다.
우리 AI를 위기라고 절망하기 보다는 한번 우리가 가장 기본이라고 했던 일들에 한번 몰입해보는 건 어떨까요? 거기서 우리의 일을 지금 시대에 맞게 다시 정의하는 시간을 가져보는 걸 추천드립니다. 그 시간을 함께해줄 가장 좋은 가이드로 이 책을 추천합니다.
- 양수열 (크라우드웍스 CTO, 한국인 최초의 자바 챔피언)
예전에는 운이 좋으면 좋은 사수가 곁에서 소프트웨어 개발이라는 넓은 세계의 지도를 조금씩 보여주었습니다. 낯선 코드베이스를 어떻게 읽는지, 운영 환경에서는 왜 예상하지 못한 문제가 생기는지, 내가 만든 기능이 사용자에게 어떤 경험으로 전달되는지, 좋은 개발자는 어떤 관점으로 일해야 하는지를 옆에서 배울 수 있었습니다. 하지만 AI 도구가 빠르게 확산되고, 팀의 구조와 일하는 방식이 바뀌면서 주니어 개발자가 예전처럼 곁에서 차근차근 배울 기회를 얻기 어려운 경우가 많아졌습니다.
이 책은 그런 시대의 개발자에게 좋은 길잡이가 되어줄 수 있습니다. 특정 기술 하나를 깊게 파는 책이라기보다, 개발자가 일을 오래 해나가며 반드시 마주치게 되는 기본기를 넓게 보여주는 책입니다. 특히 인상적이었던 부분은 이 책이 개발자의 일을 코드 안쪽에만 가두지 않는다는 점입니다. 개발자가 결국 프로덕트를 만드는 사람이라는 사실을 다시 일깨워주거나(7장), 운영 환경을 배포 이후의 절차로 미뤄두지 말고 코드를 작성하는 순간부터 성능, 보안, 오류 처리, 로그, 설정, 모니터링을 함께 생각해야 함을 이야기합니다(10장), AI를 공포나 낙관의 대상이 아니라 개발자의 역량을 증폭하는 도구임을 강조하고, 코드 생성이 쉬워질수록 더 중요해지는 것은 코드를 읽고, 검토하고, 테스트하고, 운영 가능한 시스템으로 책임지는 능력임을 상기시켜줍니다(15장).
개발자로 성장한다는 것은 어느 날 갑자기 시니어라는 이름표를 다는 일이 아닙니다. 모르는 것을 인정하고, 낯선 시스템 앞에서 물러서지 않으며, 내가 작성한 코드가 다른 사람과 사용자와 운영 환경에 어떤 영향을 주는지 생각하는 습관을 쌓아가는 일입니다. 그 길을 혼자 걷고 있다고 느끼는 개발자에게, 이 책은 예전의 좋은 사수처럼 곁에서 차근차근 시야를 넓혀주는 안내자가 되어줄 것입니다.
- 이동욱 (인프랩 CTO, 『스프링 부트와 AWS로 혼자 구현하는 웹 서비스』 저자)
얼핏 보면 코드 읽기, 모델링, 자동화 테스트, 배포 전략 같은 주제들은 AI가 다 대신해줄 듯한, 구시대의 유물처럼 보이기도 한다. 하지만 막상 실무에서 AI 코딩 에이전트와 함께 일해 보면, 선배 개발자들이 오랜 경험을 통해 체득해 온 바로 그 지식들이 가장 결정적인 순간에 필요해진다는 사실을 곧 깨닫게 된다. AI에게 무엇을, 어떻게, 어떤 제약 아래에서 만들라고 말할 수 있는 능력, 그리고 그 결과물을 비판적으로 검증할 수 있는 안목, 그런 것들은 결국 소프트웨어 엔지니어링의 기본기에서 나온다.
이 책은 AI 시대를 맞이한 개발자에게 진정으로 필요한 가장 필수적인 지식이 무엇인지를 정확히, 그리고 친절하게 보여주는 안내서다
- 이일민 (이프릴 대표, 『토비의 스프링』 저자)
요즘 부쩍 소프트웨어 개발자의 전문성이란 무엇인지에 대한 질문을 자주 받지만, 대답을 자신있게 하기란 좀처럼 쉽지 않았다. 일하는 방식이 급변하고 있고, 정보는 넘쳐나면서도 어떤 지식은 이제 몰라도 된다는 이야기도 많이 들리는 시기이기 때문이다.
이 책은 소프트웨어 엔지니어가 결정하고 책임져야 할 영역의 지도를 그려주면서 그 질문에 대한 근본적이고 알찬 답변을 담고 있다. 실무의 지형을 생생하게 담은 이 지도는 경력의 초입에 있는 분들에게는 목적지와 방향을 안내하고, 베테랑들에게는 지나온 길을 돌아보면서 경력 여정을 정비하는 데에도 큰 도움을 줄 것이다.
- 정상혁 (IT 서비스 회사 개발조직 리더)
AI 덕분에 코드 한 줄 없이 앱을 만드는 시대가 됐다. 그러나 기본 없이 막연히 AI에 맡긴 코드는 금세 재활용이 불가능한 일회용이 되고 토큰 지출 비용만 쌓인다. 엔지니어링의 힘은 결국 소프트웨어 엔지니어가 사용자와 환경이라는 기본을 이해하고, 그 산출물로서 지속 가능한 코드가 얹어져야만 발휘될 수 있다. 코드를 제대로 알려면, 단순한 한 줄이 아닌 프로젝트 전체 맥락과 핵심 뼈대를 바라볼 수 있어야 한다. 아울러 사람이 읽기 좋은 코드가 무엇인지를 알아야만, AI도 잘 읽는 코드가 되며 결국 개인의 경쟁력까지 높이는 막강한 무기가 된다.
이 책은 바로 그처럼 “사람이 제대로 알 수 있는 코드”를 유머와 위트 있는 문장으로 풀어낸다. 저자의 원글을 한국어로 더욱 맛깔나게 전해주는 만큼, 역자의 평소 입담 또한 생생하게 느껴진다. 빠른 변화에 휩쓸리기 전에, 기본을 단단히 다지고 싶은 개발자라면 꼭 읽어보길 권한다.
- 지두현 (현대오토에버 SW개발센터장 상무)
최근 코딩 에이전트가 빠르게 발전하면서 많은 사람이 새로운 도구를 어떻게 활용할지 고민하고 있습니다. 하지만 새로운 패러다임을 적용할 때일수록 도구 자체보다 먼저 보아야 할 것은 소프트웨어 엔지니어링이라는 일의 본질입니다.
이 책은 코드 작성, 테스트, 운영, 학습, 협업, AI 활용까지 소프트웨어 엔지니어가 마주하는 여러 측면을 균형 있게 나누어 보여줍니다. 그래서 처음 소프트웨어 엔지니어링을 배우는 사람에게는 넓은 지도를 제공하고, 코딩 에이전트와 일하는 법을 찾는 사람에게는 무엇을 기준으로 도구를 받아들여야 하는지 힌트를 줍니다. 빠르게 변하는 시대일수록 다시 기본으로 돌아가야 한다는 점에서, 이 책은 오늘날 AI 시대를 버텨내고 살아가야 하는 모든 소프트웨어 엔지니어에게 꼭 필요한 책입니다.
- 허정준 (Plaad 공동창업자, 『LLM을 활용한 실전 AI 애플리케이션 개발』 저자)
네이트와 댄은 오랜 경험을 놀라운 통찰로 잘 갈무리해, 숙련된 개발자와 초보 개발자 모두 에게 큰 도움이 될 내용을 담아냈다.
- 크리스 크레이머 (쏘트웍스 수석 AI 엔지니어)
이런 책이 지금처럼 절실한 때는 없었다. AI가 취업 시장에 불러 일으킨 혼란과 원격 근무 방식으로 인해 전통적인 도제식 멘토링이 무너져 내린 오늘날, 이와 같은 어려움을 경력 초반의 개발자가 헤쳐 나가야 하는 이 시기에 이 책은 성장과 적응과 성과를 내는 데 필요한 지혜와 방향을 제시한다.
- 크리스토퍼 저드 (저드 솔루션스 대표)
이 책에서 댄과 네이트는 여러 해 정규 교육을 받아도 좀처럼 닿기 어려운 핵심을 직접 짚어 준다.
수십 년에 걸친 두 저자의 경험이 책 곳곳에 배어 있고, 현업 개발자가 알아야 할 것과 피해야 할 것을 세심하게 골라 담았다.
- 벤캇 수브라마니암 (박사,수상 경력의 저자, 애자일 디벨로퍼 설립자)
놀랍게도 현대의 소프트웨어 엔지니어링이 실제로 무엇을 아우르는지 전체적으로 보여 주는 책은 지금까지 없었다. 돌이켜 보면 꽤 큰 공백이었는데, 이 책은 그 빈자리를 메우며 실무자 관점에서 소프트웨어 엔지니어링의 여러 모습을 탁월하게 정리해 준다. 오라일리 Fundamentals 시리즈의 다른 책들과 마찬가지로, 신입 엔지니어와 경력 엔지니어 모두에게 아직 접해보지 못했거나 미처 존재조차 몰랐던 영역을 채워주는 귀중한 길잡이다. 강력히 추천한다.
- 닐 포드 (소트웍스 디스팅귀시드 엔지니어)
각 분야에서 일하는 사람이라면 누구나 자기가 무엇을 모르는지조차 모르는 ‘무지에 대한 무지’라는 불확실성과 마주한다. 무슨 일이 일어날지 모를 때 사람은 어떻게 준비해야 할까? 지도조차 없이 낯선 땅을 어떻게 건너야 할까?
소프트웨어 엔지니어링을 향해 나아가는 길, 곧 ‘프로그래머’에서 ‘엔지니어’로 의식적으로 옮겨가는 일도 오랫동안 비슷한 딜레마를 안겨왔다. 쏟아지는 유행어의 파도 속에서 방향을 잡아야 하고, 끊임없이 바뀌는 환경의 거친 물결을 헤쳐나가야 하며, 여기에 일터에서 커지는 AI의 영향력까지 마주해야 한다. 그래서 이 여정은 이제 막 시작한 사람에게도, 오래 일한 베테랑에게도 버겁게 느껴진다.
하지만 걱정할 필요는 없다. 네이트와 댄이 바로 그런 지도를 만들어뒀기 때문이다. 이 책은 사고방식을 엔지니어의 관점으로 바꾸는 데 필요한 기초를 차근차근 보여준다. 특정 기술을 다루는 책이 아니다. 오늘날처럼 거칠게 흔들리는 현업 환경에서 살아남는 데 그치지 않고 제대로 성장하게 해줄 역량을 다룬다
- 라주 간디 (소프트웨어 장인, 기술 애호가, 교육자, 『헤드 퍼스트 소프트웨어 아키텍처』, 『헤드 퍼스트 깃』, 『자바스크립트 넥스트』 저자)