jjkwa***
2021-06-20

크로스 플랫폼 앱개발 프레임워크인 플러터와 다트의 기본 내용을 학습하고 실용적인 앱을 개발하는 입문서
"소문난 명강의 : 오준석의 플러터 생존코딩(개정판) - Flutter와 Dart 입문부터 안드로이드와 iOS용 3가지 앱 개발까지"는 2020년 3월에 출판된 초판의 개정판입니다. 초판과 비교해 개정판의 경우, '8장 플러터2 변경점'이라는 제목으로 15페이지가량 추가된 정도가 차이점이라고 하겠습니다. null safety(널 안전성)라는 이슈가 적용된 다트 2.12.0 및 플러터 2에 대응하기 위해 1년만에 개정판을 준비하신 것으로 생각됩니다. 기존 코딩방식에 null safety가 적용되면 에러가 주루룩 쏟아지거든요. 플러터2가 되면서 대응기기가 추가된 것도 짤막하게 언급해 주었습니다.
플러터(Flutter)의 가장 큰 장점은
Windows, iOS, 리눅스, 그리고 크롬 OS에서까지 개발가능한 SDK를 제공한다는 것과
한번의 코딩으로 안드로이드와 iOS, 그리고 웹과 데스크톱(베타 - 윈도우, 맥OS, 리눅스)에서 실행가능한 애플리케이션을 개발할 수 있는 '진정한 의미의 멀티 플랫폼 개발 프레임워크'의 지위를 가지게 되었다는 점입니다.
구글이 잘 나가던 프로젝트도 하루 아침에 묻어 버리는 경우가 있어서 아직 플러터에 올인하기에는 일말의 불안감이 있기는 합니다만, HTML, CSS, 자바스크립트 등에 익숙한 웹퍼블리셔가 빠른 시일내에 앱을 개발해 본다거나, 자바 기본 문법은 익혔으나 바로 안드로이드 앱개발에 뛰어들기에는 부담을 느끼는 초심자들에게 충분히 매력적일 수 있는 개발도구라고 생각합니다. 제가 이 범주에 드는 수준이라 몸소 체험하고 있기도 하구요. 플러터가 사용하는 Dart 언어가 자바와 자바스크립트의 장점이나 코딩방식을 많이 가져다 쓴 언어이기 때문이기도 합니다.
한빛미디어 도서 리뷰어로 활동하면서, 우연하게도 한빛미디어가 출간한 플러터 관련 서적 3권 모두를 접하게 되었네요. 첫번째 책이 "플러터 인 액션"이라는 번역서 였고, "처음 배우는 플러터"가 두번째로 접한 책이었습니다. 그리고 이번에 세번째로 "소문난 명강의 : 오준석의 플러터 생존코딩(개정판)"을 받았는데요, 책의 내용이나 서술방식은 "소문난 명강의 : 오준석의 플러터 생존코딩(개정판)"가 제일 간략간략하고 다른 책에 비해 빠져 있는 내용도 많은 것 같은데, 희안하게도 "소문난 명강의 : 오준석의 플러터 생존코딩(개정판)"의 내용이 머리와 손에 가장 많이 남아 있는 것 같습니다.
이 책은 설명이 굉장히 간략간략합니다. 그래서 문장호흡을 짧고 스피디하게 구성한 것이 이 책의 장점이자 단점입니다. Dart 문법은 꼭 필요하다 여겨지는 것만 소개하였고 예제도 짧습니다. 꼭 필요한 것만 언급하였으니 무조건 머리속에 넣고 손가락이 타이핑할 수 있게 하면 책을 따라갈 수 있습니다. 총12개의 장으로 구성되어 있는데 한 챕터가 하루분량도 안 되는 경우가 대부분입니다. 제 경우, 읽고 따라 하다 보면 30분내지 한시간정도면 한 챕터를 끝낼 수 있었습니다.
플러터의 특징인지도 모르겠지만, 이 책 저자의 코딩 습관이 일관성이 있어서 좋았습니다. 항상 같은 코딩 스타일을 유지하니 초보자들이 이해하기가 편했던 것 같습니다. 책 전체적으로 익명함수나 클래스정도에 대한 초보적인 지식만 있으면 거의 대부분 이해할 수 있는 정도의 내용입니다. 예를들어 람다식 썼다 익명함수식 썼다 왔다갔다 하면서 헷갈리게 만들지 않거든요. 샘플앱 제작에 필요한 문법정도만 언급되어, var 타입과 dynamic 타입의 차이점 같은 것도 일단은 생략되어 있습니다. 필요할 때 익히면 됩니다.
저도 그랬지만, 처음 플러터의 코딩 엔트리포인트나 기본 클래스의 구조를 보면 매우 혼동스럽습니다. 뭔가 주석이 잔뜩 달려 있는데다 프로젝트의 구조라든가 사용하는 용어 자체가 꽤 생소하거든요. 이를 해결하는 방법으로 이 책의 저자가 유튜브에서 제공하는 플러터 기초 강의가 많이 도움이 되었습니다. 유튜브에서 "오준석의 생존코딩" 채널을 찾아서 "Flutter 입문"과 "Flutter 중급" 재생목록을 참고 하시면 좋겠습니다. 이 책의 설명순서와 동영상의 설명순서는 연관이 없다는 것은 미리 참고 바랍니다. "Flutter 입문" 영상에서는 플러터 위젯 사용방법을 FlutterStudio 사이트를 참고하여 배우는데 이 방식도 위젯 개념을 잡는데 큰 도움이 됩니다.
무료강의도 짧게 짧게 20여강정도로 구성되어 부담스럽지 않으니 이 책을 보기전에 유튜브 무료강의를 보는 것도 좋구요, 저자가 정리한 "Dart 다트 문법 정리", "Java 자바 문법 총정리" 같은 영상도 큰 도움이 됩니다. 저자가 직접 운영하는 유료 강좌 플랫폼 "오준석의 생존코딩"이나 인프런을 통해, 플러터와 파이어베이스를 이용하여 '인스타그램 클론' 사이트를 만들어 보는 유료강의도 시청할 수 있습니다.
강의 영상은 맥OS에서 만드신 것 같은데, 이 책에서는 맥OS에서 플러터 및 다트 SDK PATH를 영구적으로 설정하는 방법이라든지, iOS 애뮬레이터를 사용하는 방법에 대해서 구체적으로 언급하고 있지 않아서 좀 아쉽습니다. 이번에 실습은 맥북을 통해서 해 봤는데 초기 세팅에 꽤나 애를 먹었습니다. 책의 다음 판이나 영상강좌를 통해 추가해 주시면 좋겠습니다.
Dart 문법 연습도 이 책에서는 DartPad라는 웹사이트를 이용하도록 되어 있습니다. 그러다보니, 최근 많이 사용하는 비주얼 스튜디오 코드 같은 개발툴에서 플러터와 다트 개발 세팅하는 방법이 언급되어 있지 않은데요, 나중에 추가되면 좋겠습니다. 안드로이드 스튜디오는 물론이지만 비주얼 스튜디오 코드도 플러터 앱개발에 많이 사용하는 것 같습니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."