내 코드가 불안한 개발자를 위한 좋은 코드의 기준 (AI 시대에도 변치 않는 코드 선별과 유지보수 원칙)

내 코드가 불안한 개발자를 위한 좋은 코드의 기준 (AI 시대에도 변치 않는 코드 선별과 유지보수 원칙)

$25.00
Description
오늘 만든 코드가 내일의 발목을 잡지 않게 하려면
코드는 돌아가지만 어딘가 불안한 순간이 있습니다. 조금만 수정해도 문제가 번지고 기능을 추가할수록 속도는 느려집니다. 코드는 AI로도 짤 수 있지만 그대로 쓰기에는 망설여집니다. 이렇게 만든 코드가 프로젝트의 자산이 될지, 갚아야 할 부채가 될지 판단하는 일은 여전히 개발자의 몫입니다.
이 책은 단순히 돌아가는 코드를 넘어 ‘읽기 쉽고 유지보수하기 편하며 튼튼한 코드’를 작성하는 원칙을 다룹니다. 변수 이름을 짓는 아주 기본적인 고민부터, 복잡한 의존 관계를 풀고 아키텍처를 설계하는 방법, 그리고 팀원과 협업하며 품질을 높이는 노하우까지 개발자가 갖춰야 할 기본기를 체계적으로 정리했습니다.
특히 AI가 코드를 대신 짜주는 시대일수록 그 코드가 ‘좋은 코드’인지 판별하고 수정할 수 있는 개발자의 안목은 더욱 중요합니다. 이 책은 베테랑 엔지니어가 과거의 자신처럼 개발에 어려움을 겪는 개발자들을 위해, AI 시대에도 변치 않을 코드의 본질과 원칙을 담았습니다. 코드를 더 많이 짜는 개발자가 아니라 코드를 책임지는 개발자가 되고 싶다면, 이 책이 가장 단단한 출발점이 될 것입니다.
저자

모리아츠시

야마구치현에서태어나효고현에서유년시절을보냈습니다.아카시공업고등전문학교에입학하여프로그래밍을배웠으며,다수의프로그래밍콘테스트에서입상하는과정에서지속적인개발의어려움과그소중함을깨달았습니다.현재는LYCorporation소속의안드로이드앱엔지니어로,커뮤니케이션앱LINE의안드로이드버전개발에참여하고있습니다.2019년도미토IT인재발굴·육성사업(MITOU)의슈퍼크리에이터로선정된바있습니다.

목차

들어가며
1장왜좋은코드를작성해야할까?
__1.1소프트웨어의가치
__1.2유지보수성과속도
__1.3기술부채발생과소멸
__1.4좋은코드를작성하려면

2장움직이는코드에서뜻을전하는코드로
__2.1의도표현하기
__2.2이름으로전하기
__2.3주석으로보충하기
__2.4코드로도메인지식표현하기

3장큰문제는나누어생각하기
__3.1함수와클래스나누기
__3.2자세히읽지않아도사용할수있게
__3.3코드복잡도계산하기
__3.4응집도높이기

4장코드정리하기
__4.1디렉터리단위로정리하기
__4.2모듈단위로정리하기

5장얽힌의존관계풀기
__5.1의존관계의식하기
__5.2의존방향검토하기
__5.3추상에의존하도록하기
__5.4결합도낮추기

6장좋은코드작성원칙과교훈
__6.1KISS원칙:간단하게유지하기
__6.2YAGNI원칙:필요할때비로소구현하기
__6.3DRY원칙:중복지식줄이기
__6.4바퀴재발명:같은것만들지않기
__6.5망치를든사람에게는모든것이못처럼보인다
__6.6은탄환은없다

7장어이없는실수를안하려면
__7.1매직넘버피하기
__7.2자료형제한활용하기
__7.3변경할수없는데이터사용하기
__7.4데이터는한곳에서관리하기
__7.5상태변경과정보조회분리하기

8장코드는작성보다변경이더어렵다
__8.1보이스카우트규칙:왔을때보다더깨끗하게
__8.2백지상태에서코드바라보기
__8.3조금씩수정하기
__8.4필요없어진코드삭제하기

9장아키텍처고민하기
__9.1계층정리하기
__9.2계층구성아이디어
__9.3기능을바탕으로나누기
__9.4아키텍처를생각한다는것

10장파괴를막는자동화테스트
__10.1수동테스트의한계와자동화
__10.2자동화테스트의종류
__10.3단위테스트만들기
__10.4의존코드를테스트대역으로바꾸기
__10.5테스트커버리지측정하기
__10.6통합테스트/E2E테스트

11장팀이만드는좋은코드
__11.1Git으로버전관리하기
__11.2코드리뷰하기
__11.3코딩규약정하기
__11.4자동으로확인하기
__11.5설계서만들기

마치며
참고문헌
찾아보기

출판사 서평

코딩의시대는가고,코드관리의시대가왔다!
AI가코드를대신작성해주는시대.이제개발자의경쟁력은‘얼마나빨리짜느냐’가아니라‘어떤코드를선택하느냐’에달려있습니다.기능은돌아가지만어딘가불안한코드,조금만수정해도버그가터지고점점고치기어려워지는코드.결국문제는‘구현’이아니라‘기준’입니다.
이책은단순히‘클린코드'작성법을나열하지않습니다.대신AI시대에도변하지않는좋은코드의기준을세워줍니다.가독성과유지보수성,설계,협업까지,어떤언어를쓰든통용되는원칙을통해내일도고칠수있는코드를만드는방법을알려줍니다.

★AI시대에도변치않는‘유지보수성’의핵심원칙
트렌드가바뀌어도변하지않는소프트웨어개발의‘기본’에집중합니다.특정기술의사용법을나열하는것이아니라,왜좋은코드를작성해야하는지,어떻게하면변경에유연한구조를만들수있는지에대한근본적인해답을제시합니다.

★나쁜코드vs좋은코드,명확한비교를통한실전가이드
추상적인이론설명에그치지않고,구체적인예제코드를통해‘읽기어려운코드’와‘의도가명확한코드’를직접비교합니다.코틀린(Kotlin)으로작성된예제를사용하지만,자바나파이썬등다른언어를사용하는개발자도충분히이해하고적용할수있도록‘코드의의도와구조’에집중하여설명합니다.

★코드한줄부터팀문화까지,개발전과정을커버
변수명명법과주석작성같은미시적인영역부터클래스와모듈분할,아키텍처설계,테스트자동화그리고코드리뷰와Git을활용한협업까지,소프트웨어품질을높이기위해필요한모든단계를폭넓게다룹니다.

★[스페셜]예제파일을통해생성형AI와함께하는인터랙티브학습
이책의예제는단순히따라치고실행하는코드가아닙니다.나쁜코드와좋은코드를비교하며스스로생각하는힘을기르기위한재료입니다.코드를직접다루며깊이있게학습하고싶은독자분들을위해책에수록된코드를한곳에모아노트북파일(good_codes.ipynb)로제공합니다.
챗GPT나제미나이(Gemini)와같은생성형AI에게“이코드는왜읽기어려운가?”,“더나은구조는무엇인가?”라고질문을던져보세요.AI의답변을책의원칙과비교·분석하는과정에서‘코드선별력’을기를수있습니다.AI를쓸수록실력이약해지는개발자가아니라,AI를쓸수록판단력이단단해지는개발자로성장하세요.

-이책의구성-
이책은총11장으로구성되어있으며,좋은코드를작성하기위한여정을단계별로안내합니다.

ㆍ1장:왜좋은코드를작성해야할까?-유지보수성의가치와기술부채의위험성을이해하고,좋은코드가왜개발속도를높이는지설명합니다.

ㆍ2장~4장:읽기쉽고명확한코드만들기-의도를드러내는이름짓기,도메인지식표현,그리고함수와클래스를적절히나누어복잡도를낮추는방법을배웁니다.

ㆍ5장~6장:유연한구조와핵심원칙-얽혀있는의존관계를풀고결합도를낮추는기법과KISS,YAGNI,DRY등개발자가반드시알아야할프로그래밍원칙을다룹니다.

ㆍ7장~8장:견고한코드와리팩터링-매직넘버피하기,불변성활용등실수를방지하는테크닉과기존코드를안전하게변경하는리팩터링노하우를소개합니다.

ㆍ9장:아키텍처고민하기-계층화아키텍처,클린아키텍처등전체적인구조를설계하는방법과모듈분할전략을살펴봅니다.

ㆍ10장~11장:품질을지키는안전장치-자동화테스트작성법과Git버전관리,코드리뷰등팀단위로품질을유지하는방법을안내합니다.

이런분께추천!
●AI가짜준코드를그대로써도될지항상불안한개발자
●일단돌아가게는만들었는데,올바른피드백과성장에목마른홀로서기개발자
●유지보수하기좋은구조를처음부터제대로설계하고싶은예비아키텍트
●팀코드의기준을맞추고생산성을끌어올리고싶은리더급개발자
●레거시코드를보며한숨쉬기보다개선할방법을찾고싶은모든엔지니어