이미 소장하고 있다면 판매해 보세요.
|
1장 프로그래머에서 이제는 엔지니어로
다양한 명칭으로 불리는 엔지니어 기초의 중요성 소프트웨어 엔지니어가 되는 다양한 경로 교육받은 지식과 알아야 할 지식 게으른 프로그래머 정신의 수용 새로운 시각의 가치 성급한 해결책 제시의 위험성 소프트웨어의 황금률 적용 정리 직접 실천해 보자 더 읽을거리 2장 코드 문해력 = 실무 기본 능력 기존 코드 작업의 어려움 인지 편향 낯선 코드 접근법 소프트웨어 고고학 효과적인 코드 이해 전략 __IDE 기능 활용 __테스트에서 얻는 통찰력 완성의 길, 연습 정리 직접 실천해 보자 더 읽을거리 3장 사람을 위한 코드 작성법 바퀴 재발명 금지 좋은 코드란 간결함의 가치 __컴퓨터 과학의 제0법칙 __상용구 코드 주의 __상속보다는 구성 __짧은 메서드 지향 독자를 위한 코드 작성 코드 주석의 문제 테스트를 문서로 사용 멋부린 코드 금지 코드 리뷰 형식적 코드 리뷰 금지 비판받을 용기 신뢰 구축 새로운 언어 학습 정리 직접 실천해 보자 더 읽을거리 4장 소통을 돕는 적정 모델링 소프트웨어 모델링의 정의와 이유 필요한 다이어그램의 종류 __컨텍스트 다이어그램 __컴포넌트 다이어그램 __클래스 다이어그램 __순차 다이어그램 __전개 다이어그램 __데이터 모델 __기타 다이어그램 모델링 모범 사례 __단순하게 유지하라 __독자를 파악하라 __조심해서 색상을 선택하라 __표준과 템플릿을 수립하라 도구 정리 직접 실천해 보자 더 읽을거리 5장 자동 테스트: 좋은 소프트웨어를 만드는 최고의 습관 자동 테스트의 이점 __문서 역할을 하는 테스트 __유지보수성 향상 __자신감 상승 __일관성과 반복 가능성 자동 테스트 유형 __단위 테스트 __통합 테스트 __종단 간 테스트 __테스트 유형별 비중 __테스트하지 말아야 할 것 코드 실행률 테스트 작성 __시작 방법 __단정문 __단위 테스트 작성 __모의 객체 __통합 테스트 작성 __종단 간 테스트 작성 정리 직접 실천해 보자 더 읽을거리 6장 낯선 시스템에 빨리 친숙해지기 낯선 코드 기반 이해 __출발점, 큰 그림 __실행 흐름 파악 __점진적인 정신 모델 구축 샘플 프로세스 안전한 수정 __안전한 리팩터링 __스카우트 규칙 __되돌릴 수 있는 작은 변경 정리 직접 실천해 보자 더 읽을거리 7장 엔지니어라면 꼭 알아야 할 UI 설계 기초 모두를 위한 디자인 __사용성 __접근성 __국제화와 지역화 사용자 파악 __2차 사용자 __개발자는 사용자가 아니다 __문화의 영향 사용성 극대화 디자인 원칙 __대비 __반복 __정렬 __근접성 디자인 원칙 적용 올바른 것을 명확하게 만들기 좋은 오류 메시지의 중요성 파괴적인 작업 정리 직접 실천해 보자 더 읽을거리 8장 다양한 데이터 기술을 적절하게 사용하는 방법 자료형과 형식의 이해 __정형 데이터와 비정형 데이터 __일반적인 데이터 형식 __기타 특수 사항 효과적인 데이터 저장 __데이터베이스 유형과 사용 사례 __데이터 영속성 및 관리 __데이터베이스 연결과 트랜잭션 __일관성 모델 및 캐시 전략 __데이터 증가 대책 데이터 질의와 성능 관리 __효율적인 질의문 작성법 __도구 및 모범 사례 데이터 이전과 변환 __데이터 이동 기초 __스키마 변경 처리 정리 직접 실천해 보자 더 읽을거리 9장 소프트웨어 아키텍처: 복잡하고 중요한 결정 아키텍처란 무엇인가 득실 관계 아키텍처와 설계 품질 속성 __품질 속성 식별 __이해관계자 합의 아키텍처 방식 애자일 아키텍트 적합도 함수 아키텍처 다이어그램 아키텍처 결정 기록 정리 직접 실천해 보자 더 읽을거리 10장 운영 환경: 코드가 살아야 하는 낯선 환경 복잡한 운영 환경 __예측 불가능한 사용자 “내 컴퓨터에서는 되는데요” 운영 준비된 코드 구축 __성능 최적화 __환경별 설정 구성 __오류 처리와 로그 __보안 필수사항 전개 파이프라인 __전개 환경 __버전 관리 전략 __전개 자동화 __전개 전략 __지속적 통합과 지속적 전개 운영 시스템 모니터링과 유지보수 __모니터링 __시스템 유지보수 정리 직접 실천해 보자 더 읽을거리 11장 생산성 강화: 효율적으로 일하기 개발 환경 최적화 __개발 도구를 익혀라 __나만의 광선검 제작 __명령행의 힘 __키보드 단축키의 힘을 키워라 전략적 자동화 생산성 있는 습관의 끝없는 추구 __협업 학습 __개인 지식 관리 정리 직접 실천해 보자 더 읽을거리 12장 즐겁게 배우며 앞서가는 엔지니어 되기 벼락치기의 한계 기술 습득 학습 습관 AI 활용 학습 기회 상실 공포 시간 투자 전략 혁신 실천 아키텍처 브리핑 여유를 실천하자 정리 직접 실천해 보자 더 읽을거리 13장 기술 세계의 소프트 스킬 협력적 소통 __소통 수단 __옮겨 말하기 __청중을 파악하라 영향력 행사 __가치 이해와 표현 __전략적 영향력 행사 이해관계자 관리 시간 관리 __제작자의 일정 __집중력 유지 정리 직접 실천해 보자 더 읽을거리 14장 성공적인 경력 계획과 관리 진로 계획 __열정 발견 __어떤 길이 있는지 살펴보기 __목표에서 되짚어 계획 세우기 __의도적인 역량 습득 __생애 주기별 진로 선택 진로 따라 걷기 __성취를 축하하고 기록하라 __가면 증후군 극복 __전문가 커뮤니티 구축 __전문가 관계 구축 __성공적인 면접 __일과 삶의 균형 정리 직접 실천해 보자 더 읽을거리 15장 AI로 무장한 소프트웨어 엔지니어 AI란 정말 무엇인가 __AI 용어 해설 __AI의 능력과 한계 이해하기 짝 프로그래머로서의 AI __독립형 챗봇 조수 IDE 인라인 어시스턴트 __에이전트형 AI IDE 환경 프롬프트 엔지니어링 기초 __프롬프트 엔지니어링이란 __핵심 프롬프트 엔지니어링 기법 __고급 프롬프트 엔지니어링 기법 AI가 소프트웨어 엔지니어링을 바꾸는 방법 __AI가 내 일자리를 빼앗을까 __바이브 코드 리뷰 __전력승수로서의 AI: 코드 작성에서 문제 해결로 정리 직접 실천해 보자 더 읽을거리 |
Nathaniel Schutta
Dan Vega
박성철의 다른 상품
|
| 이 책에서 다루는 내용 |
- 소프트웨어 엔지니어링의 올바른 의미, 그리고 소프트 스킬의 중요성 - 소프트웨어 아키텍처와 아키텍처 결정 요인의 기초 - 널리 쓰이고 검증된 기법을 활용한 코드 기반 분석과 리팩토링 - 테스트의 중요성과 효과적인 테스트 구현 방법 - 소프트웨어를 안정적으로 반복해서 전개하는 방법 - 문제에 적합한 해결책이나 도구를 평가하고 선택하는 방법 | 이 책의 대상 독자 | - 새로 일을 시작한 소프트웨어 엔지니어: ‘그저 코딩하는 사람’을 넘어 진짜 소프트웨어 엔지니어가 되려면 무엇이 필요한지, 그리고 경력을 발전시키려면 무엇을 갖춰야 하는지 큰 그림으로 보여준다. - 경력 엔지니어: 이 책에서 다루는 핵심 역량은 큰 도움이 되며, 특히 더 높은 역할과 더 큰 책임을 맡고 싶다면 더욱 그렇다. 탄탄한 역량은 더 많은 책임과 승진의 기회를 여는 열쇠가 된다. | 이 책의 구성 | 1장부터 3장까지는 첫 번째 파트로서 성공적인 소프트웨어 엔지니어가 갖춰야 할 ‘핵심 역량’을 다룬다. - 1장 ‘프로그래머에서 이제는 엔지니어로’ 소프트웨어 엔지니어가 되는 여러 길을 살펴보고, 기초 역량의 중요성을 강조한다. - 2장 ‘코드 문해력 = 실무 기본 능력’ 소프트웨어 엔지니어가 코드를 쓰는 시간보다 읽는 시간이 더 많다는 점을 다룬다. 낯선 코드를 헤쳐나가는 전략도 함께 제시한다. - 3장 ‘사람을 위한 코드 작성법’ 읽기 쉽고 유지보수하기 좋은 코드를 작성하는 것이 왜 중요한지 다룬다. 결국 컴퓨터보다 개발자를 위해 코드를 써야 하는 이유를 보여준다. 두 번째 파트로서 4장부터 6장까지는 소프트웨어 엔지니어가 프로젝트 중에 만나게 될 여러 기술 실천사항에 대해 알아본다. - 4장 ‘소통을 돕는 적정 모델링’ 많은 프로젝트에서 봤거나 앞으로 보게 될, 상자와 선으로 그린 다이어그램, 곧 소프트웨어 모델링이 소프트웨어 엔지니어 사이의 중요한 소통 수단이라는 점을 설명한다. - 5장 ‘자동 테스트: 좋은 소프트웨어를 만드는 최고의 습관’ 자동화된 테스트가 코드 품질과 개발자의 자신감에 어떤 도움을 주는지 다룬다. - 6장 ‘낯선 시스템에 빨리 친숙해지기’ 기존 코드에서 효과적으로 일하는 전략을 강조한다. 새 팀에 합류하든, 레거시 시스템을 유지보수하든, 이런 역량은 어떤 코드에서도 자신 있게 기여하도록 도와준다. 7장부터 10장까지 4개 장에 이르는 세 번째 파트에서는 소프트웨어를 설계하고 개발할 때 마주치는 세부적인 문제를 살펴본다. - 7장 ‘엔지니어라면 꼭 알아야 할 UI 설계 기초’ 사용자 인터페이스 설계 분야를 개괄한다. 사용자를 이해하고 설계 원칙을 적용해야 소프트웨어가 실제 사용자 요구를 제대로 충족할 수 있는 이유를 설명한다. - 8장 ‘다양한 데이터 기술을 적절하게 사용하는 방법’ 거의 모든 소프트웨어 애플리케이션이 어떤 식으로든 다루게 되는 데이터 작업을 다룬다. 애플리케이션의 데이터와 관련해 판단을 내릴 때 알아야 할 핵심 역량을 설명한다. - 9장 ‘소프트웨어 아키텍처: 복잡하고 중요한 결정’ 소프트웨어 아키텍처의 복잡성을 살펴보며, 모든 소프트웨어 프로젝트에 들어 있는 아키텍처상의 득실을 이해할 실마리를 제공한다. - 10장 ‘운영 환경: 코드가 살아야 하는 낯선 환경’ 코드를 운영 환경에 올리는 일을 다룬다. 실제 사용자와 실제 운영 환경의 예측하기 어려운 특성을 설명하고, 운영에 대비된 코드를 만드는 전략을 정리한다. 마지막 네 번째 파트에서는 소프트웨어 엔지니어의 경력 계발과 관리, 직업으로서 성장하기 위한 실천 방안에 대해 살펴보고 이 책을 마무리한다. - 11장 ‘생산성 강화: 효율적으로 일하기’ 다시 일상적인 업무로 돌아와, 자신만의 도구 모음을 갖추는 중요성을 다룬다. - 12장 ‘즐겁게 배우며 앞서가는 엔지니어 되기’ 지속적인 학습의 중요성을 다룬다. 끊임없이 변하는 분야를 따라가기 위한 전략도 제시한다. - 13장 ‘기술 세계의 소프트 스킬’ 경력에서 소프트 스킬이 왜 중요한지를 다룬다. 협업적 소통, 영향력, 이해관계자 관리를 설명한다. - 14장 ‘성공적인 경력 계획과 관리’ 소프트웨어 엔지니어 경력을 계획하고 경로를 찾아 걷는 데 초점을 맞춘다. 열정을 찾는 법, 경력 경로를 탐색하는 법, 역량을 의식적으로 쌓는 법을 설명한다. 아울러 직업적 인맥을 만들고, 면접을 잘 치르고, 일과 삶의 균형을 세우는 방법도 다룬다. - 15장 ‘AI로 무장한 소프트웨어 엔지니어’ 오늘날 소프트웨어 분야에서 가장 큰 변화를 일으키는 주제 중 하나인 AI를 다룬다. AI를 따로 다루는 장이 있기는 하지만, 소프트웨어 개발 수명 주기 전반에 AI의 영향이 넓게 퍼져 있기 때문에 책 전체에서 AI 이야기가 계속 등장한다. |
|
코드를 읽는 능력이 쓰는 능력만큼 중요하다는 것, 테스트가 문서이기도 하다는 것, 그리고 기술보다 소통이 프로젝트의 성패를 가른다는 것 등, 이 책은 예전에 내가 개발자로서 그 깨달음에 이르기까지 겪었던 수년간의 시행착오를 단 한 권으로 압축해 놓았다. 대학에서 학생들의 코드를 보고, 현업에서 주니어 개발자들과 함께 일하면서 늘 느꼈던 “이것을 먼저 알았더라면”이라는 아쉬움, 이 책은 바로 그 답을 제공해준다. 프로그래밍 언어의 문법을 막 익힌 단계에서 진정한 소프트웨어 엔지니어로 나아가고자 하는 모든 개발자에게 필독을 권한다. - 이민석 (국민대학교 소프트웨어융합대학 교수, 전 이노베이션 아카데미 학장)
|
|
생성형 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의 영향력까지 마주해야 한다. 그래서 이 여정은 이제 막 시작한 사람에게도, 오래 일한 베테랑에게도 버겁게 느껴진다. 하지만 걱정할 필요는 없다. 네이트와 댄이 바로 그런 지도를 만들어뒀기 때문이다. 이 책은 사고방식을 엔지니어의 관점으로 바꾸는 데 필요한 기초를 차근차근 보여준다. 특정 기술을 다루는 책이 아니다. 오늘날처럼 거칠게 흔들리는 현업 환경에서 살아남는 데 그치지 않고 제대로 성장하게 해줄 역량을 다룬다 - 라주 간디 (소프트웨어 장인, 기술 애호가, 교육자, 『헤드 퍼스트 소프트웨어 아키텍처』, 『헤드 퍼스트 깃』, 『자바스크립트 넥스트』 저자) |