책 소개
친절한 입문, 시행착오 줄이기, 지속 가능하게 발전하기
수많은 컴퓨터 공학과 학생들과 함께한 저자가 집필하며 세운 세 가지 원칙에 맞추어 차근차근 Dart와 Flutter를 설명합니다. Dart가 다른 언어와 비슷하다고 해서 적당히 설명하고 바로 Flutter로 넘어가지 않습니다. 프로그래밍을 처음 시작하는 여러분을 위해 수행 결과와 예제 코드를 보여주며 한 줄 한 줄 친절하게 설명하고, 시행착오를 줄일 수 있도록 처음부터 개발자 습관을 길러줍니다. 그리고 마지막으로 책의 내용을 따라오다 보면 개발자 공고 속 숨겨진 조건인 '지속 가능한 개발자'를 만족하는 여러분을 마주하게 될 것입니다.
처음에는 프로그래밍을 시작하는 독자애게 프로그래밍 언어의 간단한 역사를 알려주며 Dart 언어를 권하는 이유를 알려줍니다. 그 후 Dart 언어의 문법을 충분히 이해할 수 있도록 준비한 예제 프로그램 줄 단위로 꼼꼼히 알려줍니다. 문법을 익힌 후 Dart 언어만으로 웹 서버와 클라이언트도 만들어봅니다 볼륨 E부터는 Flutter를 사용합니다. 우선 플러터로 모바일 앱을 만들며 플러터의 구조와 대표적인 위젯, 레퍼런스 프로그램을 개발하고 난 뒤 플러터의 강점인 크로스 플랫폼 능력을 이용하여 데스크톱, 웹에서 동작하는 프로그램을 만듭니다. 기능을 다 익히고 난 뒤에는 개발자로서 활용할 수 있는 팁과 추후 다양한 분야로 나아갈 때 도움이 될 노하우를 알려줍니다.
* 주요 내용
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.FFlutter로 Desktop App 개발
간단한 동작만으로 개발했던 모바일 앱을 데스크톱 앱으로 바꾸어 봅니다. 그리고 어떻게 이렇게 간단하게 전환이 가능한지 플러터의 구조를 보며 알아 봅니다.
VOLUME.G Flutter로 Web 서비스 개발
역시 간단하게 기존의 앱을 웹에서 동작하도록 수정한 다음,Dart로 만든 서버를 붙여 Dart와Flutter만으로 서버-클라이언트이 가능함을 보여줍니다. 이 챕터에서도 역시 어떻게 해서 이런 일이 가능한지 그 구조를 보며 이해합니다.
VOLUME.H지속 가능한 개발자로 첫걸음 내딛기
향후 활용할 만한 새로운 기술이나 팁들을 모아둔 부분입니다. 나중에 활용할 가능성이 있는 Dart for Embedded를 알아보고, 패키지 활용법이나 샘플 활용법 등의 팁을 알려줍니다. 그 밖에도 추후 최신 정보를 수신할 수 있도록 설정하는 작업도 포함되어 있습니다.
VOLUME.I알아 두면 요긴한 분야별 노하우
다양한 분야로 나아갈 독자를 위해, 지금까지 배운 내용을 바탕으로 활용할 기술을 소개하고 간단하게 실습해 봅니다. 자유롭게 원하는 부분을 읽으며 향후 원하는 개발 분야에 맞는 부분을 실습하면 됩니다.
작가 소개
이성원
경희대학교 소프트웨어융합학과 교수입니다. 경희대학교 전자계산공학과에서 학사와 석사, 박사학위를 받았으며, 삼성전자에서 이동통신 시스템과 서비스를 개발하였습니다. 주요 관심 분야는 이동통신, 컴퓨터 네트워킹, 오픈소스 소프트웨어입니다. 과거 이동통신 관련 국제 특허 작성이 주 업무였고, 최근에는 풀스택 소프트웨어와 데이터센터 프로그래밍 강좌를 다수 운영 중이며 직접 대학생을 위한 서비스를 개발 및 운영하고 있습니다.
목 차
머리말
이 책을 읽는 법
목차
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 클라우드 개발 환경 활용하기
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |