본문 바로가기
[Review]/Book

[도서 리뷰] 플러터 엔지니어링

by 해피빈이 2025. 10. 26.

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

 

안드로이드 개발자를 시작할 때에는 못느꼈던 것이지만 점점 개발 경력이 늘어가면서 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개 이상 넘어가는 애플리케이션을 개발하는 개발자

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

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

 

총평

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

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

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

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

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

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

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

댓글