이미지 확대/축소가 가능합니다.

닫기


친절한 입문, 시행착오 줄이기, 지속 가능하게 발전하기

수많은 컴퓨터 공학과 학생들과 함께한 저자가 집필하며 세운 세 가지 원칙에 맞추어 차근차근 Dart와 Flutter를 설명합니다. Dart가 다른 언어와 비슷하다고 해서 적당히 설명하고 바로 Flutter로 넘어가지 않습니다. 프로그래밍을 처음 시작하는 여러분을 위해 수행 결과와 예제 코드를 보여주며 한 줄 한 줄 친절하게 설명하고, 시행착오를 줄일 수 있도록 처음부터 개발자 습관을 길러줍니다. 그리고 마지막으로 책의 내용을 따라오다 보면 개발자 공고 속 숨겨진 조건인 ‘지속 가능한 개발자’를 만족하는 여러분을 마주하게 될 것입니다.

처음에는 프로그래밍을 시작하는 독자애게 프로그래밍 언어의 간단한 역사를 알려주며 Dart 언어를 권하는 이유를 알려줍니다. 그 후 Dart 언어의 문법을 충분히 이해할 수 있도록 준비한 예제 프로그램 줄 단위로 꼼꼼히 알려줍니다. 문법을 익힌 후 Dart 언어만으로 웹 서버와 클라이언트도 만들어봅니다 볼륨 E부터는 Flutter를 사용합니다. 우선 플러터로 모바일 앱을 만들며 플러터의 구조와 대표적인 위젯, 레퍼런스 프로그램을 개발하고 난 뒤 플러터의 강점인 크로스 플랫폼 능력을 이용하여 데스크톱, 웹에서 동작하는 프로그램을 만듭니다. 기능을 다 익히고 난 뒤에는 개발자로서 활용할 수 있는 팁과 추후 다양한 분야로 나아갈 때 도움이 될 노하우를 알려줍니다.



머리말
이 책을 읽는 법
목차

VOLUME.A 시작에 앞서

01. Full Stack 프로그래머 지원자에게 Dart 언어를 권하는 이유
02. 앞으로 자주 방문하게 될 웹 사이트 소개

VOLUME.B Dart 언어 기초 이해

01. DartPad를 이용하여 개발 환경 구축하기
02. Hello World 프로그램 개발하기
03. 기초적인 숫자와 문자 다루기
04. 숫자 자세히 다루기
05. 문자 자세히 다루기
06. 조건문으로 작업하기
07. 반복문으로 작업하기
08. 함수를 이용하여 반복 작업하기
09. Class를 이용하여 객체지향 프로그래밍 이해하기
10. List를 이용하여 복수 데이터 처리하기
11. Set을 이용하여 집합 데이터 처리하기
12. Map을 이용하여 사전 데이터 처리하기
13. 알아 두면 요긴한 Dart 언어 기능 이해하기

VOLUME.C Dart 언어 심화 이해

01. Class 직접 만들기 Part.1
02. Class 직접 만들기 Part.2(mixin)
03. Class 직접 만들기 Part.3(추상 클래스)
04. Class 직접 만들기 Part.4(Generic)
05. 비동기 입출력 기능 활용하기
06. 예외 상황 처리를 통한 프로그램 안정성 강화하기
07. Dart 개발 환경 설치하기
08. 키보드 입력 화면 및 화면 출력 수행하기
09. 파일 입출력 기능 활용하기
10. 표준 라이브러리 활용하기

VOLUME.D HTTP 서버와 클라이언트 개발

01. Microsoft Visual Studio Code 기반 개발 환경 구축하기
02. HTTP 프로토콜 이해하기
03. HTTP Client & Server 개발하기
04. JSON 활용하기
05. REST API 기반 CRUD 개발하기

VOLUME.E Flutter로 Mobile App 개발

01. DartPad를 이용한 Hello World 프로그램 개발하기
02. Hello World 프로그램 진화시키기 Part.1
03. Hello World 프로그램 진화시키기 Part.2
04. Flutter 이해하기
05. Flutter 공식 Counter 프로그램 이해하기
06. Stateless Widget 활용하기
07. Stateful Widget 활용하기
08. 두고두고 활용할 레퍼런스 프로그램 개발하기
09. 스마트폰에서 Flutter 프로그램 실행하기

VOLUME.F Flutter로 Desktop App 개발

01. Flutter for Desktop 이해하기
02. Flutter 아키텍처 이해하기

VOLUME.G Flutter로 Web 서비스 개발

01. Flutter for Web 이해하기 Part.1
02. Flutter for Web 이해하기 Part.2
03. Flutter for Web 개발하기
04.. Flutter for Web 운영하기
05. Flutter for Web 아키텍처 이해하기

VOLUME.H 지속 가능한 개발자로 첫걸음 내딛기

01. Dart for Embedded 알아 두기
02. 추가 패키지 활용하기
03. Flutter 공식 사이트 레퍼런스와 샘플 활용하기
04. Flutter CLI 명령 이해하기
05. Dart와 Flutter 최신 정보 신청하기

VOLUME.I 알아 두면 요긴한 분야별 노하우

01. Alfred 웹 서버 프레임워크 사용하기
02. 데이터베이스 활용하기
03. Docker를 이용한 컨테이너 기반 서비스 개발하기
04. 서로 다른 디바이스 간에 통신하기
05. WebSocket 기반 네트워킹 기능 개발하기
06. Dart for Web 활용하기
07. FFI로 C언어 연결하기
08. 라즈베리 파이에서 Dart와 Flutter 활용하기
09. XD2Flutter로 디자인 개선하기
10. Flutter 앱 배포하기
11. Concurrency 기반 병렬 처리 개발하기
12. 컴퓨터공학 전문 이론 공부하기
13. TensorFlow 활용하기
14. Flutter 클라우드 개발 환경 활용하기



상세 이미지 1



* 주요 내용

VOLUME.A 시작에 앞서

풀스택 프로그래머를 꿈꾸는 독자에게 프로그래밍 언어의 역사와 함께 왜 Dart 언어가 적합한 언어인지 설명하고, 개발자가 되면 자주 방문하게 될 주요 사이트를 알려줍니다.

VOLUME.B Dart 언어 기초 이해

따로 개발 환경을 설치하지 않고, Dart에서 제공하는 웹 개발 환경인 Dartpad를 이용하여 숫자와 문자, 조건문, 반복문 등 어느 언어에나 있지만 Dart 언어에서도 반드시 알아야 할 기본 문법을 배웁니다. 그 후 자료형을 배워 여러 데이터를 처리해 봅니다.

VOLUME.C Dart 언어 심화 이해

프로그램의 기본이 되는 단위인 클래스의 기본적인 사용법부터 mixin, 추상 클래스, 제네릭 등 4파트로 나누어 서술하고, 입출력 기능, 예외 처리, 라이브러리 활용으로 소프트웨어의 품질을 한 단계 높여 봅니다.

VOLUME.D HTTP 서버와 클라이언트 개발

원활한 개발을 위해 개발 환경을 새로 구축하며 시작합니다. 그 후 클라이언트와 서버를 만들어 기본적인 호출과 응답을 하도록 만들고, JSON을 활용하여 RESTFul한 API로 발전시켜 봅니다.

VOLUME.E Flutter로 Mobile App 개발

도입부에서는 제일 기본적인 Hello World 프로그램을 개발하고 이 프로그램을 발전시켜 기본적인 레이아웃을 가진 프로그램으로 만듭니다. Flutter의 대표적인 Counter 프로그램을 줄 단위로 뜯어보며 구조를 파악하고, Stateless 위젯과 Stateful 위젯을 활용하여 프로그램을 더욱 발전시킵니다. 마지막으로 배운 모든 지식을 활용하여 앞으로의 앱 개발에 기본으로 두고 사용할 만한 레퍼런스 프로그램을 만듭니다.

VOLUME.F Flutter로 Desktop App 개발

간단한 동작만으로 개발했던 모바일 앱을 데스크톱 앱으로 바꾸어 봅니다. 그리고 어떻게 이렇게 간단하게 전환이 가능한지 플러터의 구조를 보며 알아 봅니다.

VOLUME.G Flutter로 Web 서비스 개발

역시 간단하게 기존의 앱을 웹에서 동작하도록 수정한 다음, Dart로 만든 서버를 붙여 Dart와 Flutter만으로 서버-클라이언트이 가능함을 보여줍니다. 이 챕터에서도 역시 어떻게 해서 이런 일이 가능한지 그 구조를 보며 이해합니다.

VOLUME.H 지속 가능한 개발자로 첫걸음 내딛기

향후 활용할 만한 새로운 기술이나 팁들을 모아둔 부분입니다. 나중에 활용할 가능성이 있는 Dart for Embedded를 알아보고, 패키지 활용법이나 샘플 활용법 등의 팁을 알려줍니다. 그 밖에도 추후 최신 정보를 수신할 수 있도록 설정하는 작업도 포함되어 있습니다.

VOLUME.I 알아 두면 요긴한 분야별 노하우

다양한 분야로 나아갈 독자를 위해, 지금까지 배운 내용을 바탕으로 활용할 기술을 소개하고 간단하게 실습해 봅니다. 자유롭게 원하는 부분을 읽으며 향후 원하는 개발 분야에 맞는 부분을 실습하면 됩니다.

* 작가의 말

“친절한 입문, 시행착오 줄이기, 지속 가능하게 발전하기” - 이 책을 읽는 독자에게 어떤 것을 줄 것인가에 대해서, 책을 처음 구상하는 시점부터 책의 작성을 마치는 시점까지 일관되게 고민한 3가지 방향입니다. 이 책으로 프로그래밍을 처음 시작하는 독자라면, 백지에서 시작하지만, 당당하게 제 역할을 할 수 있는 신입 프로그래머가 되는 길을 알려주고자 합니다. 이미 프로그래밍에 대한 경험이 있는 독자라면, Dart와 Flutter가 어떤 기술인지와, 알아야 할 대부분의 것들을 가능한 빠른 시간에 이해하고 경험할 수 있도록 하고자 합니다.

프로그래밍 언어는 쉬워지고 있지만, 프로그램을 개발하는 환경은 어려워지고 있습니다. 아이러니한 이야기지만, 새로운 언어들이 쉬운 문법을 제공하면서, 유치원생들도 프로그래밍을 할 수 있게 되었습니다. 하지만 친절하게 설명하는 책의 비중은 줄어들고 있습니다. 오픈소스 소프트웨어가 트렌드가 되면서, 프로그래밍 언어를 공부하기 위하여 설치하는 프로그램들은 사용하기가 점점 더 어려워지고 있습니다. 딱히 인터넷 검색을 해도 답을 구하기 어렵거나, 대부분 영어 사이트여서 초보자는 쉽게 좌절하게 됩니다.

이 책은 Dart와 Flutter로 풀스택 프로그래머가 되기를 희망하는 초보자들을 위해서 최대한 친절하고자 합니다. 웹 브라우저만 있으면, 당장 프로그래밍을 시작할 수 있는 환경에서, 점차 난이도를 올려가면서 프로페셔널한 개발 환경까지 올라갈 수 있도록 합니다. 그리고 핵심 내용을 직접 실습할 수 있는 예제를 챕터별로 제공하고 있습니다. 미리 보는 수행 결과를 제시하여, 챕터별로 어떤 내용을 배우는지에 대한 이해가 더 빠르고 정확할 수 있도록 했습니다. 아울러 예제와 결과에 대해 서 최대한 자세하게 설명해서, 모르고 넘어가는 코드가 없도록 했습니다.

프로그래밍 언어를 하나 배우고 나면, 결국 이 말을 하게 됩니다. “이제 뭐하지?” 당장 만들고 싶은 프로그램이 있는 경우라면 문제가 안되겠지만, 대부분의 경우는 뭘 해야 할지 모릅니다. 하고 싶은 것이 있다고 하더라도, 어디서부터 어떻게 시작해야 할지 감을 잡기 어렵습니다. 예를 들어, 네이버나 구글 같은 웹 서버를 만들고 싶다고 하더라도, 웹이 무엇인지 모르겠고, 배운 언어로 서버를 만들려면 무엇을 해야 하는지 알기 어렵습니다. 결국 인터넷 검색을 하고, 시행착오를 하면서 깨달음의 경지에 오릅니다.

이 책은 풀스택 개발자가 되고자 하는 독자를 위하여, 최대한 시행착오를 줄일 수 있도록 합니다. Dart 언어와 Flutter 프레임워크를 배우는 기초 단계를 통과하면, 모바일 앱과 데스크톱 소프트웨어, 그리고 웹 서비스를 만드는 방법을 이야기합니다. 이런 기술을 좀 더 잘하기 위한, 서버 개발 방법, 네트워크 활용 방법, 네이티브 운영체제 기능 연결 방법, 임베디드 환경 활용 방법, 성능 향상 방법 등에 대해서 친절하게 설명합니다. 따라서, 든든한 나침반을 손에 쥔 상태에서, 더 궁금한 정보를 알아보기 위해서 인터넷이나 책을 찾아 볼 수 있도록 할 겁니다.

“학력 불문, 나이 불문, 성별 불문, 전공 불문” - 소프트웨어 개발자를 찾는 구인 원칙입니다. 이로 인한 오해로, 누구나 쉽게 개발자가 될 수 있다고 생각합니다. 하지만, 이 원칙에는 아주 무서운 기초 배경이 있으니, 바로 자기주도적으로 지속가능한 개발자인가의 여부입니다. 소프트웨어를 전공하지 않은 경우, 가장 많이 이야기 하는 애로 사항은, 새로운 정보를 끝도 없이 스스로 찾아서 계속 공부해야 한다는 점입니다. 가장 간단한 사례로, 프로그래밍 언어는 버전이 있습니다. 따라서 버전이 올라가면 새로운 기능이나 철학이 반영된 것이니, 이제 맞춰서 또 다시 공부를 해야 합니다. 한글에 버전이 없는 것과 차이가 있습니다.

이 책은 Dart 언어와 Flutter 프레임워크를 통해서 풀스택 개발자가 되고자 하는 분들에게 나침반 역할을 합니다. 나침반 역할 중에는 Dart와 Flutter를 포함해서, 수많은 공식 사이트의 자료를 어떻게 찾고, 무엇을 보고, 또한 새로운 정보가 나오면 어떻게 바로 알 수 있는지에 대한 방법을 알려줍니다.

낯설고 지루한 작업일 수 있습니다. 하지만 시간이 지나도 기술의 발전을 놓치지 않는 개발자가 되도록 합니다. 그리고 시간이 지날수록 더욱 깊이 있는 개발자가 되도록 합니다. 아울러 Dart와 Flutter를 사용만 하던 단계에서 언젠가 Dart와 Flutter를 직접 만드는 기여자가 되도록 길을 알려줍니다. 프로그래밍은 재미있는 작업입니다. 그래서 개발자들이 심심할 때 만드는 소프트웨어를 애완용(Pet) 프로젝트라고 합니다. 일생을 함께 할 수 있는 취미 중 하나로 Dart와 Flutter를 권해 봅니다.