안드로이드 개발자이기도 하고 코틀린에 익숙하기에 플러터를 안드로이드처럼 개발하고 있는 것 같다는 생각이 종종 들었습니다. 정답은 없겠지만 플러터의 장점을 살리지 못하는 것 같다는 아쉬움을 항상 느끼며, 어떤 아키텍처로 설계하는 것이 좋은 형태일지 혹은 나쁜 선택은 아니었을지 항상 고민을 해오다 이번에 '플러터 엔지니어링'이라는 도서를 만나 리뷰를 남기게 되었습니다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
PART1 플러터 엔지니어링 기초
추상화와 캡슐화, 응집도와 결합도, 관심 분리와 모듈화, 디자인 패턴 등 기본적인 소프트웨어 공학 내용을 플러터를 기반으로 녹여내어 설명을 시작합니다. 개발 패러다임이 무엇이 있는지부터 플러터의 위젯이 어떻게 최소한의 의존성만 유지하고 독립적으로 작동하여 낮은 결합도를 가지는지, 플러터 프레임워크 내에서 훌륭한 디자인 패턴 사례는 무엇이 있는지 등 가볍게 읽어볼 수 있습니다.

다트 언어의 특징이라던지 플러터의 모토, 플러터의 각 계층에서의 동작, 플러터 애플리케이션의 생명주기, 핵심 원칙 등 기본적인 플러터의 지식부터 차근차근 설명을 제시하고 있습니다. 그림으로도 쉽게 설명을 제시하고 있기에 처음 접하는 분도 쉽게 이해할 수 있을 것이라 생각됩니다.

특히 플러터가 어떻게 UI를 렌더링 하고 관리하는지, 그리고 이 과정에 있어 효율적으로 렌더링 할 수 있는 각 실제 예시코드를 기반으로 방법을 설명하고 있어 실제 응용에 있어서도 많은 도움이 되지 않을까 싶었습니다.

첫 번째 챕터의 마지막에서는 플러터에 엔지니어링 원칙을 적용하는 법으로, 우선 다트에서 객체 지향 프로그래밍을 어떻게 녹여낼 수 있을지에 대한 내용을 담고 있습니다. 기본적인 상속과 캡슐화, 추상화, 상속 관계 등에 대한 설명부터 SOLID 원칙, DRY 등 기본적인 OOP와 소프트웨어의 원칙을 어떻게 플러터에 녹여내면 좋을지에 대한 내용을 담고 있습니다.

이에 연계하여 플러터에서의 디자인 패턴을 설명합니다. 싱글톤 패턴, 팩토리 메서드 패턴, 어댑터 패턴, 데코레이터 패턴 등 여러 디자인 패턴들에 대해 예시 코드와 함께 고려 사항, 주의 사항 등을 담고 있어 각 패턴들을 어떤 상황에 접목하면 좋을지를 알 수 있었습니다.

PART2 아키텍처
소프트웨어 아키텍처의 중요성을 강조하며 다양한 아키텍처 패턴을 소개하고 있습니다. 어떤 패턴이 절대적으로 좋다기보다는 규모, 경험, 요구사항에 따른 적절한 패턴을 선택하는데 도움을 주는 파트라고 생각됩니다.
소프트웨어 아키텍처가 왜 중요한지, 그리고 어떻게 나에게 맞는 아키텍처를 찾으면 좋을지에 대한 내용을 소개로 시작됩니다.

계층형, 이벤트 기반 등 각 아키텍처의 스타일을 설명하고 해당 아키텍처가 어떻게 구성되는지 그리고 간단한 시나리오를 기반으로 코드와 함께 설명을 하고 있기에 어떤 상황에서 어떻게 응용할 수 있을지 바로 감을 잡아볼 수 있었던 것 같습니다.

특히 플러터의 UI 아키텍처에 있어 MVVM, MVC, MVP 등 무엇이 좋을까, 이놈의 BloC는 도대체 무엇이냐, 플러터에서 클린 아키텍처는 어떻게 구성하면 좋을까에 대한 고민이 가장 많지 않을까 싶은데, 각 항목에 대해 간단한 설명을 제시하고 있기에 해당 내용만 읽어도 조금은 해답이 풀리지 않을까 싶습니다. 물론 무엇이 최고다라고 이야기 하기보다는 이러한 상황에서 적합할 것이다 정도의 가이드를 제공하는 정도지만, 많은 도움이 되지 않을까 싶습니다.

이후 동시성과 병렬성, 오프라인 기능을 살리는 법, 상태 관리, 의존성 주입에 대한 설명을 제공하고 있습니다. 특히 상태 관리편에서 아래 아키텍처 특성표 예시를 통해 본인에게 맞는 상태 관리를 선택하는데 고려해 볼 수 있지 않을까 싶습니다.

PART3 프로세스
견고하고 지속 가능한 소프트웨어를 만들기 위한 개발 프로세스의 중요성을 강조하는 내용으로, 단순히 코드를 잘 짜는 것을 넘어, 팀 전체 생산성과 코드 품질을 일관되게 유지하기 위한 접근법과 도구 활용법을 제시합니다.
팀 내 규칙 및 스타일 가이드라인 설정의 필요성을 시작으로 네이밍 규칙, 포맷팅, 주석 등에 대한 팁을 설명은 물론, 이를 응용하여 dart로 작성한 스크립트로 코드 검사를 진행하는 예제도 담고 있기에 쉽게 따라할 수 있습니다.

개발 협업에서는 깃에 대한 기초 상식과 브랜치 전략, 플러터에서의 간단한 CI/CD 흐름과 리뷰 문화에 대해 설명하고 있습니다. 효과적인 코드 리뷰의 경우 플러터 코드 리뷰를 예시로 들기도 하지만, 플러터를 사용하지 않는 다른 개발자 역시도 참고해 보면 좋은 내용인 것 같습니다.

문서화의 미학에서는 좋은 문서의 중요성과 종류, 그리고 대상 독자를 고려한 효과적인 문서 작성법을 다루는데, 이때 플러터 공식 문서 철학을 예시로 들며 명확성, 실용성, 지속적인 업데이트의 중요성을 강조하고 있습니다.

플러터 테스트에서는 테스트의 중요성과 테스트 피라미드를 설명고, 구체적인 예시 코드와 함께 상세히 설명되고 있기에 기존 테스트 코드를 작성해보지 않았던 사람도 차근 차근 따라 학습해 볼 수 있는 형태이기에 어느 정도는 쉽게 따라 해볼 수 있지 않을까 싶었습니다. 특히 Stub, Mock, Fake, Spy, Dummy 차이와 언제 사용되는지 사례를 기반으로 한 코드가 제공되어 이해하기 좋았습니다.

또한 환경과 플레이버에서는 개발, 스테이징, 프로덕션을 관리하는 방법도 간단하게 설명하고 있기에, 플레이버 분기가 필요한 경우 해당 내용만으로도 쉽게 따라할 수 있지 않을까 싶습니다.
PART4. 윤리적 엔지니어링
단순히 기능 구현을 넘어 사회적, 윤리적 책임을 다하는 것의 중요성을 강조하는 마지막 파트로, 보안의 우선순위와 암호화, 사용자 개인 정보 보호를 기반으로 보안에 대한 이야기를 설명하고, 마지막으로는 모두를 위한 접근성을 보장하는 내용으로 마무리가 됩니다.
주요 보안 위협이 무엇이 있는지, 그리고 시큐어 코딩의 중요성을 강조하며 보안의 필요성을 설명하고, 플러터에서 제공되는 암호화가 무엇이 있는지를 알아봅니다. 대칭, 비대칭, 해싱 등 어떤 원리로 동작되며 이를 구현하기 위해서는 어떤 라이브러리를 사용하면 좋은지에 대한 보안 내용과, 개인 정보 보호를 위한 설계 철학과 사례, 보호 규정을 설명하고 있습니다.

마지막 사용자 개인 정보 보호에서는 접근성이 무엇인지와 이를 적용하는 법과 그리고 진단하는 법에 대해 설명합니다. 기존에 접근성 적용을 고려해보지 않으신 분의 경우에도 차근차근 단계별 그리고 상황별로 어떻게 적용하면 좋을지 자세히 코드와 함께 안내하고 있기에 쉽게 따라 할 수 있을 것이라 생각됩니다. 접근성이 중요하다고는 알고 있었지만, 어떤 형식이든 장애를 경험하는 세계 인구가 16%(약 13억)이라는 사실에 놀랐습니다.

PART5. 고급 UI 개발
마지막 파트에서는 다양한 디바이스와 플랫폼 환경에 대응하는 정교한 UI 구축을 위한 고급 기법을 다루고 있습니다. 플랫폼별 고유 특성을 고려하여 최적의 UX를 제공하는 적응형 UI 설계 방법부터 유동적으로 조절하는 반응형 UI 구축 기법을 자세히 설명하며, 다국어 지원을 위한 i18n과 현지화를 위한 10n 구현법, 앱 전체의 일관성 유지를 위한 테마 시스템 활용법, 커스텀 페인터, 셰이더 등 UI와 관련하여 다양한 고급 기법에 대해 설명을 제공하고 있습니다.
마찬가지로 각 특징과 차이점, 예시 코드를 기반으로 설명을 진행하고 있기에 보다 쉽게 학습할 수 있지 않은가 싶습니다.

총총
플러터 개발에 있어 'HOW'를 넘어 'WHY'를 깊게 생각하게 만드는 도서인 것 같습니다. 특정 라이브러리 사용법이나 기능 구현법만 담은 것이 아닌, 정말 말 그대로 엔지니어링(공학). 좋은 소프트웨어를 만들기 위한 근본적인 소프트웨어 공학과 다양한 상황에 적용 가능한 실용적인 방법론을 제시하는 도서라 생각됩니다.
플러터의 몰랐던 원리를 배울 수 있고 응용법도 배울 수 있지만, 많은 개발 도서나 대학교 소프트웨어 공학에서 배울 수 있는 내용을 플러터 방식으로 직간접적으로 녹여내어 설명하기에 응용할 수 있는 형태가 무궁무진하다 생각됩니다.
플러터 개발자로서 단순히 구현에 치중하는 것이 아닌, 공학적으로 한 단계 더 성장하고 싶다면 시간을 내어 꼭 읽어보길 추천하는 도서입니다. 개인적으로 소프트웨어 공학에서 배우기만 하고 사용해보지 못했던 패턴들을 어떤 상황에서 사용하면 좋은지 플러터의 예시 코드로 녹여내어 설명하는 부분에서 많은 깨달음을 얻어 너무 좋았던 것 같습니다.
'도서 리뷰' 카테고리의 다른 글
| AI로 하루 만에 영상 만들기 with 런웨이 – 기획부터 편집까지 AI가 다 해주는 영상 제작 (9) | 2025.07.27 |
|---|---|
| GPT-4를 활용한 인공지능 앱 개발 도서 리뷰 (1) | 2025.02.28 |
| 누구나 할 수 있는 데이터 분석 - 월 20달러로 고용하는 데이터 분석가 with 챗GPT 도서 리뷰 (1) | 2024.11.25 |
| 더 나은 프로그래머 되는 법 도서 리뷰 (0) | 2024.05.26 |
| 스타트업을 생각하고 있다면 - 린 스타트업 도서 리뷰 (0) | 2023.07.23 |
상상하는 것을 소프트웨어로 구현하는 것을 좋아하는 청년
게시글이 마음에 드시나요? [ 공감❤️ ] 눌러주시면 큰 힘이 됩니다!