** 한빛미디어 서평단 <나는 리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다.
미니멀 라이프가 유행인 때가 있었다.
물론 지금도 그 유행이 끝난 것은 아니다.
꾸준히 하고 있는 사람들 사이에서는 여전히 유효하다.
그것을 추구한 것은 결국 불필요한 것들을 제거하여 좀 더 풍성한 삶을 누릴 수 있도록 하게 하려 하는 것이었다.
불필요한 수많은 물건으로 인해 나의 동선과 신경이 분산되고 낭비되는 것이 많기 때문이다.
프로그래밍을 하는 것도 마찬가지이다.
이것이 좋다고 생각해서 버리지 못하고, 저것이 좋다고 해서 버리지 못하고 남겨둔 것이 많다.
그것이 남아서 레거시 코드가 되고, 그 레거시 코드를 잊든, 사람이 바뀌든 결국 불필요한 존재가 되어, 이것이 복잡도만 증가시키고 나의 필요와는 상관없이 그 자리에 남아있는 것을 보게 되는 경우가 많다.
그래서 코드 분석에도 시간이 오래 걸리고, 코드 수정에 영향을 주는 부분은 없는지 파악하는 데에도 많은 시간이 걸린다.
이렇듯 프로그래밍의 영역에서 어떤 방법으로 미니멀리즘을 구현해 나갈 것인지 생각해본 부분은 많기 때문에, 이것을 정리해 줄 좋은 계기가 될 것이라고 생각한 책이 나왔다.
책 정보
![]() |
![]() |
표지가 신뢰를 준다.
표지가 매우 미니멀리즘 하기 때문이다.
미니멀리즘을 지향하는 내요을 담은 책의 표지가 덕지덕지 홍보문구와 키워드로 가득차 있다면 이율배반적인 느낌이 들었을 것인데, 그렇지 않아서 다행이었다.
- 정가: 16,000원(전자책)
- 분량: 191쪽
- 저자: 데이비드 토머스
- 역자: 이민석

이 책의 챕터가 중요해 보여서 좀 더 언급해 본다.
단순함의 미학, 코드 다이어트, 프로젝트 최적화, 업무 자동화, 변화의 수용, 소프트 스킬, 데이터 주도 개발, 가독성 높은 코드.
이것들이 이 책에서 말하고자 하는 주요 키워드이다.
내용 특성상 실무에서 바로 적용을 해야 가치가 올라가는데, 이런 키워드를 익힘으로써 조금은 업무에도 도움이 되길 바라는 마음이다.
특징
(1) 건강하지 않은 의존성 줄이기


우선 건강하지 않은 의존성을 줄이기를 강조한다.
이는 내가 직접 컨트롤 가능하지 않은 부분에 대한 이야기를 내포하고 있다. 사실 이것은 처음에는 동의하기 어려웠다. 미니멀리즘한 개발을 위해서는 라이브러리를 잘 활용해야 나의 코드에 집중하기 좋지 않을까 하는 생각이다.
하지만, 이것은 그 부분을 뛰어넘어 이야기를 하고 있다. 마치 내 코드의 일부를 외주를 주는 것과 같은 효과를 말하는 부분 때문이다. 내 코드를 남에게 맡겨주는 것과 다름 없는 행동을 한다는 것은 결국 그것에 대한 책임을 져야 하기 때문에, 그 코드의 작동 매커니즘도 이해하고 있어야 문제가 생겨도 내가 핸들링이 가능하기 때문이다.
특히 무분별한 라이브러리 사용은 더 문제가 되는데, 함수 하나를 가져다 쓰기 위해 수많은 용량을 가져와야만 하는 의존성이 얽힌 상황이 문제가 되는 것 때문이다. 내가 막상 사용하는 것은 10KB정도인데, 가져다 놓으면 10MB를 넘게 추가되는 경우가 많기 때문이다. 이렇다는 것은 최소한 1000배는 불필요한 파일이 추가된다는 의미도 포함하는 것이다. 정말 내 의도대로 작동되는 코드를 원한다면 상황에 따라서는 내가 작성한 작은 코드만으로도 의도한 목적을 달성할 수 있는지 확인하는것이 필요하다.
(2) 기술을 공유하면 역량이 배가 된다

내 평소 지론과 일치하는 부분이어서 인상적이었다.
내가 담당하고 있는 전문 기술인 안드로이드 기술은 매 해가 지날 때마다 빠르게 기술이 발전하고 있다. 이것은 개발자 커뮤니티와 서로간에 공유하려는 문화가 만들었다고 생각한다. 기술을 공유하는 사람과 공유받는 사람 모두 윈윈인 상황이라는 것을 말해준다. 개인의 바쁜 삶에 치여서 해야만 하지만 하지 못하고 있는 부분이 있다면 이런 영역이 아닐까.
배우기 위해 가르치세요
(3) 자동화 먼저, 코드는 나중에

프로젝트를 처음 빌딩하는 과정에 있어서, 이것 저것 할 것들이 많다. 그래서 대강 빌드 한 번만 되면 바로 작업에 돌입하는 경우도 흔하게 경험한다. 하지만 이 책에서는 자동화를 강조하고 있다. 작업 중간에 불편함을 느끼고 자동화를 해야겠다고 생각할 수 있지만, 그 때에는 이미 작업의 우선순위에 밀리고, 결국 그 불편함을 감수하고 코드작업을 진행하게 된다. 그것이 결국 하나의 기술부채가 된다는 것을 강조한다. 나도 작업하다보면 로깅을 쉽게 할 수 있도록 만들면 좋겠다고 생각은 하지만, 한 번 작업을 시작한 이후에는 전체를 고치기 싫어서 그대로 두어버린다. 이 또한 환경 구성의 일부로 볼 수 있는데, 최대한 자동화를 할 수 있도록 만들어놓는 것이 좋겠다는 생각을 했다.
(4) 의견 다른 상대방과 이야기 하기

앞에서 이야기 했던 것들이 작업 내용과 관련된 미니멀리즘을 향한 일이었다면, 이제는 주제를 좀 돌려서 의견 교환에 대한 이야기를 다룬다. 의견 교환은 좀 더 순화한 말이고, 대부분은 의견 대립으로 말할 수 있다. 의견 대립이 발생하면, 그것을 회피하든, 내 의견을 강하게 피력하는 것이 일반적인데, 이 책에서는 변증법적 사고 훈련에 대해 이야기 하는 부분이 인상적이었다.
다른 사람과 의견이 다를 때 그것을 반박하기는 매우 쉽다. 내 생각이 옳았음을 꺾는 과정이 쉽지 않기 때문이다. 하지만, 그것보다는 상대방의 관점에서 보는 훈련이 필요하다. 상대방의 관점에서 보면 결국 건전한 의견 교환으로 가는 길이 된다.
(5) 코드 미니멀리즘

데이터를 바꾸는 것이 코드를 바꾸는 것보다 훨씬 간편하다는 점을 강조한다.
가끔 보면 별도의 클래스를 정의하기 귀찮아서 primitive type을 이용하는 경우가 많은데, 그럴 경우 이걸 처리하기 위한 코드가 많아진다. 처음에는 그것이 편해서 그대로 활요하게 되는데, 점점 요구사항은 늘어나고, 변경되며 결국은 그것을 만족하기 위한 방법으로 모델을 다시 만드는 경우에 대해서 떠올리게 되었다. 결국 데이터 중심으로 처리하는 것이 훨씬 편하다는 점에 대해 공감하게 되는 영역에 이른다.

개발할 때 로직을 줄일 수 있는 또 다른 방법은, 상태머신 관리 방법이다. 안드로이드 개발을 하다보면 자연스레 여기까지 이르게 되는데, 컴포즈를 다룰 때 정점에 이른다. 화면을 구성할 때 그 화면의 상태를 변경해줌으로써 정확하게 필요한 부분을 일일히 로직으로 구성하지 않고, 정확하게 나눈 파일이나 컴포저블 함수를 호출하는 방향으로 흐르게 된다. 이것의 출발점은 바로 상태머신이다. 그리고 이렇게 작성할 경우 가독성이 올라가는 것은 당연하다. 코드가 명확하게 블럭화되어 나뉘기 때문이다.

관련된 코드를 한 곳으로 모으는 것도 쉽게 간과하는 부분일 수 있으나, 잘 지켜야 코드 추적이 편해진다. 오랫동안 유지보수한 코드일수록 내가 추적해야 하는 코드량이 많을 수 밖에 없는데, 불필요하게 코드가 이리 뛰고 저리 뛰면 논리적 흐름도 자주 끊어져서 잇기가 쉽지 않다. 그래서 머릿속에 그림을 쉽게 그리기 위해서라도 관련된 코드를 잘 모아놓기만 해도 바로 이해할 수 있기 때문에 미니멀리즘한 코드를 구현하게 된다.
(6) 간단함이 복잡성보다 나은 점

사실 이 책에 나온 부분은 실제 프로젝트를 진행하는 입장에 비춰보면 일부라고 느낄 정도로 매우 적은 부분에 해당한다. 실제 현장에서는 이 책의 내용에서 찾을 수 없는 것이 대부분이다. 그렇다면 어떤 것이 간담함이라고 볼 수 있을까에 대한 기준점을 마지막에 제시해준다.
- 이해하기 더 쉽다
- 구성요소의 수가 더 적다
- 문제의 본질을 더 직접적으로 반영한다
이런 것을 회피하고 있다면, C를 그대로 둔 상태일 가능성이 높다. S를 올릴수록 결국 내 프로젝트가 훨씬 유지보수성이 올라가기 때문에 틈날때마다 이 점들을 체크하는 것이 좋다.
이 책을 추천하고 싶은 독자
- 현직 개발자
- 컴퓨터 공학 전공자
- 개발에 관심이 있는 사람 및 관련 조직의 장
총평
방정리를 잘하고 싶은데 방정리를 어떻게 하는 것이 효과적이고 대중적으로 좋은 방법인지 몰라서 한번 쯤은 책이나 영상을 찾아본 경험이 있을 것이다. 이 책도 마찬가지이다. (가만히만 두어도) 한 스프린트가 지날 때마다 내 프로젝트가 점점 복잡도가 올라가는 것을 경험한 적이 있을 것이다. 이제는 한번 쯤 프로젝트를 돌아볼 때 어떻게 어떤 관점에서 봐야 하는지, 좋은 가이드가 된다고 생각한다.
물론 나처럼 적지 않은 실무 경력을 가진 사람이라면 자신만의 방법은 분명 존재할 것이다. 하지만, 내 방법을 좀 더 체계적으로 만들거나, 머릿속에만 존재하고 실재하지 않는 영역이라면 이것을 실체화 시켜주는 역할을 해줄 것이라고 생각한다. 그래서 이 책을 읽고 실천까지 이르기를 바란다. 결국 이것을 수행함으로써 이득보는 것은 이 프로젝트를 수행하고 있는 나 자신이기 때문이다.
대부분 봄이 오면 옷 정리도 할 겸, 집 정리를 한 번씩은 한다. 이처럼 이 책을 읽고난 뒤 프로젝트 정리를 해보는 것은 어떨까.
봄에 집 정리를 하듯. 프로젝트에 쌓인 먼지를 털자고 말해주는 책
'[Review] > Book' 카테고리의 다른 글
| [도서리뷰] 누구나 아는 나만 모르는 제미나이 (0) | 2026.03.01 |
|---|---|
| [도서 리뷰] Dify AI, 코드 없는 미래 (3) | 2025.12.28 |
| [도서 리뷰] 핸즈온 바이브 코딩 (0) | 2025.11.30 |
| [도서 리뷰] 플러터 엔지니어링 (0) | 2025.10.26 |
| [도서 리뷰] 구스마일의 월1,000만 원 버는 유튜브 첫걸음 가이드북 (2) | 2025.09.28 |


댓글