메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기
정가 35,200원
판매가
35,200원
총 결제 금액 35,200원
dropdown arrow
  • 소장/대여 옵션 선택
  • 소장
  • 365일
    30% 할인
  • 180일
    40% 할인
  • 90일
    50% 할인
  • 30일
    60% 할인

마이한빛 > MY 콘텐츠에서 웹뷰어로 바로 이용가능한 상품이며 배송되지 않습니다.

대여 가능

전자책

종이책

플러터 엔지니어링

핵심 원리부터 개발 패러다임, 설계 패턴까지 실무 역량을 키우는 올인원 가이드

  • 저자마지드 하지안
  • 번역한국 플러터 커뮤니티
  • 출간2025-09-29
  • 페이지672 쪽
  • eISBN9791169219921
  • 물류코드11992
  • 난이도
    초급 초중급 중급 중고급 고급
5점 (10명)

핵심 원리부터 개발 패러다임, 설계 패턴까지 실무 역량을 키우는 올인원 가이드


플러터는 구글이 개발한 오픈 소스 프레임워크로, 하나의 코드베이스로 안드로이드, iOS, 웹, 데스크톱 등 다양한 플랫폼의 애플리케이션을 개발할 수 있게 해줍니다. 다트 언어를 기반으로네이티브에 가까운 성능을 구현할 수 있어, 개발 생산성을 높이고 완성도 높은 결과물을 빠르게 만들어낼 수 있다는 장점이 있습니다.
 

하지만 플러터로 애플리케이션을 개발하다 보면 단순한 구현을 넘어 아키텍처, 품질 관리, 보안 등 다양한 문제에 직면하게 됩니다. 이 책은 이러한 실무적 고민에 답하기 위해 플러터의 기본 원리부터 아키텍처 스타일, 설계 패턴, 상태 관리, 동시성 처리까지 폭넓게 다룹니다. 더 나아가 시니어 개발자로 성장하는 데 필요한 엔지니어링 관점과 함께 반응형·적응형 UI, 국제화, 테마, 셰이더 같은 고급 주제도 소개하여 실무에 곧바로 적용할 수 있도록 도와줍니다. 
 

공식 문서에서 접했던 개념들을 다시 꼼꼼히 짚어주고, 다양한 예제와 사례를 통해 실무 문제 해결 능력을 기를 수 있게 구성했습니다. 이 책은 단순한 플러터 사용법을 넘어, 견고하고 확장 가능한 애플리케이션을 만들기 위한 소프트웨어 공학적 통찰까지 담고 있습니다.

 

마지드 하지안 저자

마지드 하지안

2006년부터 웹과 모바일 애플리케이션을 개발해 온 소프트웨어 엔지니어이자 플러터 구글 디벨로퍼스 엑스퍼트(Google Developers Expert, GDE)입니다. 전문 분야는 플러터, 웹, 클라우드, AI이며 집필과 강연, 오픈 소스 활동을 통해 개발자 커뮤니티와 활발히 교류합니다. 또한 세계 각지의 콘퍼런스를 이끌며 소프트웨어 개발 분야의 발전과 혁신에 기여하고 있습니다.

한국 플러터 커뮤니티 역자

한국 플러터 커뮤니티

국내 플러터 개발자 생태계의 성장을 위해 커뮤니티 활동을 이어가고 있습니다. 플러터 서울과 플러터 인천의 운영진으로서 밋업과 세미나를 꾸준히 열며, 개발자들이 함께 배우고 성장하는 기반을 만드는 데 힘쓰고 있습니다. 또한 캐나다 몬트리올에서 활동하는 플러터 및 다트 구글 디벨로퍼스 엑스퍼트(GDE) Jhin Lee(이진석)와 협력하여, 현업 경험과 글로벌 인사이트를 번역 작업에 녹여내고자 했습니다. 커뮤니티에서 얻은 지식과 경험을 독자와 나누며 더 많은 개발자가 플러터를 친근하게 접할 수 있기를 바랍니다.

[PART 1 플러터 엔지니어링 기초]

 

CHAPTER 1 플러터 엔지니어링 핵심 개념
_1.1 플러터의 소프트웨어 엔지니어링
_1.2 핵심 원칙 파헤치기
_1.3 플러터 개발 생명주기
_1.4 플러터 엔지니어링 대 프로그래밍
_1.5 기술 진화 속 플러터의 위치
_1.6 결론

 

CHAPTER 2 플러터 아키텍처 및 엔지니어링 개요
_2.1 플러터의 내부 구조의 중요성
_2.2 플러터의 반응형 및 선언형 특징
_2.3 플러터의 모토
_2.4 주요 구성 요소와 프레임워크
_2.5 그래픽, 렌더링, 시각화
_2.6 위젯과 애플리케이션의 생명주기 탐색하기
_2.7 플러터 UI에서 제약 조건 관리하기
_2.8 플러터에서 키의 중요성과 사용법
_2.9 결론

 

CHAPTER 3 플러터와 네이티브 플랫폼 통합
_3.1 플랫폼 채널
_3.2 다트 FFI
_3.3 FFIgen
_3.4 JNIgen
_3.5 결론

 

CHAPTER 4 플러터에 엔지니어링 원칙 적용하기
_4.1 객체 지향 프로그래밍 분석
_4.2 클래식 소프트웨어 원칙 적용하기
_4.3 결론

 

CHAPTER 5 플러터 디자인 패턴
_5.1 디자인 패턴의 역할
_5.2 생성적 패턴
_5.3 구조적 패턴
_5.4 행동 패턴 역할에 대한 이해
_5.5 결론

 

[PART 2 아키텍처]

 

CHAPTER 6 아키텍처 입문
_6.1 설계적 결정의 핵심 역할
_6.2 소프트웨어 설계적 선택에 영향을 주는 변수
_6.3 아키텍처 생태계 파악하기
_6.4 설계적 사고 기르기
_6.5 반복 설계
_6.6 단순성과 복잡성 사이에서 균형 잡기
_6.7 결론

 

CHAPTER 7 아키텍처 스타일 소개
_7.1 아키텍처 스타일의 이해
_7.2 계층형 스타일
_7.3 이벤트 기반 아키텍처
_7.4 마이크로커널(플러그인) 아키텍처
_7.5 기타 아키텍처 방식과 패러다임
_7.6 결론

 

CHAPTER 8 UI 아키텍처 패턴
_8.1 UI 아키텍처의 배경
_8.2 주목할 만한 플러터 아키텍처들
_8.3 플러터 표준 외의 아키텍처들
_8.4 클린 아키텍처
_8.5 기회비용 고려하기
_8.6 플러터 아키텍처 커스터마이징
_8.7 결론

 

CHAPTER 9 동시성과 병렬성
_9.1 동시성과 병렬성 이해하기
_9.2 효율적인 작업 처리의 중요성
_9.3 플러터의 단일 UI 스레드 원칙
_9.4 비동기 프로그래밍 삼총사
_9.5 비동기 데이터 흐름 관리하기
_9.6 isolate로 범위 확장하기
_9.7 결론

 

CHAPTER 10 플러터의 오프라인 기능
_10.1 오프라인 대응의 장점과 도전 과제
_10.2 오프라인 우선 아키텍처
_10.3 연결 상태 변경 모니터링 및 처리
_10.4 백그라운드 동기화 중 데이터 무결성 보장
_10.5 캐싱 패턴
_10.6 결론

 

CHAPTER 11 상태 관리
_11.1 애플리케이션 상태 이해하기
_11.2 로컬 상태와 전역 상태: 효과적인 범위 지정 방법
_11.3 플러터의 내장 상태 관리 접근 방식
_11.4 최선의 솔루션 선택하기
_11.5 플러터의 유연성: 교체 및 반복
_11.6 결론

 

CHAPTER 12 플러터의 의존성 주입
_12.1 의존성 주입의 원칙
_12.2 분리된 코드의 이점
_12.3 플러터에서 의존성 주입 구현하기
_12.4 플러터의 의존성 주입 패키지 살펴보기
_12.5 결론

 

[PART 3 프로세스]

 

CHAPTER 13 규칙 및 스타일 가이드라인
_13.1 규칙의 근거
_13.2 의미 있는 가이드라인 정의하기
_13.3 규칙 준수 보장하기
_13.4 자동화로 일관성 확보하기
_13.5 린터와 dartfmt
_13.6 결론

 

CHAPTER 14 개발 협업
_14.1 버전 관리 필수 사항
_14.2 플러터 개발에 CI/CD 도입하기
_14.3 효과적인 코드 리뷰
_14.4 결론

 

CHAPTER 15 문서화의 미학
_15.1 소프트웨어 개발 문서화의 스펙트럼
_15.2 플러터의 문서화 철학
_15.3 살아있는 문서
_15.4 오래된 문서의 위험성
_15.5 결론

 

CHAPTER 16 플러터의 테스트
_16.1 테스트의 중요성
_16.2 플러터 테스트 단계 이해하기
_16.3 단위 테스트와 위젯 테스트 핵심 원칙
_16.4 테스트 더블
_16.5 플러터에서의 테스트 더블
_16.6 통합 테스트와 골든 테스트의 세계
_16.7 결론

 

CHAPTER 17 환경과 플레이버
_17.1 다중 환경과 플레이버의 필요성
_17.2 원활한 CI/CD 통합
_17.3 결론

 

[PART 4 윤리적 엔지니어링]

 

CHAPTER 18 플러터의 보안 우선순위
_18.1 보안의 기본 원칙
_18.2 CIA 삼각형: 기밀성, 무결성, 가용성
_18.3 OWASP Top 10 대응
_18.4 정적 분석 및 동적 분석
_18.5 플러터 보안 모범 사례
_18.5 결론

 

CHAPTER 19 플러터의 암호화
_19.1 암호화 방식의 차이
_19.2 해싱의 기본
_19.3 디지털 서명을 통한 데이터 무결성 보장
_19.4 결론

 

CHAPTER 20 사용자 개인 정보 보호
_20.1 주요 개인 정보 용어 이해하기
_20.2 개인 정보 보호 설계 철학 수용하기
_20.3 사용자 개인 정보 보호 모범 사례
_20.4 국제 데이터 보호 규정
_20.5 결론

 

CHAPTER 21 모두를 위한 접근성 보장하기
_21.1 다양한 장애 인지하기
_21.2 포용적 애플리케이션 디자인의 명백한 이점
_21.3 접근성의 네 가지 요소
_21.4 접근성을 높이는 도구와 위젯
_21.5 플러터 접근성 진단
_21.6 결론

 

[PART 5 고급 UI 개발]

 

CHAPTER 22 적응형 UI 구축
_22.1 플랫폼별 UI 고려 사항
_22.2 고유한 플랫폼 기능 활용하기
_22.3 결론

 

CHAPTER 23 반응형 UI 기법
_23.1 반응형 디자인의 원칙
_23.2 플러터에서의 반응성 접근 방식
_23.3 화면 방향에 따른 UI 조정
_23.4 결론

 

CHAPTER 24 i18n과 l10n
_24.1 i18n와 l10n의 주요 차이점
_24.2 플러터에서 국제화 구현하기
_24.3 RTL 언어 환경을 위한 UI 설계
_24.4 결론

 

CHAPTER 25 플러터에서 테마 활용하기
_25.1 플러터 테마
_25.2 커스텀 테마 기법
_25.3 다크 테마와 라이트 테마 관리하기
_25.4 머티리얼 애플리케이션 테마 만들기 단계
_25.5 테마 만들기 도구
_25.6 결론

 

CHAPTER 26 커스텀 페인터와 셰이더
_26.1 커스텀 페인터의 기술
_26.2 셰이더 탐구
_26.3 플러터에서 셰이더 사용하기
_26.4 결론

FLUTTER DEVELOPMENT IS FUN!
단순한 플러터 프로그래밍을 뛰어넘다
 

이 책은 플러터를 단순한 UI 프레임워크가 아닌 소프트웨어 엔지니어링의 관점에서 풀어냅니다. 기본기를 단단히 다지는 위젯 구조와 플랫폼 통합에서 시작해, 아키텍처 설계, 상태 관리, 동시성, 테스트, CI/CD 등 실무 전반으로 영역을 확장합니다. 더 나아가 보안과 개인 정보 보호 같은 윤리적 엔지니어링과 반응형·적응형 UI, 국제화, 셰이더 등 고급 주제까지 다루며, 개발자가 실제 프로젝트에서 맞닥뜨릴 문제들을 한 권에 담아  탐구합니다.


플러터 개발은 재밌습니다. 그저 단순하게 애플리케이션을 만드는 수준을 넘어, 안정적이고 완성도 높은 소프트웨어를 구축하고 싶은 모든 플러터 개발자에게 이 책은 든든한 길잡이가 될 것입니다.
 

이 책의 구성 

  • Part 1 플러터 엔지니어링 기초: 플러터와 관련된 소프트웨어 공학 개념과 기본 원리를 소개하며, 설계 패턴을 통해 안정적인 기초 지식을 쌓을 수 있도록 안내합니다.
  • Part 2 아키텍처: 다양한 스타일과 설계 패턴, 동시성·상태 관리 등 핵심 개념을 폭넓게 다루며, 전략적 사고와 의사결정 능력을 기를 수 있도록 도와줍니다.
  • Part 3 프로세스: CI /CD, 테스트, 문서화 등 체계적인 개발 과정을 정리해, 효율적이고 일관된 애플리케이션 개발 실무를 지원합니다.
  • Part 4 윤리적 엔지니어링: 보안, 개인 정보 보호, 접근성을 중심으로 사용자 친화적인 애플리케이션을 설계할 수 있는 윤리적 엔지니어링의 기준을 제시합니다.
  • Part 5 고급 UI 개발: 반응형 UI, 커스텀 페인팅, 국제화, 테마 설정 등 고급 주제를 다루며, 사용자 친화적인 인터페이스 구현 능력을 한 단계 끌어올려 줍니다.

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."


‘IOS를 사용하면서 느끼는 것’ 
_
10년만에 안드로이드에서 아이폰으로 모바일을 변경했습니다. 가장 크게 느끼는 것은 폼팩터가 아닌 소프트웨어 아키텍쳐입니다. 안드로이드에서 IOS로 변동되면서 구성요소들과 작동방식들이 전부 다 다르기 때문이죠. Figma등에서 UX를 만들때도 확실히 IOS가 편하지만, 때로는 화면이동이나 전면비 등에서는 여전히 안드로이드에 익숙한 저를 발견하곤 합니다. 결과적으로 보면 두 플랫폼을 모두 사용하는게 낫다고 판단되는데 만일 프로그램을 개발하는 사람이라면 두가지 크로스 플랫폼에 대한 경험이 굉장히 필요할 것입니다. 그래서 나온 프로그래밍이 바로 플러터(Flutter)죠. 플러터는 하나의 소스코드로 IOS, 안드로이드, Web과 모바일을 전부 구현할 수 있는 크로스 플랫폼이고 <플러터 엔지니어링>은 플러터의 핵심개념과 이를 이용하는 방법을 다룬 서적입니다.

 

본서는 플러터 엔지니어링의 기초와 아키텍처 그래서 UI개발까지의 다양한 범주를 플러터 엔지니어의 관점에서 다룹니다. 플러터를 처음 접하면, 크로스 플랫폼으로 뭐든지 할 수 있을 것 같지만, 실제로는 그렇게 만만하지 않을겁니다. 아예 처음부터 프로그램을 개발하면 큰 문제가 없을수는 있지만, 그럴 경우 경험이 부족한 이상, 새로운 내용들을 작성하는게 만만치 않을 것이고, 플러터 개발의 상당수는 기존의 레거시 언어(C계열)로 만든 코드를 하나하나 디버깅하고 렌더링을 다시 해야하는 이슈가 발생할 수 있기 때문입니다. 그런문제때문에 아직도 플러터는 대규모 시스템에서 적용하기에는 무리가 있다는 개발자들도 상당히 존재하는 것으로 알고 있습니다.

 

따라서 본서를 학습하면서 플러터가 크로스플랫폼으로서 만능 열쇠와 같은 역할을 하는 프로그램의 관점으로 보면 어려운 부분이 있을 수 있습니다. 그것보다는 하나의 소스코드로 여러가지의 어플리케이션을 만들 수 있는 접근성이라는 측면에서 봐야합니다. 간단한 기능이 있는 앱의 경우 Web과 안드로이드 IOS를 동시에 짧은 기간에 출시할 수 있는 것은 어마어마한 접근성이 있는 것은 분명하고 특히 바이브코딩과 결합하면 훨씬 효율적인 것은 부인하기 어려울겁니다.

 

‘플러터의 양면을 동시에 보기 ’

 


 

* 한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다

플러터를 프로그래밍 서적으로 많이 보았지만, 엔지니어링 이라는 단어를 쓴 것부터 조금 의아했습니다. 하지만 책 구성을 보고 나서 프로그래밍이 아니라 엔지니어링이 더 중요하다는 점을 깨달을 수 있었습니다.

플러터는 다양한 플랫폼에서 하나의 코드로 동작할 수 있어, 여러 환경에 부합하는 웹&앱 시스템이 되려면, 개발 전반의 프로세스부터 사용자에게 도달하기까지 일련의 과정을 모두 고민해야 합니다.

해당 서적은 제목에서부터 알 수 있듯이 플러터를 엔지니어링 시각에서 접근하는 책으로서, 단순한 문법 설명과 구현에 그치지 않고 이를 활용해서 어떤 곳에서 활용할 수 있을지 그리고 어떤 고민을 해야하는지 일러주는 책이었습니다.

단순 코딩을 넘어서 현업에서 운영할 수 있게 엔지니어링을 포괄적으로 설명하는 책입니다.

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

 

 

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


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'를 깊게 생각하게 만드는 도서인 것 같습니다. 특정 라이브러리 사용법이나 기능 구현법만 담은 것이 아닌, 정말 말 그대로 엔지니어링(공학). 좋은 소프트웨어를 만들기 위한 근본적인 소프트웨어 공학과 다양한 상황에 적용 가능한 실용적인 방법론을 제시하는 도서라 생각됩니다.

 

플러터의 몰랐던 원리를 배울 수 있고 응용법도 배울 수 있지만, 많은 개발 도서나 대학교 소프트웨어 공학에서 배울 수 있는 내용을 플러터 방식으로 직간접적으로 녹여내어 설명하기에 응용할 수 있는 형태가 무궁무진하다 생각됩니다.

 

플러터 개발자로서 단순히 구현에 치중하는 것이 아닌, 공학적으로 한 단계 더 성장하고 싶다면 시간을 내어 꼭 읽어보길 추천하는 도서입니다. 개인적으로 소프트웨어 공학에서 배우기만 하고 사용해보지 못했던 패턴들을 어떤 상황에서 사용하면 좋은지 플러터의 예시 코드로 녹여내어 설명하는 부분에서 많은 깨달음을 얻어 너무 좋았던 것 같습니다.

** 한빛미디어 서평단 <나는 리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다.

 

안드로이드 개발자를 시작할 때에는 못느꼈던 것이지만 점점 개발 경력이 늘어가면서 iOS 개발도 하나의 큰 축을 형성하고 있다는 사실을 알게 되었다. 그래서 몇 번 iOS 개발을 간단하게 접해볼까 시도했지만 생각보다는 접근이 어렵게 여겨졌고, 아직까지는 iOS 개발을 할 수 있는 상황에 이르지는 못하였다.

물론 웹 개발 등을 통해서 2개의 OS를 통합하여 개발하는 방법은 가능했지만, 퍼포먼스와 디자인이 마음이 들지 않았고, 그래서 그 쪽을 선택하고 싶지는 않았다.

그러던 중 플러터라는 도구가 수년 전에 나왔고, 그것으로 간단한 앱들을 만들어보면서 가능성을 보았다.

하지만, 만들 수 있다는 간단한 지식에 그치지 않았는데, 그 이유는 바로 복잡도가 증가할 수록 그것은 구조화된 개발로 만드는 방법을 몰랐기 때문이다.

BLoC처럼 개발 패턴이 존재하기는 했지만, 평소 가지고 있던 지식과도 달랐으며, 다른 방법도 많이 알려져 있지 않아서 더이상 시도하지 못하고 있던 상황이다.(물론 바쁘기도 했지만)

그러던 중 플러터 엔지니어링에 대한 책이 나왔다.

 

 

책 정보

 

플러터를 상징하는 색상과 함께 플러터의 뼈대라도 보여주듯이 선으로 글자를 표현한 부분이 마음에 들었다.

글자를 이렇게 나타내듯이 플터러를 분해하며 제대로 파악할 수 있다는 느낌을 표현한 듯 보였다.

그리고 분량이 꽤 되어 보이는 두께가 인상적이었다.

많은 책을 보아왔지만, 이렇게 커뮤니티 단위에서 번역한 책은 보기 흔치 않은데 이 책이 그런 책이다.

그만큼 공을 많이 들일만한 가치가 있는 책이라고 생각도 들었다.

 

- 정가: 44,000원

- 분량: 672쪽

- 저자: 마지드 하지안

- 역자: 한국 플러터 커뮤니티

 

특징

플러터 엔지니어링에 대한 소개부터 시작한다.

이 책은 크게

1. 플러터 엔지니어링 기초

2. 아키텍처

3. 프로세스

4. 윤리적 엔지니어링

5. 고급 UI 개발

파트로 나뉘어 있다.

파트 제목만 들어보면 정말 엄청난 주제들이고, 그 주제를 다 다루고 있다는 사실에 경이로웠다.

 

일단 엔지니어링이 중요한 사실은, 엔지니어링이 올바로 정착되어 있어야 이것으로 짜임새 있는 프로그램을 생산하고 유지보수 할 수 있게 되기 때문이다. 플러터가 이정도로 체계를 쌓아갔다는 사실이 다행이라고 생각한다. 이제는 어느정도 궤도에 올랐다는 뜻이 아닐까.

단순히 시험용 앱을 빠르게 개발하는 도구에서 벗어나 실제 생산 가치가 있는 프로그램을 Long-term으로 관리하기에도 부족함 없는 프레임워크가 되었다는 이야기로 해석이 된다.

 

또한 이 책에서는 그것을 그림으로 표현하기도 했는데, 소프트웨어 엔지니어링이라는 책을 읽었던 대학시절 내용이 생각나는 부분이다.

 

 

위젯이 화면에 렌더링 되는 방법과 StatefulWidget 생명주기에 대한 부분을 보면서 이 책은 화면에 렌더링 되는 과정까지 알려줄만큼 깊고 진지한 부분을 이야기하고 싶다는 의도가 확실히 보였다. 이런 렌더링 과정을 몰라서 화면을 구성하던 중 특정 에러가 발생하였을 때 그것을 해결하기 어려워 했던 내 과거가 생각나기도 했다. 위젯 역시 계층적 구조를 갖고 있기 때문에 어느 부분에서 화면 구성을 하며 어느 부분에서 그려주는 부분을 담당하는지 잘 알아야 오해없이 코드 배치가 가능하기 때문이다.

그리고 그것을 코드로도 해석하기 위해 두 번째 그림과 설명에서 처럼 listener 함수를 중심으로 설명하고 있다. 물론 이런 내용은 많은 책에서 설명하고 있는 부분이지만, 앞에서 렌더링 하는 방법을 설명하고 난 다음에 그런 주변 지식과 함께 보니 이해가 더 빨라진다.

 

그리고 플러터 프로젝트에서 기존 안드로이드 코드를 넣는 효율적인 방법이 없을까 고민하면서 자료조사를 했던 기간이 있었는데, 그에 대한 자료가 있어서 반가웠다. 채널이라는 것이 그 다리 역할을 하며, 그 채널로 데이터를 전달하면 충분히 안드로이드 화면을 띄우는 것이 가능하다는 것이다. 아쉽게도 안드로이드 외에는 다른 자료를 찾아보라고 적혀있지만, 이것을 힌트로 자료는 충분히 찾아볼 수 있으니 나쁘진 않았다.(어차피 책에서 나온 가이드가 있다 하더라도 요즘은 인터넷 자료를 찾아보지 않을 수 없다.)

 

또한 이 외에도 C나 C++로 된 코드를 포팅할 일도 많이 있다 이 경우 FFI를 이용하면 호출이 가능하다. 이런 방법들이 존재하고, 사용방법을 알고 있어야 적시적소에 사용할 수 있으므로 이것을 알아두는 것은 어느정도 개발 경력이 쌓인 사람에게는 필요한 일이라고 할 수 있다.

 

이번엔 설계에 대한 부분이다. 설계의 4가지 측면이 있는데 이런 관점에서 생각해 본 적이 없는 설계 방법이라 의미가 있어서 가져왔다.

설계 의사 결정, 설계 특성, 디자인 원칙, 구조에 대한 것이다. 이것을 어떻게 결정하느냐에 따라서 설계 방향과 방식이 달라지게 된다. 아키텍트로 성장하고 싶은 나에게나 혹은 그 누구에게라도 이런 그림이 머릿속에 있으면 좋겠다는 생각이 들었다.

또한 BLoC 패턴에 대해서도 그림으로 보니 좀 더 와 닿았는데, 프레젠테이션 계측에서 데이터 계층으로까지 연결되는 과정에서 어느 연결지점을 가지고 연결되며, 어느 지점에서는 연결성을 가지면 안된다는 것들로 표현해 주었기에 알기가 더 쉬웠다.

이 외에도 MVVM도 적용이 가능하다는 것도 표현하고 있다.

 

 

DI를 비롯하여 SOLID 원칙에 대한 이야기를 다루고 있으며, 다만 이런 부분은 간략하게 소개하고 있다. 이 내용만으로도 다른 책 한 권의 분량이 되기 때문일 것이다.

그리고 컨벤션 문서를 작성할 때의 원칙도 언급하고 있다. DO, DON'T, PREFER, AVOID, CONSIDER로 나뉜 단계로 인해 좀 더 말하고 있는 무게감의 차이를 알 수 있다는 것이 좋았다. WIKI에 문서를 작성할 때 저런 라벨을 만들어서 표현하면 읽기 편하겠다는 생각은 비단 플러터만의 이야기는 아닐 것이다.

 

OWASP는 보안에 대한 이야기이다. 윤리적인 관점에서 엔지니어링을 한다는 것은 결국 보안을 얼마나 잘 챙기냐는 이야기도 해당이 되기 때문인데, 이미 잘 정리되어 있는 취약점들이 존재한다. 좋은 서비스를 만들기 원한다면 이런 것도 엔지니어링에서 빼놓을 수 없다.

이 밖에도 UI 디자인 원칙들을 챙겨야 하는데, 모든 디자이너가 이런것들을 꼼꼼히 생기면 당연히 좋지만, 각 프레임워크의 특성을 파악하기란 쉽지 않다. UI 디자인을 어떻게 가져가면 좋을지 그림과 함께 표현하고 있는데 이런 부분이 편하게 와 닿았다.

 

 

이 책을 추천하고 싶은 독자

플러터 개발을 어느정도 진행해 본 개발자

화면의 수가 5개 이상 넘어가는 애플리케이션을 개발하는 개발자

여러 개발자가 협업하는 개발을 진행하는 프로젝트 담당자

플러터를 주요 프로젝트의 프레임워크로 도입하려고 검토하는 담당자

 

총평

확실히 플러터는 아직 젊다.

그렇기 때문에 아직은 많은 사람들의 관심을 받은 것도 아니며, 많은 사람의 연구 대상이 되어 온 것은 아니다.

하지만, 꾸준하게 성장하고 있으며, 그에 따른 개발 방법에 대한 연구가 필요하다.

이미 커뮤니티나 여러 웹사이트의 자료는 많지만, 그것이 잘 정리된 책은 보기 힘든데, 이 책이 그 길라잡이 역할을 할 것으로 보인다.

특히 손으로 그린듯한 여러 자료들이 이해를 돕는데 큰 역할을 하고 있으며, 여러 키워드를 제공함으로써 확장성 있는 지식을 쌓도록 도와준다.

안드로이드 못지 않게 많은 개발자들이 붙을 수 있는 계기가 될 수 있겠다는 기대를 심어주는 책이라고 생각한다.

플러터가 앞으로 많은 발전을 하기 위해 반드시 필요한 책

? Flutter 개발을 ‘공학’으로 바라보게 만든 책

최근 모바일 프로젝트를 진행하면서 Flutter를 다시 들여다보기 시작했다.

입문서 몇 권을 훑었지만, 늘 같은 한계에 부딪혔다.

“위젯은 이렇게 쓰세요”, “이 문법으로 구현하세요.”

도움이 되긴 하지만, 정작 ‘왜 이렇게 해야 하는가’,

그리고 **‘이 구조를 실무에서 어떻게 유지할 수 있는가’**에 대한 답은 없었다.

그러던 중 우연히 찾은 책이 바로 **Majid Hajian의 《Flutter Engineering》**이다.

처음엔 단순히 플러터 심화서 정도로 생각했는데, 읽다 보니 완전히 다른 세계였다.

⚙️ 단순한 ‘프로그래밍’이 아닌 ‘엔지니어링’을 말하다

제목부터가 다르다. Flutter Programming이 아니라 Flutter Engineering.

저자는 분명히 말한다.

“Programming은 코드를 작성하는 기술이고, Engineering은 시스템을 설계하는 사고다.”

이 문장 하나로 책의 방향이 명확해진다.

Flutter를 단순히 앱 만드는 도구로 보지 않고, 유지보수 가능한 소프트웨어를 구축하는 플랫폼으로 접근한다.

책에서는 위젯 구조나 문법 같은 표면적인 부분을 넘어서,

아키텍처 설계,

상태 관리,

동시성 처리,

테스트와 CI/CD,

보안 및 접근성

같은 실무 전 영역을 ‘엔지니어링’의 관점으로 풀어낸다.

이게 진짜 차별점이다.

입문서가 ‘무엇을’ 다룬다면, 이 책은 ‘왜’와 ‘어떻게’를 함께 다룬다.

? 아키텍처, 디자인 패턴, 그리고 균형감

가장 인상 깊었던 부분은 **아키텍처 파트(Part 2)**다.

MVVM, Clean Architecture, Layered Architecture 등 다양한 접근 방식을 소개하면서

“어떤 상황에서 어떤 구조가 더 적합한가?”를 구체적인 예시로 설명한다.

특히 복잡성과 단순성 사이의 균형을 다루는 챕터는 정말 공감됐다.

또한 기존에 알고 있던 **디자인 패턴(Singleton, Observer, Repository 등)**이

Flutter 생태계에서 어떻게 적용되는지를 보여준다.

Provider, Riverpod, Bloc 패턴 같은 상태 관리 기법이

단순한 라이브러리 수준이 아니라 패턴의 실제 구현체라는 걸 깨닫게 된다.

? 실무형 예제와 프로덕션 감각

책이 이론에만 머물지 않는다.

예제 코드와 프로젝트 구조가 실제 프로덕션 환경을 반영한다.

의존성 주입, 린터 설정, 테스트 더블(Mock, Stub), CI/CD 파이프라인까지

팀 단위로 Flutter 앱을 운영하는 데 필요한 모든 감각이 녹아 있다.

이 부분이 특히 좋았다.

보통 Flutter 책은 “개인이 앱 하나 만드는 법”에 집중하는데,

이 책은 “팀이 안정적으로 앱을 유지하는 법”을 다룬다.

? 결국 ‘좋은 코드’의 기준은 같다

펌웨어, 백엔드, 프론트엔드…

플랫폼은 다르지만, 좋은 엔지니어링의 원칙은 동일하다는 걸 다시 느꼈다.

모듈화, 확장성, 유지보수성, 단순함과 복잡함의 균형.

이 책은 그런 본질을 Flutter라는 언어로 다시 보여준다.

? 이런 분께 추천

Flutter 문법은 알지만 한 단계 성장하고 싶은 중급 개발자

Flutter 프로젝트의 구조와 유지보수에 고민이 있는 팀 리드 / 아키텍트

이미 다른 언어 경험이 있지만 Flutter를 공학적으로 배우고 싶은 개발자

빠른 프로토타입이 아닌, 장기 유지 가능한 프로덕션 앱을 만들고 싶은 분

반대로 완전 초보자나 “앱 하나 빨리 만들어보고 싶다”는 분들에겐 조금 어렵게 느껴질 수 있다.

? 결론

《Flutter Engineering》은 단순히 “Flutter 잘 쓰는 법”을 알려주는 책이 아니다.

**“Flutter로 좋은 소프트웨어를 만드는 법”**을 알려준다.

코드 몇 줄을 덜 치는 요령이 아니라,

시스템을 설계하고 팀 단위로 운영하는 진짜 엔지니어링 감각을 다룬 책이다.

이 책 덕분에 Flutter를 다시 보게 됐다.

“플러터로도 이렇게 공학적인 접근이 가능하구나.”

앞으로 진행할 프로젝트에서도 많은 부분을 적용하게 될 것 같다.

한빛미디어 서평단 <나는리뷰어다활동을 위해서 책을 협찬 받아 작성된 서평입니다.

 

 

요즘 개발자들이 가장 자주 하는 고민은 내가 지금 제대로 배우고 있는 걸까?”일 것이다프레임워크는 쏟아지고기술은 빠르게 바뀌는데방향을 잃은 느낌이 든다특히 Flutter처럼 단기간에 성장한 기술을 다루다 보면, ‘단순히 작동하는 코드를 넘어 유지되는 시스템을 어떻게 만들지 막막해진다.

 

<플러터 엔지니어링>의 저자는 우리에게 묻는다.

당신은 단순히 코드를 쓰는가아니면 시스템을 설계하는가?”

플러터를 다루지만사실상 이 질문은 모든 개발자에게 던지는 철학적 물음이다책의 초반부부터 저자는 Flutter를 단순한 UI 프레임워크가 아닌 하나의 공학 시스템으로 바라본다렌더링 트리위젯의 생명주기아키텍처 패턴을 구조적으로 해부하면서 왜 이런 설계가 나왔는가를 끈질기게 파고든다.

 

이 책은 Flutter를 단순히 앱 제작 도구로 보지 않는다. Flutter라는 프레임워크가 어떻게 설계되었는지그 안에서 아키텍처와 디자인 패턴이 어떤 식으로 움직이는지를 집요하게 파고든다위젯 트리렌더링 파이프라인생명주기상태 관리동시성 같은 키워드들이 이론이 아닌 맥락으로 다가온다.

 

저자는 Flutter를 통해 좋은 코드를 넘어 지속 가능한 시스템을 설계하라고 말한다하나의 위젯을 만드는 데서 끝나지 않고이 위젯이 전체 구조 속에서 어떤 역할을 하는지를 끊임없이 묻는다단순히 기능을 구현하는 것이 아니라아키텍처를 설계하고의존성을 관리하며테스트를 포함한 전체 생명주기를 고려하라는 제안이 이 책의 핵심이다.

 

그 근거는 ‘Engineering’이라는 단어에 있다프로그래밍은 코드를 짜는 행위라면엔지니어링은 코드를 유지하고 개선하는 과정을 설계하는 일이다저자 마지드 하지안은 실제 구글 Flutter GDE로서 수년간 쌓은 실무 경험을 토대로단순한 이론이 아니라 실제 현장에서 검증된 패턴과 구조를 제시한다.

 

Flutter를 이미 써봤지만점점 복잡해지는 프로젝트 구조에 답답함을 느끼는 사람이라면 이 책이 가장 좋은 동반자가 될 것이다단순한 기능 구현에 그치지 않고코드 품질과 아키텍처의 안정성을 함께 끌어올리고 싶은 이들에게 이 책은 교과서이자 리더의 메모장’ 같은 역할을 한다.

 

읽고 나면 Flutter에 대한 관점이 바뀐다. “앱을 만드는 것이 아니라 시스템을 구축하는 것으로 사고가 전환된다복잡함과 단순함 사이의 균형을 잡는 법구조적 사고의 중요성그리고 개발의 철학까지 함께 배운다기술의 표면이 아닌 근본을 건드리는 경험이다.

 

만약 지금 Flutter를 배우고 있다면그리고 더 깊이 이해하고 싶다면이 책을 조용히 한 장씩 읽어보길 권한다머리로만 읽히지 않고 손끝과 사고방식이 함께 바뀌는 느낌을 받을 것이다어쩌면 엔지니어라는 단어의 진짜 의미를 다시 생각하게 될지도 모른다.

 

#플러터엔지니어링 #마지드하지안 #한빛미디어 #FlutterEngineering #플러터개발 #소프트웨어엔지니어링 #앱아키텍처 #개발자추천도서 #플러터공부 #프로그래밍서평

플러터로 앱 하나 만들어봤는데, 막상 코드를 다시 보면 '이게 왜 이렇게 작동하는 거지?' 하는 의문이 들 때가 있죠. 
'플러터 엔지니어링'은 바로 그 궁금증을 속 시원하게 풀어주는 책입니다.

 

# 플러터가 화면을 그리는 진짜 비밀
여러분이 코드에서 버튼 하나를 만들면, 화면에 버튼이 나타나죠? 
근데 그 사이에 무슨 일이 일어나는지 아시나요? 
우리가 작성하는 위젯 코드는 사실 '설계도'일 뿐입니다. 
이 설계도를 받아서 실제로 화면에 뭔가를 그리는 건 완전히 다른 시스템이에요.
특히 화면이 바뀔 때 플러터가 전체를 다시 그리는 게 아니라, 바뀐 부분만 똑똑하게 찾아서 업데이트한다는 걸 알게 됐어요. 
이런 원리를 알고 나니까 '왜 이 코드는 빠르고 저 코드는 느린지' 이해가 되더라고요.

 

# 앱 구조, 대충 짜면 나중에 후회해요
앱이 커지면서 어디에 뭘 넣어야 할지 모르겠고, 수정하려면 여기저기 다 고쳐야 하는 문제가 생기죠. 
이 책은 화면 부분, 로직 처리 부분, 서버 통신 부분을 어떻게 나눠야 하는지 명확하게 알려줍니다.
BLoC이니 MVVM이니 하는 말들이 처음엔 어렵게 느껴지는데, 책에서는 '왜 필요한지'부터 차근차근 설명합니다. 
실습 위주가 아니라 개념을 이해시키는 방식이라서, 읽고 나면 내 프로젝트에 어떻게 적용해야 할지 감이 오더라고요.

 

# 앱이 느려지는 이유를 이제 알겠어요
제일 답답했던 게 앱이 버벅거릴 때였어요. 
이 책을 읽고 나서 큰 파일을 처리하거나 복잡한 계산을 할 때는 별도로 분리해서 처리해야 한다는 걸 배웠어요. 
마치 식당에서 요리사 한 명이 모든 걸 하면 느린 것처럼, 앱도 일을 나눠서 처리해야 빠르다는 거죠.
안드로이드나 iOS의 특별한 기능을 써야 할 때도 있잖아요. 
책에서는 네이티브 기능을 플러터와 연결하는 방법을 자세히 설명합니다. 
이걸 알고 나니까 '못 만드는 앱이 없겠다'는 자신감이 생기더라고요.

 

# 테스트와 보안, 그리고 접근성까지
앱을 만들었으면 버그 없이 안전하게 배포해야 하죠. 
책에서는 자동으로 테스트하는 방법과 사용자 정보를 안전하게 지키는 방법을 배웁니다. 
그리고 시각 장애가 있는 분들도 내 앱을 쓸 수 있게 만드는 접근성까지 다루는데, '모두를 위한 앱'을 만들고 싶어지더라고요.

 

# 읽고 나서
이 책은 '따라하기' 책이 아닙니다. 대신 '왜 이렇게 작동하는지', '어떤 원리로 돌아가는지'를 깊이 있게 설명하는 책입니다. 
처음엔 좀 어렵게 느껴질 수 있지만, 천천히 읽으면서 이해하다 보면 플러터를 '진짜로' 아는 개발자가 되어 있을 겁니다.
초보자라면 기본을 먼저 배우고 읽는 걸 추천하고, 이미 앱 하나쯤 만들어봤다면 이 책으로 한 단계 성장할 수 있을 거예요.

“한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.”

이 책은 “플러터로 무엇을 만들 것인가”를 넘어 “어떻게 지속 가능한 제품을 엔지니어링할 것인가”에 초점을 맞춘 올인원 가이드이다. 계층화된 아키텍처 선택지와 의존성 경계, 상태 동기화 전략, 비동기/동시성 제어 모델까지 제품 수준에서 의사결정을 내리게 만드는 구조로 구성되어 있다. 

특히 리액티브 패턴과 도메인 경계 설계, 테스트 자동화와 품질 게이트를 함께 다루어 팀 단위의 개발 생산성과 릴리스 안정성을 동시에 확보하도록 돕는 점이 강점이다. 실전 섹션은 적응형 UI와 국제화, 다크/브랜드 테마 운영, 셰이더와 같은 그래픽 최적화까지 포괄하여, 단일 코드베이스의 경험 품질을 다플랫폼에서 일관되게 유지하는 실행 로드맵을 제공한다. 읽는 내내 느낀 점은 “프레임워크 사용법”을 넘어 “엔지니어링 원칙”을 내재화시키는 데 초점을 둔 책이라는 것이다. 코드 스니펫보다 의사결정 기준과 트레이드오프를 먼저 제시하기 때문에, 신규 기능 추가나 레거시 안정화 등 변화 관리에 강한 체질을 갖추게 해준다. 

초심자가 바로 따라 치는 튜토리얼이라기보다, 이미 화면을 그려본 개발자가 설계의 깊이를 확장하고, 팀 규범을 정립하는데 특화된 레퍼런스라는 점도 인상적이다. 실제로 “구현은 되지만 더 나은 접근이 궁금한” 개발자에게 최적화된 책이다. 아키텍처 리팩터링이 필요하거나, 상태관리, 동시성 이슈로 고민하고 있는 팀, 혹은 멀티플랫폼에서 UX 일관성과 성능을 동시에 잡아야 하는 PM 및 리더에게 강력히 추천한다. 조직 관점에서는 온보딩 이후 성장 곡선이 완만해진 개발자의 레벨업 커리큘럼으로 편성하기 좋고, 챕터 단위로 기술 부채 상환 스프린트의 체크리스트로도 활용 가치가 높다. 

결론적으로, 이 책은 플러터 실무의 기준선과 베스트 프랙티스를 체계화한 전략서이며, 제품 확장성과 팀 생산성을 동시에 지향하는 조직에 확실한 투자 가치가 있는 레퍼런스라고 말할 수 있겠다.

#플러터엔지니어링 #FlutterBestPractice #소프트웨어아키텍처 #클린코드 #상태관리전략 #프러덕트개발 #팀생산성 #개발자레벨업 #리팩터링필수템 #멀티플랫폼UX #한빛미디어 #책스타그램 #북스타그램 #서평 #독서 #독서스타그램 #신간 #북리뷰 #책리뷰 #추천 #제공받은책

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다."

 


최근 모바일 앱 개발 프로젝트를 진행하면서 Flutter에 관심을 갖게 되었습니다.
입문서를 몇 권 훑어봤는데 뭔가 아쉬움이 남더라고요.

"이 위젯은 이렇게 쓰세요", "이 문법 이렇게 하세요"...
물론 중요한 내용이지만, 제가 원하는 건 그게 아니었습니다.
실무에서 어떻게 아키텍처를 설계하고, 어떻게 유지보수 가능한 코드를 작성하는지...
그런 엔지니어링 관점의 접근이 필요했습니다.

그러던 중 발견한 책이 바로 Majid Hajian의 'Flutter Engineering'입니다!


1. 저자 Majid Hajian은 누구인가?

Majid Hajian은 2006년부터 활동해온 베테랑 소프트웨어 엔지니어입니다.
Flutter Google Developer Expert로 인정받고 있고,
Pluralsight나 YouTube에서도 활발히 활동하는 분이에요.
단순히 책만 쓰는 게 아니라 강연, 워크숍, 팟캐스트 호스팅까지...
정말 커뮤니티에 헌신하는 개발자라는 느낌을 받았습니다.

이 책을 위해 무려 1년을 투자했다고 하니...
그만큼 정성이 담긴 작품이라는 걸 알 수 있죠.


2. 이 책의 가장 큰 차별점 - Programming vs Engineering

이 책의 핵심 컨셉은 제목에서부터 드러납니다.
'Flutter Programming'이 아닌 'Flutter Engineering'이라는 점!

대부분의 Flutter 책들은 프로그래밍 기술에 집중합니다.
"이 위젯 어떻게 쓰나요?", "상태 관리 어떻게 하나요?"...
물론 이것도 중요하지만, 실무에서는 그 이상이 필요하거든요.

- Programming은 코드를 작성하는 기술이라면,
- Engineering은 유지보수 가능하고 확장 가능한 시스템을 구축하는 종합적인 능력입니다.

저자는 이 차이를 명확히 하면서, Flutter 개발을 소프트웨어 공학적 관점에서 접근합니다.
펌웨어 개발하면서 항상 고민하던 아키텍처, 디자인 패턴, 성능 최적화 같은 주제들이 Flutter에도 동일하게 적용되더라고요.


3. 책의 구성과 내용

책은 총 5개의 파트로 구성되어 있습니다.

1) Part 1: Foundation of Flutter Engineering

첫 번째 파트에서는 Flutter 엔지니어링의 기초를 다룹니다.
단순히 Flutter의 기본 문법이 아니라, 소프트웨어 엔지니어링 개념이 Flutter에 어떻게 적용되는지를 설명하죠.

- Flutter의 핵심 아키텍처와 작동 원리
- 위젯 트리와 렌더링 메커니즘의 깊은 이해
- 코딩 디자인 패턴의 실제 적용

특히 인상적이었던 건, "왜 Flutter가 이렇게 설계되었는가?"를 설명해준다는 점입니다.
단순히 "이렇게 쓰세요"가 아니라 "왜 이렇게 해야 하는지"를 알려주니까...
훨씬 깊이 있는 이해가 가능했습니다.

2) Part 2-5: 고급 주제들

나머지 파트에서는 더 심화된 내용을 다룹니다:

- 복잡성과 단순성 사이의 균형 찾기
- 동시성(Concurrency)과 병렬성(Parallelism)의 명확한 구분
- 클린 아키텍처와 SOLID 원칙 적용
- 고급 상태 관리 전략
- 성능 최적화 기법
- 테스팅 전략 (Unit, Widget, Integration)
- CI/CD 파이프라인 구축

각 챕터는 독립적으로 읽을 수 있도록 설계되어 있어서...
필요한 부분부터 읽어도 됩니다.
물론 처음부터 차근차근 읽는 게 가장 좋겠지만요!


4. 실무에 바로 적용 가능한 내용들

이론만 가득한 책이 아니라, 실무에서 바로 쓸 수 있는 내용들이 많습니다.

1) 아키텍처 설계
프로그램을 개발할 때 항상 고민하는 부분이 아키텍처인데...
Flutter에서도 동일한 원칙들이 적용되더라고요.
레이어 분리, 의존성 관리, 인터페이스 설계 등...
이런 개념들이 Flutter 환경에서 어떻게 구현되는지 명확히 알 수 있었습니다.

2) 디자인 패턴 활용
Singleton, Factory, Observer, Repository 패턴 등...
이미 알고 있던 패턴들이 Flutter에서 어떻게 활용되는지 배울 수 있었습니다.
특히 상태 관리에 Observer 패턴이 어떻게 적용되는지 보니까...
"아, 이래서 Provider나 Riverpod이 이렇게 동작하는구나!" 하는 깨달음이 왔습니다.

3) 성능 최적화
앱의 성능을 끌어올리는 구체적인 방법들도 다룹니다.
불필요한 리빌드 방지, 메모리 관리, 비동기 처리 최적화 등...
실제 프로덕션 환경에서 꼭 필요한 내용들이죠.


5. 국내 Flutter 책들과 비교하면?

국내에도 좋은 Flutter 입문서들이 많이 나와 있습니다.
'코드팩토리의 플러터 프로그래밍', 'Do it! 깡샘의 플러터 & 다트 프로그래밍' 같은 책들이죠.

이런 책들은 주로:
- Flutter를 처음 배우는 사람들을 위한 기초 학습
- 앱을 빠르게 만들면서 배우는 실습 중심
- 초보자도 쉽게 따라할 수 있는 친절한 설명

반면 Flutter Engineering은:
- 이미 프로그래밍 경험이 있는 중급 이상 개발자 대상
- 소프트웨어 공학적 접근 방식 강조
- 확장 가능하고 유지보수 가능한 아키텍처 설계
- 실무 프로페셔널 환경에 필요한 고급 기술

쉽게 말하면...
국내 책들이 "Flutter로 앱 만드는 법"을 알려준다면,
Flutter Engineering은 "Flutter로 좋은 시스템을 구축하는 법"을 알려줍니다.


6. 이 책이 필요한 사람, 필요하지 않은 사람

1) 강력 추천하는 분들

- 중급 이상의 Flutter 개발자
기본 위젯과 문법은 알지만, 더 깊은 이해가 필요한 분들에게 딱입니다.
"이게 왜 이렇게 동작하지?"라는 의문이 많으셨다면 이 책이 답을 줄 거예요.

- 다른 언어/프레임워크 경험자
저처럼 펌웨어나 백엔드 개발 경험은 있는데 Flutter는 처음이신 분들...
기초부터 차근차근 배우는 것보다, 엔지니어링 관점에서 접근하는 게 훨씬 효율적입니다.

- 아키텍트나 리드 개발자
팀에서 아키텍처 결정을 내려야 하는 위치라면 필독서입니다.
어떤 패턴을 선택하고, 어떻게 프로젝트를 구조화할지에 대한 인사이트를 얻을 수 있어요.

- 실무 프로덕션 환경 개발자
테스트 코드 작성, CI/CD 파이프라인 구축, 성능 최적화 등...
실제 서비스를 운영하면서 겪는 문제들의 해결책을 찾을 수 있습니다.

2) 이 책이 맞지 않는 분들

- 프로그래밍을 처음 배우는 완전 초보자
이 책은 이미 프로그래밍 개념을 이해하고 있다고 가정합니다.
변수, 함수, 클래스 같은 기본 개념부터 배워야 한다면 다른 입문서를 먼저 추천드려요.

- 빠르게 앱 하나 만들어보고 싶은 분
"일단 뭐라도 빨리 만들어보고 싶다!"는 분들에게는 오히려 부담스러울 수 있습니다.
이 책은 깊이 있는 이해를 위한 책이거든요.

- 기초 문법만 배우고 싶은 분
단순히 Dart 문법이나 기본 위젯 사용법만 배우고 싶다면...
더 가벼운 입문서가 낫습니다.


7. 책 이외의 풍부한 학습 자료들

이 책의 또 다른 장점은 책 하나로 끝이 아니라는 점입니다!

flutterengineering.io 웹사이트에서는:
- 비디오 강의: 책 내용을 영상으로 배울 수 있습니다
- 코드 샘플: 실제 동작하는 예제 코드 제공
- 팟캐스트: 출퇴근하면서 들을 수 있는 오디오 콘텐츠
- 뉴스레터: 지속적인 업데이트와 최신 정보
- 무료 샘플: 구매 전에 샘플 PDF를 다운받아 미리 볼 수 있습니다

특히 감동적이었던 건...
저자가 스폰서십 프로그램을 통해 학습 자료를 구매할 여유가 없는 개발자들을 직접 지원한다는 점입니다.
무료로 또는 할인된 가격에 자료를 제공하면서, 오픈소스 프로젝트도 지원하고 있어요.
진정한 커뮤니티 정신이 느껴지더라고요.


9. 읽으면서 느낀 점

소프트웨어 개발을 오래 하다 보니...
"좋은 코드란 무엇인가?"에 대한 나름의 기준이 있었습니다.
모듈화, 재사용성, 확장성, 유지보수성...

이 책을 읽으면서 느낀 건, 이런 원칙들이 Flutter에도 그대로 적용된다는 점이었어요.
플랫폼이나 언어가 바뀌어도 좋은 엔지니어링의 본질은 같더라고요.

특히 "복잡성과 단순성 사이의 균형"에 대한 챕터가 인상 깊었습니다.
펌웨어 개발할 때도 항상 이 고민을 하거든요.
너무 단순하면 확장이 어렵고, 너무 복잡하면 유지보수가 힘들고...
이 균형점을 찾는 게 진짜 엔지니어의 능력이라는 걸 다시 한번 느꼈습니다.


10. 마무리하며

Flutter Engineering은 단순한 프로그래밍 입문서가 아닙니다.
진정한 의미의 소프트웨어 엔지니어링 도서죠.

"Flutter로 앱을 만들 수 있다"에서 "Flutter로 훌륭한 시스템을 설계할 수 있다"로 한 단계 도약하고 싶다면...
이 책을 강력히 추천합니다!

이미 프로그래밍 경험이 있지만 Flutter는 처음이신 분들...
Flutter 기초는 알지만 더 깊이 있는 학습이 필요하신 분들...
실무에서 제대로 된 아키텍처를 구축하고 싶으신 분들...

모두에게 이 책이 훌륭한 가이드가 되어줄 겁니다.

저도 이 책을 읽으면서 많은 인사이트를 얻었고...
앞으로 진행할 Flutter 프로젝트에 바로 적용해볼 계획입니다!

 

#Flutter #플러터 #FlutterEngineering #소프트웨어엔지니어링 #모바일개발 #앱개발 #개발자 #코딩 #프로그래밍 #클린아키텍처 #디자인패턴 #MajidHajian

리뷰쓰기

닫기
* 상품명 :
플러터 엔지니어링
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
플러터 엔지니어링
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
플러터 엔지니어링
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?