이 책은 오픈소스 자바스크립트 라이브러리인 리액트를 처음 배우는 개발자를 위한 책이다. 먼저 웹 서비스를 만들기 위해 알아야 할 리액트의 필수 개념을 짚어 본다. 그리고 간단한 실습으로 리액트 사용법을 익힌 뒤 실무 밀착형 프로젝트(미니 블로그 만들기)를 진행하며 직접 기획부터 개발까지 경험해 본다. 리액트 핵심 개념을 기초부터 탄탄히 익히고 실제 업무에 도움을 줄 수 있는 프로젝트 진행을 통해 체계적으로 학습할 수 있도록 구성되었다.
작가정보
저자(글) 이인제
인물정보
컴퓨터공학자
어릴 적부터 컴퓨터와 프로그래밍에 관심이 많아 멋진 개발자가 되는 게 꿈이었습니다. 숭실대학교 컴퓨터학부를 조기 졸업하고 카이스트에서 전산학 석사 학위를 취득한 뒤 다양한 회사와 스타트업에서 경험을 쌓고 프리랜서 개발자로도 활동했습니다. 분야를 가리지 않고 항상 즐겁게 개발하려고 노력하고 있으며, 소프트웨어 교육 활동에 적극적으로 참여하고 있습니다. 온오프라인에서 다양한 강의를 하고 있고 이노베이션 아카데미의 멘토로 활동하고 있습니다. 현재는 1인 스타트업을 창업하여 제품 개발과 회사 운영에 힘쓰고 있습니다.
목차
0장 준비하기
0.1 HTML 살펴보기
0.2 CSS란 무엇인가?
0.3 자바스크립트
0.4 개발 환경 설정하기
0.5 마치며
1장 리액트 소개
1.1 리액트는 무엇인가?
1.2 리액트의 장점
1.3 리액트의 단점
1.4 마치며
2장 리액트 시작하기
2.1 HTML만으로 간단한 웹사이트 만들기
2.2 CSS를 사용하여 웹사이트 스타일링하기
2.3 웹사이트에 React.js 추가하기
2.4 create-react-app
2.5 마치며
3장 JSX 소개
3.1 JSX란?
3.2 JSX의 역할
3.3 JSX의 장점
3.4 JSX 사용법
3.5 JSX 코드 작성해 보기
3.6 마치며
4장 엘리먼트 렌더링
4.1 엘리먼트에 대해 알아보기
4.2 엘리먼트 렌더링하기
4.3 렌더링된 엘리먼트 업데이트하기
4.4 시계 만들기
4.5 마치며
5장 컴포넌트와 Props
5.1 컴포넌트에 대해 알아보기
5.2 Props에 대해 알아보기
5.3 컴포넌트 만들기
5.4 컴포넌트 합성
5.5 컴포넌트 추출
5.6 댓글 컴포넌트 만들기
5.7 마치며
6장 State와 생명주기
6.1 State
6.2 생명주기에 대해 알아보기
6.3 State와 생명주기 함수 사용하기
6.4 마치며
7장 훅
7.1 훅이란 무엇인가?
7.2 useState
7.3 useEffect
7.4 useMemo
7.5 useCallback
7.6 useRef
7.7 훅의 규칙
7.8 나만의 훅 만들기
7.9 훅을 사용한 컴포넌트 개발
7.10 마치며
8장 이벤트 핸들링
8.1 이벤트 처리하기
8.2 Arguments 전달하기
8.3 클릭 이벤트 처리하기
8.4 마치며
9장 조건부 렌더링
9.1 조건부 렌더링이란?
9.2 엘리먼트 변수
9.3 인라인 조건
9.4 컴포넌트 렌더링 막기
9.5 로그인 여부를 나타내는 툴바 만들기
9.6 마치며
10장 리스트와 키
10.1 리스트와 키란 무엇인가?
10.2 여러 개의 컴포넌트 렌더링하기
10.3 기본적인 리스트 컴포넌트
10.4 리스트의 키에 대해 알아보기
10.5 출석부 출력하기
10.6 마치며
11장 폼
11.1 폼이란 무엇인가?
11.2 제어 컴포넌트
11.3 textarea 태그
11.4 select 태그
11.5 File input 태그
11.6 여러 개의 입력 다루기
11.7 Input Null Value
11.8 사용자 정보 입력받기
11.9 마치며
12장 State 끌어올리기
12.1 Shared State
12.2 하위 컴포넌트에서 State 공유하기
12.3 섭씨온도와 화씨온도 표시하기
12.4 마치며
13장 합성 vs. 상속
13.1 합성에 대해 알아보기
13.2 상속에 대해 알아보기
13.3 Card 컴포넌트 만들기
13.4 마치며
14장 컨텍스트
14.1 컨텍스트란 무엇인가?
14.2 언제 컨텍스트를 사용해야 할까?
14.3 컨텍스트를 사용하기 전에 고려할 점
14.4 컨텍스트 API
14.5 여러 개의 컨텍스트 사용하기
14.6 useContext
14.7 컨텍스트를 사용하여 테마 변경 기능 만들기
14.8 마치며
15장 스타일링
15.1 CSS
15.2 styled-components
15.3 styled-components를 사용하여 스타일링해 보기
15.4 마치며
16장 미니 프로젝트_미니 블로그 만들기
16.1 미니 블로그 기획하기
16.2 프로젝트 생성하기
16.3 필요한 패키지 설치하기
16.4 주요 컴포넌트 구성하기
16.5 폴더 구성하기
16.6 UI 컴포넌트 구현하기
16.7 List 컴포넌트 구현하기
부록 리액트 18 소개
A.1 자동 배칭
A.2 트랜지션
A.3 서스펜스
A.4 클라이언트와 서버 렌더링 API 업데이트
A.5 새로운 Strict 모드 작동 방식
A.6 새로 추가된 훅들
추천사
이민규 ((주)엠케이랩스 대표 / StarUML 개발자)
리액트가 웹 프런트엔드 분야에서 사실상 하나의 표준으로 자리 잡으면서 배우고자 하는 사람
들이 많이 늘어나고 있습니다. 이 책은 처음 리액트를 배우려는 독자에게 매우 적합합니다. 처음부터 단계별로 따라 하다 보면 어느새 리액트를 자유자재로 활용할 수 있는 단계에 도달하게 될 것입니다. 리액트 세계에 입문하는 것을 주저하고 있다면 이 책을 통해 리액트를 시작해 보기 바랍니다.
김유민 (Take App 창업자 / 전 페이스북 엔지니어링 매니저)
리액트 개발을 시작하거나 다시 도전하는 독자에게 추천합니다. 개발 환경 설정부터 현업에서 쓸 수 있는 개발 팁 그리고 최신 트렌드까지 배울 수 있습니다. 리액트의 중요한 개념을 모두 다루고 있고 장별로 요점 정리가 잘 되어 있어서 코딩 인터뷰를 보러 가기 전에 빠르게 복습하기에도 좋을 것 같습니다. 다년간 현업에서의 경험을 기반으로 한 저자의 현실적인 조언과 내공이 돋보입니다.
장래영 (비햅틱스 소프트웨어 엔지니어)
어떤 기술을 잘 가르치면서 개발에도 능숙한 저자가 쓴 책을 찾기란 생각보다 쉽지 않습니다. 상용 서비스 개발, 오픈소스 프로젝트 활동, 강의, 멘토링 등 다양한 분야에서 활발하게 활동하고 있는 저자의 책이므로 리액트를 처음 시작하는 독자에게 좋은 지침이 될 것이라 믿어 의심치 않습니다.
장영재 (비바리퍼블리카 프런트엔드 엔지니어)
리액트를 이용해 프런트엔드 개발자로서 첫발을 내딛고자 하는 독자에게 추천하고 싶은 훌륭한 안내서입니다. 빠르게 리액트 개발을 시작할 수 있도록 많이 쓰지 않는 내용은 과감히 제외하고 컴포넌트와 State, 훅, 이벤트 핸들링 등 필수적으로 알아야 할 내용을 압축해서 설명합니다. 중간중간 독자가 궁금해할 부분도 따로 친절하게 알려줍니다. 또한 장마다 다양한 실습 예제와 깔끔하게 정리된 요약을 제공하여 앞서 배운 내용을 제대로 이해하고 있는지 확인할 수 있습니다. 리액트 개발의 문턱이 높게 느껴져 망설이고 있다면 이 책으로 도전해 보세요.
강지현 ((주)맘편한세상 공동 창업자 / 백엔드 엔지니어)
HTML, CSS, 자바스크립트와 같은 필수 지식을 거쳐 리액트가 무엇이고 어떻게 동작하는지, 왜 사용하는지를 쉽게 풀어 썼습니다. 또한 입문자에게는 다소 어렵게 느껴질 수 있는 조건부 렌더링이나 리스트 렌더링, 리액트 훅에 대한 부분도 매우 쉽게 설명하고 있습니다. 각 장은 개념을 익히는 부분과 실습으로 나누어져 있는데 앞에서 배운 내용이 잘 이해되지 않는다면 실습을 먼저 해 보면 감을 잡을 수 있을 것입니다. 전반적으로 부담 없이 따라갈 수 있어 리액트 개발을 처음 시작하는 독자에게 강력히 추천합니다.
이유번 ((주)딥네츄럴 디자인 디렉터)
비 개발자가 읽어도 쉽게 이해할 수 있는 예제와 친절한 설명이 돋보입니다. 특히 비 개발자에게
익숙하지 않은 개발 환경 구축 방법도 자세히 알려 줍니다. HTML과 CSS에 대한 배경지식을
어느 정도 가지고 있는 독자라면 이 책을 통해 리액트의 매력에 흠뻑 빠질 수 있을 것입니다.
또한 지금과는 다른 제품을 구상할 수 있는 기회도 얻을 수 있다고 생각합니다. 개발자와 함께
협업하는 디자이너 또는 기획자도 이 책을 보면 많은 도움을 얻을 수 있을 것입니다.
강경완 ((주)우아한형제들 안드로이드 개발자)
이 책은 간단하지만 실용적인 예제로 리액트를 쉽게 알려 줍니다. 친절한 기본 개념 설명에 더해 다양한 실습과 알찬 프로젝트도 담고 있어 재미있게 리액트 공부를 할 수 있습니다. 웹 개발 지식이 없더라도 차근차근 실습을 따라 하다 보면 자연스럽게 리액트의 역할을 이해할 수 있을 것입니다. 리액트를 처음 시작하는 개발자에게 단연 최고의 책이라고 생각합니다.
전웅 ((주)아씨오 소프트웨어 엔지니어)
이제 리액트는 웹은 물론 데스크톱과 모바일 앱 제작에도 쓰이는 강력한 라이브러리로 자리 잡았습니다. 하지만 빠르게 발전을 거듭해 온 만큼 리액트 관련 자료는 방대하고 파편화되어 있어 처음 접할 때 큰 어려움을 겪기 마련입니다. 이 책에는 긴 시간 리액트 프로젝트를 진행한 저자의 경험이 녹아 있으며, 리액트를 소화하기 위해 반드시 알아야 하는 기본 개념부터 실습 프로젝트까지 차곡차곡 담겨 있습니다. 물 흐르듯 이어지는 설명을 따라가다 보면 어느새 리액트를 소화하고, 그 매력에 빠진 자신을 발견할 수 있을 것입니다.
최신 버전의 플러터 & Dart 핵심 문법 익힌 후 6가지 앱과 가지 웹을 제작해보고, RiverPod를 사용하여 상태 관리 방법 등 고급 기술도 자세하게 설명하였다!
이 책의 핵심 구성은 플러터 & 다트 핵심 문법을 익힌 후 스토어 앱, 레시피 앱, 프로필 앱, 로그인 앱, 쇼핑카트 앱, 모두의마켓 앱 등 6가지 모바일 앱을 만들고, 모두의숙소 웹 플러터 웹 페이지를 만들어본다. 또한 사진 관리 앱, 모두의블로그 앱, 상태 관리 앱을 만들고 RiverPod 상태 관리와 카메라를 제어해 볼 수 있다.
이 책을 통해 배우는 내용은 다음과 같다.
- 최신 버전의 플러터 & 다트 핵심 문법을 알기 쉽게 이해할 수 있다.
- 다양한 휴대폰 앱(App) UI를 만들어 본다.
- 컴포넌트화해서 제사용 가능한 위젯을 만들고, 유지보수에 용이하게 코드를 작성할 수 있다.
- 플러터로 웹(Web)을 만들어 본다.
- 유명한 어플을 클론 코딩하여 만들 수 있다.
- 카메라를 제어해볼 수 있다.
- API 서버와 JWT 인증 방식으로 통신하는 방식을 배울 수 있어요. 이를 통해 실무에서 백엔드 개발자와 협업해보는 간접 체험해 볼 수 있다.
- Riverpod를 사용하여 상태관리 방법을 배울 수 있다. 그리고 Riverpod를 사용하여 MVVM 패턴을 사용하여 앱을 효과적으로 만들어 볼 수 있다.
- 플러터의 가장 많이 사용하는 유형의 위젯만을 골라서 수록되어 있고, 가장 많이 사용되는 핵심 위젯을 모아서 공부해볼 수 있다.
목차
CHAPTER 01 플러터 이해하기
01_ 1 플러터란?
01_ 2 플러터의 특징
01_ 3 Dart 언어의 특징
01_ 4 지금 당장 앱을 만들어야 한다면?
01_ 5 Skia 엔진
01_ 6 AOT와 JIT 지원
01_ 7 Swift UI와 Android JetPack Compose
01- 8 플러터 아키텍처
01_ 9 플러터 버전별 차이점
CHAPTER 02 플러터 시작하기
02_ 1 Flutter SDK 설치하기
Flutter SDK 다운로드
Flutter SDK 압축 해제 및 폴더 설정
Flutter 환경변수 설정
02_ 2 안드로이드 스튜디오 설치하기
안드로이드 스튜디오 다운로드
안드로이드 스튜디오 설치하기
Flutter, Dart 플러그인 설치
Flutter 프로젝트 생성하기
Flutter Doctor
버전 확인 해보기
02_ 3 안드로이드 스튜디오 환경 설정
자동정렬 설정
글자 크기 및 폰트 설정
02_ 4 Flutter 에뮬레이터로 fist_app 프로젝트 실행하기
02_ 5 Hot Reload 체험해보기
CHAPTER 03 Dart 문법 익히기
03_ 1 DartPad 사용해보기
DartPad 사이트 접속하기
Flutter로 앱 코딩하기
순수Dart 언어 작성하기
03_ 2 Dart 변수
변수
타입 확인
타입 추론
03_ 3 연산자 알아보기
산술 연산자
비교 연산자
논리 연산자
03_ 4 조건문
if문
삼항 연산자
null 대체 연산자
03_ 5 함수
함수
익명함수와 람다식
03_ 6 클래스
클래스란?
객체(Object)란
객체 지향 프로그래밍
생성자
선택적 매개변수
cascade 연산자
03_ 7 dart null safetye
dart Null Safety 뭘까?
null check 연산자와 null 병합 연산자
null 억제 연산자 또는 null assert 연산자
late 키워드에 대해 알아 보자
03_ 8 상속
다형성
슈퍼(super) 키워드
final 키워드와 이니셜 라이져(:) 키워드
03_ 9 Mixin
03_ 10 추상 클래스
추상 클래스란?
03_ 11 컬렉션
List
Map
Set
03_ 12 반복문
for문
map 함수
where 연산자
스프레드 연산자
03_ 13 final과 const
CHAPTER 04 스토어 앱 만들기
04_ 1 스토어 앱 구조보기
화면 구조보기
MaterialApp vs CupertinoApp
Scaffold
필요한 위젯 살펴보기
플러터 프로젝트 생성하기
04_ 2 스토어 앱 뼈대 만들기
04_ 3 스토어 앱 만들어보기
기본 코드 작성하기
Column 위젯
Row 위젯
Text 위젯
SafeArea 위젯
Text 위젯의 Style 속성
Open Flutter Devtools
Spacer 위젯
Debug 배너 해제
Padding 위젯
Image 위젯
Expanded 위젯 - Column 방향
SizedBox 위젯
CHAPTER 05 레시피 앱 만들기
05_ 1 레시피 앱 구조보기
화면 구조보기
필요한 위젯 살펴보기
플러터 프로젝트 생성하기
05_ 2 레시피 앱 뼈대 구성하기
05_ 3 레시피 앱 만들어보기
기본 코드 작성하기
AppBar 위젯의 action 속성에 Icon 위젯 추가하기
RecipeTitle 커스텀 위젯 만들기
Theme에 Font 적용하기
Container 위젯을 활용한 RecipeMenu 커스텀 위젯 만들기
재사용 가능한 레시피 리스트 아이템 만들기 - 클래스 생성화 활용
ListView 위젯을 활용하여 세로 스크롤 달기
AspectRatio로 이미지 비율 정하기
ClipRRect 위젯으로 이미지 모서리에 곡선 주기
CHAPTER 06 프로필 앱 만들기
06_ 1 레시피 앱 구조보기
화면 구조보기
필요한 위젯 살펴보기
플러터 프로젝트 생성하기
06_ 2 프로필 앱 뼈대 구성하기
프로젝트 구조 세팅하기
기본 코드 작성하기
06_ 3 프로필 앱 위젯 구성하기
AppBar 위젯과 Scaffold의 endDrawer 속성 활용하기
CircleAvatar 위젯
Column 위젯의 CrossAxisAligment 속성 활용하기
재사용 가능한 함수 만들기
InkWell 위젯을 사용하여 ProfileButtons 클래스 만들기
TabBar 위젯과 TabBarView 위젯 사용하기
GridView 위젯과 Image.network
CHAPTER 07 로그인 앱 만들기
07_ 1 로그인 앱 구조 살펴보기
화면 구조보기
필요한 위젯 살펴보기
플러터 프로젝트 생성하기
07_ 2 로그인 앱 뼈대 작성하기
프로젝트 구조 세팅하기
기본 코드 작성하기 - 화면 이동을 위한 Routes
07_ 3 LoginPage 위젯 구성하기
ListView 위젯으로 전체 구성하기
SvgPicture 라이브러리로 Logo 위젯 만들기
TextFormField 위젯 만들기
Form 위젯 만들기
Form 위젯에 Theme를 적용한 TextButton 추가하기
Navigator 화면 이동하기
Form 위젯 유효성(validation) 검사하기
07_ 4 HomePage 위젯 구성하기
home_page.dart 코드 완성하기
CHAPTER 08 쇼핑카드 앱 만들기
08_ 1 쇼핑카트 앱 구조보기
화면 구조보기
필요한 위젯 살펴보기
플러터 프로젝트 생성하기
08_ 2 플러터 상태 관리 StatefulWidget
StatefulWidget 이란?
StatefulWidget과 StatelessWidget의 차이
위젯 트리
StatefulWidget 빌드 흐름
BuildContext 분리하기
08_ 3 쇼핑카드 앱 뼈대 작성하기
프로젝트 구조 세팅하기
기본 코드 작성하기
08_ 4 쇼핑카드 앱 만들어보기
AppBar 만들기
쇼핑카드 헤더 만들기 - setState() 함수
쇼핑카드 디테일 만들기 - Stack 위젯과 Positioned 위젯
쇼핑카드 디테일 만들기 - CupertinoAlertDialog 위젯
CHAPTER 09 모두의숙소 웹 만들기
09_ 1 모두의숙소 웹 구조 살펴보기
화면 구조보기
플러터 프로젝트 생성하기
09_ 2 모두의숙소 웹 뼈대 작성하기
프로젝트 구조 세팅하기
기본 코드 작성하기
09_ 3 모두의숙소 웹 만들어보기
헤더에 AppBar 만들기
헤더에 Form에 추가할 CommonFormField 만들기
헤더에 Form 만들기
바디에 Banner 만들기
바디Popular에 추가할 HomeBodyPopularltem 만들기
바디에 Popular 완성하기
MediaQuery를 활용한 HomeHeaderForm 가운데 정렬
안드로이드 에뮬레이터로 실행해보기
CHAPTER 10 모두의마켓 앱 만들기
10_ 1 앱 뼈대 만들기
폴더 및 파일 만들기
pubspec.yaml 파일 설정하기
main_screens.dart 기본 코드 작성
앱 테마 설정하기
main.dart 파일 완성하기
10_ 2 메인화면 만들기
MainScreens 위젯 기본 코드 작성하기
IndexedStack의 하위 위젯 만들기
MainScreens 위젯 완성하기
10 _ 3 홈 화면 만들기
AppBar 만들기
화면에 사용할 샘플 데이터 만들기
독립된 파일로 위젯 만들기
HomeScreen 위젯 완성하기
10_ 4 나의 당근 화면 만들기
나의 당근 화면 기본 코드 입력하기
나의 당근 화면 Header 위젯 만들기
모델 클래스 만들기
하단 Card 메뉴 위젯 만들기
MyCarrotScreen 위젯 완성하기
10_ 5 채팅화면 만들기
모델 클래스 및 샘플 데이터 만들기
재사용 위젯 만들기
CarttingScreen 위젯 기본 코드 입력하기
ChatContainer 위젯 만들기
CarttingsScreen 위젯 완성하기
10_ 6 동네생활 화면 만들기
모델 클래스 및 샘플 데이터 만들기
NeighborhoodLifeScreen 위젯 기본 코드 입력하기
LifeHeader 위젯 만들기
LifeBody 위젯 만들기
NeighborhoodLifeScreen 위젯 완성하기
10_ 7 내 근처 화면 만들기
모델 클래스 및 샘플 데이터 만들기
NearMeScreen 위젯 기본 코드 입력하기
TextFilleld 위젯 만들기
수평 방향으로 스크롤 되는 위젯 만들기
Wrap 위젯 사용해 보기
Storeltem 위젯 만들기
NearMeScreen 위젯 완성하기
CHAPTER 11 사진 관리 앱 만들기 : 카메라 제어하기
11_ 1 사진 촬영 저장 어플 만들기
플러터에서 카메라를 제어하는 방법
새로운 프로젝트 생성하기
안드로이드 권한 부여하기
minSdkVersion 설정하기
필요한 패키지 추가하기
어플리케이션 구현하기
애플리케이션에서 실행하기
11_ 2 사진 촬영 저장 및 불러오기 어플 만들기
새로운 프로젝트 생성하기
안드로이드 권한 부여하기
필요한 패키지 추가하기
어플리케이션 구현하기
애플리케이션에서 실행하기
CHAPTER 12 상태 관리 앱 만들기 : RiverPod
12_ 1 RiverPod 이란?
StatefulWidget vs RiverPod
12_ 2 Provider
프로젝트 실행 화면
프로젝트 생성
실습 코드 작성
12_ 3 StateNotifierProvier
프로젝트 실행 화면
프로젝트 생성
실습 코드 작성
CHAPTER 13 모두의 블로그 앱 만들기 : RiverPod
13_ 1 모두의 블로그 앱 구조 살펴보기
13_ 2 플러터 프로젝트 생성하기
13_ 3 서버 실행 및 테스트하기
서버 실행하기
서버 통신 테스트하기
13_ 4 PostMan 설치 및 실행하기
13_ 5 API 문서 분석하기
공통코드
회원가입
로그인
게시글 목록보기
게시글 한건보기
게시글 쓰기
게시글 수정하기
게시글 삭제하기
자동 로그인을 위한 토큰 검증하기
13_ 6 서버와 어플리케이션 연동하기
프로젝트 뼈대 만들기
dio 라이브러리 세팅하기
모델 만들기
요청과 응답의 데이터를 위한 DTO 만들기
데이터 통신을 위한 Repository 만들기
로그인 구현하기
회원가입 기능 구현하기
게시물 목록 불러오기 통신 구현하기
게시물 상세 불러오기 기능 구현하기
게시물 작성 기능 구현하기
게시물 삭제 기능 구현하기
게시물 수정 기능 구현하기
13_ 7 정리
출판사 서평
다양한 앱 UI를 직접 만들면서 플러터를 자연스럽게 배울 수 있다!
플러터 개발 환경 구축과 다트 핵심 문법 위주로 설명하여 문법에 대한 부담을 확 줄였다. 그 대신 실제 상용 앱의 UI를 클론코딩으로 직접 만들면서 자연스럽게 플러터를 배울 수 있게 과정별로 상세히 설명하였다.
테슬라 주식, 빌보드 차트 등 16개의 현실 데이터와 115개의 예제로 판다스의 기본을 확실히 익히자!
이미 1만여 명의 독자가 선택한 《Do it! 데이터 분석을 위한 판다스》가 파이썬 3.11.X 버전과 판다스 2.X 버전에 맞춰 개정하였다. 기존 판보다 100쪽 이상 증보되어 더 자세하고 친절하다. 파이썬 기초를 뗐다면 이 책으로 판다스를 공부하기 어렵지 않다. 이 책은 판다스의 주요 용어, 원리와 개념은 물론, 넘파이, 맷플롯립이나 시본, 시계열 데이터 등 파이썬 데이터 분석의 기본기를 익힐 수 있다. 이와 더불어 과학, 경제, 종교, 엔터테인먼트, 의학, 사회 등 다양한 분야의 현실 데이터셋을 활용한 판다스와 데이터 분석 실습 예제 115개로 실무 감각을 키울 수 있다는 점도 특징이다.
작가정보
저자(글) 다니엘 첸
인물정보
프로그래머
(Daniel Y. Chen)
2013년부터 소프트웨어 카펜트리(Software Carpentry)에서 지금까지 데이터 분석 강사와 멘토링 활동을 하고 있습니다. 그뿐만 아니라 2016년부터는 매년 국제 파이썬 커뮤니티인 사이파이(SciPy)에서 판다스 강의를 진행하고 있습니다.
인물정보
번역가/통역사>영어 프로그래머
자연어 처리 연구를 진행하며 챗봇을 개발하는 평범한 개발자입니다. 새로운 분야나 지식을 접하고 공부하기를 좋아하고 학습과 지식 공유를 목표로 번역 활동을 하고 있습니다. 지금까지 《행동 데이터 분석》, 《판다스 인 액션》, 《자바 코딩 인터뷰 완벽 가이드》, 《엑셀, R, 파이썬으로 시작하는 데이터 분석》 등을 번역했습니다.
목차
01 판다스 실습 환경 준비하기
__01-1 아나콘다 설치하기
__01-2 판다스 실습 준비하기
__01-3 안녕? 주피터 노트북!
__01-4 파이썬 패키지 관리자 pip 알아보기
02 판다스 시작하기
__02-1 판다스가 왜 필요할까?
______ 데이터프레임과 시리즈
__02-2 데이터셋 불러오기
______ 데이터 분석은 데이터셋 불러오기부터
__02-3 데이터 추출하기
______ 열 데이터 추출하기
______ 행 데이터 추출하기
______ loc와 iloc로 데이터 추출하기
______ 행과 열 함께 지정하여 추출하기
__02-4 기초 통계 계산하기
______ 그룹화한 데이터의 평균 구하기
______ 그룹화한 데이터 개수 세기
__02-5 데이터를 그래프로 표현하려면?
03 판다스 자료구조 살펴보기
__03-1 나만의 데이터 만들기
______ 시리즈와 데이터프레임 만들기
__03-2 시리즈 다루기
______ 시리즈의 keys() 메서드
______ 시리즈와 ndarray
______ 시리즈와 불리언
______ 시리즈와 브로드캐스팅
__03-3 데이터프레임 다루기
______ 데이터프레임의 구성
______ 데이터프레임과 불리언 추출
______ 데이터프레임과 브로드캐스팅
__03-4 시리즈와 데이터프레임 데이터 변환하기
__03-5 데이터 저장하고 불러오기
______ 피클로 저장하고 불러오기
______ CSV와 TSV 파일로 저장하고 불러오기
______ 엑셀로 저장하기
______ 다양한 형식으로 저장하기
______ 다양한 데이터 저장 유형
04 그래프 그리기
__04-1 데이터 시각화란?
__04-2 matplotlib 라이브러리란?
______ 그림 영역과 하위 그래프 이해하기
______ 그래프 구성 요소 이해하기
__04-3 matplotlib으로 그래프 그리기
______ 일변량 그래프 그리기
______ 이변량 그래프 그리기
______ 다변량 그래프 그리기
__04-4 seaborn으로 그래프 그리기
______ 다양한 그래프 그려 보기
______ seaborn 스타일 알아보기
______ seaborn 공식 문서 읽는 방법
__04-5 판다스로 그래프 그리기
05 깔끔한 데이터 만들기
__05-1 깔끔한 데이터란?
__05-2 열 이름이 값일 때
______ 하나의 열만 남기기
______ 여러 개의 열 남기기
__05-3 열 이름에 변수가 여러 개일 때
______ 열 이름이 여러 가지 뜻일 때
______ 열 이름 분할하고 새로운 열로 할당하기
______ 한 번에 분할하고 합치기
__05-4 변수가 행과 열 모두에 있을 때
06 apply() 메서드로 함수 적용하기
__06-1 간단한 함수 만들기
__06-2 apply() 메서드 사용하기
______ 시리즈에 함수 적용하기
______ 데이터프레임에 함수 적용하기
__06-3 람다 함수 사용하기
__06-4 벡터화된 함수 사용하기
______ 넘파이와 넘바로 벡터화하기
07 데이터 결합하고 분해하기
__07-1 데이터 묶어 분석하기
__07-2 데이터 연결하기
______ 데이터프레임 살펴보기
______ 행 연결하기
______ 열 연결하기
______ 인덱스나 열 이름이 다른 데이터 연결하기
__07-3 분할된 데이터 연결하기
__07-4 여러 데이터셋 병합하기
__07-5 데이터 정규화하기
08 그룹으로 묶어 연산하기
__08-1 데이터 집계하기
______ groupby() 메서드와 함께 사용하는 집계 메서드
______ agg() 메서드와 groupby() 메서드 조합하기
______ 여러 개의 집계 함수 한 번에 사용하기
__08-2 데이터 변환하기
______ 표준점수 계산하기
______ 평균값으로 결측값 채우기
__08-3 원하는 데이터 걸러 내기
__08-4 그룹 객체 활용하기
______ 그룹 객체란?
__08-5 다중 인덱스 다루기
09 결측값 알아보기
__09-1 결측값이란?
__09-2 결측값은 왜 생길까?
______ 데이터를 불러올 때 생기는 결측값
______ 데이터를 연결할 때 생기는 결측값
______ 직접 입력한 결측값
______ 인덱스를 다시 설정할 때 생기는 결측값
__09-3 결측값 다루기
______ 결측값 처리하기
______ 결측값이 있는 데이터 계산하기
__09-4 판다스 내장 NA 결측값 살펴보기
10 자료형 더 알아보기
__10-1 자료형 살펴보기
__10-2 자료형 변환하기
__10-3 범주형 데이터 알아보기
______ 범주형 데이터 다루기
11 문자열 처리하기
__11-1 문자열 다루기
______ 인덱스로 문자열 추출하기
______ 슬라이싱 구문으로 마지막 문자 추출하기
__11-2 자주 사용하는 문자열 메서드
__11-3 문자열 메서드 더 알아보기
__11-4 문자열 포매팅 알아보기
__11-5 정규식으로 문자열 처리에 날개 달기
______ 정규식이란?
______ compile() 함수
__11-6 regex 라이브러리 활용하기
12 시계열 데이터 알아보기
__12-1 datetime 객체 활용하기
__12-2 datetime으로 변환하기
__12-3 시계열 데이터 불러오기
__12-4 시간 정보 추출하기
__12-5 시간 간격 계산하기
__12-6 datetime 객체의 메서드 활용하기
__12-7 주식 데이터 다루기
__12-8 시간별 데이터 추출하기
__12-9 시간 범위 다루기
______ 시간 범위의 주기 설정하기
__12-10 열 방향으로 값 옮기기
__12-11 시간 주기 변경하기
__12-12 시간대 다루기
__12-13 시계열 데이터 다루는 방법 더 알아보기
찾아보기
출판사 서평
이 책의 주요 내용
ㆍ 판다스로 깔끔한 데이터셋을 만들어 이를 결합, 그룹화, 병합, 분할 등 데이터 분석의 기초를 설명
ㆍ 정규화, 조인, 그룹화 등 SQL 개념을 이용하여 데이터를 다루는 방법을 소개
ㆍ 맷플롯립, 시본 등을 활용하여 데이터 시각화의 기본인 그래프를 그리는 방법을 안내
ㆍ 빌보드 차트, 에볼라 및 인플루엔자 데이터셋, 날씨 데이터셋, 은행 정보 데이터셋, 주식 데이터셋 등 현실 데이터를 활용한 판다스 예제로 실습 구성
수많은 파이썬 라이브러리 가운데 ‘판다스’를 왜 알아야 할까?
데이터 분석 전문가로 가는 출발점에 판다스가 있습니다!
파이썬은 데이터 분석 분야에서 가장 많이 활용되고 있습니다. 판다스는 데이터 분석 라이브러리 가운데 활용도가 가장 높은 파이썬 라이브러리입니다. 데이터 분석과 관련한 다른 파이썬 라이브러리가 계속 생겨나지만 거의 대부분 판다스에 의존하고 있으니 판다스는 기본 상식처럼 알아 두어야 합니다. 이러한 판다스를 대체할 도구는 당분간 찾기 어려울 것입니다.
R? 파이썬? 엑셀? 대체 뭘로 데이터 분석을 시작해야 돼?
판다스에 입문해 이 고민을 해결해 보세요!
R의 장점을 파이썬으로 가지고 올 수 있었던 것은 바로 판다스 덕분입니다. R에서 파이썬으로 분석 방법을 바꾸고 싶다면 판다스를 시작하세요! 또한 공공기관, 연구기관에서 사용하는 CSV, TSV 등 대량의 데이터 파일을 판다스로 다룰 수 있어 실무에서 의사결정을 할 때 기초 자료를 만드는 데 도움이 될 것입니다. 그동안 엑셀에서 규모가 큰 데이터를 분석할 때 컴퓨터가 버벅거린 경험이 있다면 파이썬 문법을 거의 몰라도 괜찮으니 이 책으로 판다스에 입문해 보세요. 이 책으로 공부하면 데이터 분석을 정말 쉽게 시작할 수 있습니다.
독학 교재로도, 스터디 교재로도 강추!
매일 2시간씩, 10일 공부해 판다스 기초를 정복해 보세요!
이 책으로 2시간씩 10일을 공부하면 파이썬을 거의 몰라도 판다스의 기초를 마스터할 수 있습니다. 특히 이 책은 원서에 없는 아나콘다, 주피터 노트북, pip과 같은 판다스 실습 환경을 구성하는 준비 과정을 따라 하기 쉽게 친절히 설명했습니다. 또한 날씨 관측 데이터, 주식 데이터, 빌보드 차트 등 다양한 데이터를 이용해 데이터 분석 작업 단위로 나눠 실습을 진행하므로 초보자도 겁먹지 않고 예제를 따라 할 수 있도록 구성했습니다. 파이썬이나 데이터 분석을 잘 안다면 5일 만에도 이 책을 정복할 수 있으니 도전해 보세요!
한 가지 더! 저자가 꼼꼼히 남긴 공식 문서를 꼭 활용하여 학습해 보세요
이 책 전반에 걸쳐 판다스 실습과 관련된 다양한 공식 문서 링크를 꼼꼼히 남겼습니다. 학습하다 궁금한 점이 있거나 판다스 함수나 메서드 등 자세한 내용을 알고 싶을 땐 반드시 이 링크를 따라 공식 문서를 확인해 보세요. 이 책과 공식 문서를 통해 판다스의 기본기를 갖추고 나서 데이터 분석 전문서나 강의에 도전한다면 데이터 분석 전문가로 거듭날 수 있어요!
그럼 이상으로 Do it! 데이터 분석을 위한 판다스 입문 책소개 포스팅을 마치겠습니다.
Do it! 데이터 분석을 위한 판다스 입문 책소개 포스팅은 제휴마케팅이 포함되어있습니다.
Event 2. PC 3대이상 구매시: 네스프레소 모멘토 100 20% 머신 할인 + 커피캡슐 최대 400개 + 디스펜서 1개 무상제공 파격혜택!
ThinkPad P1 Gen 6 (16″ Intel)
레노버
놀라운 성능, 멋진 비주얼
강력한 ISV 인증 16″ 모바일 워크스테이션
Intel vPro®13세대 Intel®Core™ 프로세서 탑재
전문가용 NVIDIA®추가 설치형 그래픽(옵션)
디스플레이 옵션에 공장 색상 보정 OLED 터치스크린 포함
향상된 액체 메탈 냉각 디자인으로 더 나은 성능 실현
고해상도 웹캠(프라이버시 셔터 포함) 및 사용자 감지 기능
신뢰할 수 있는 MIL-SPEC 표준 획득 및 ThinkShield 보안
형태와 기능의 조화
Lenovo ThinkPad P1 Gen 6 (16인치 Intel)는 형태와 기능의 완벽한 조화를 제공합니다. 감탄할 만한 디자인으로 만들어져 내부의 놀라운 성능을 가늠하기 어렵게 만듭니다. 최대 Intel vPro® 및 13세대 Intel® Core™ 프로세서와 NVIDIA® 전용 그래픽 옵션으로 뛰어난 성능을 자랑합니다.
무거운 작업량을 가볍게
독립 소프트웨어 공급업체(ISV)의 인증을 받은 Lenovo ThinkPad P1 Gen 6 (16인치 Intel)은 주요 애플리케이션의 효율적이고 원활한 사용을 제공하기 위해 테스트되었습니다. 이 모바일 워크스테이션을 사용하면 어디서 작업하든 비즈니스와 업계의 요구 사항을 충족시킬 수 있어 안심할 수 있습니다.
매혹적인 비주얼
넓은 16:10 화면 비율을 갖춘 ThinkPad P1 Gen 6 (16인치 Intel)은 품질과 타협하지 않은 제품으로 여러 작업 및 대규모 워크플로를 효율적으로 처리합니다. 또한, 반사 방지 및 TUV 저 블루 라이트 디스플레이 옵션을 포함한 여러 가지 디스플레이 옵션을 제공하여 더 선명하고 뚜렷한 이미지를 위한 OLED 터치스크린과 공장 색상 보정을 제공합니다.
전면과 후면을 동시에 촬영하는 웹캠
ThinkPad P1 Gen 6 (16인치 Intel)은 하이브리드 FHD 및 적외선 웹캠을 표준으로 탑재하여 모든 비디오 회의가 완벽한 화질로 이루어집니다. 또한 웹캠 셔터와 물체 감지 기능을 통해 개인 정보 보호를 강화할 수 있습니다. 또한 Windows Hello를 통해 빠르고 안전하게 로그인할 수 있습니다. 그리고 온라인 회의를 더욱 향상시키기 위해 하이브리드 5MP + 적외선 웹캠 옵션도 제공됩니다.
자유롭게 누리는 강력한 성능
어디서든 일해야 하고 부하가 많은 컴퓨팅 워크로드를 쉽게 처리해야 하는 사용자에게는 ThinkPad P1 Gen 6(16″ Intel)이 필수입니다. 수많은 초고속 메모리 및 고성능 스토리지를 비롯하여 뛰어난 WiFi 연결과 대용량 고속 충전 배터리가 특징입니다. 결과적으로 디자이너부터 건축가, VR/AR 사용자, 데이터 분석 전문가에 이르기까지 누구나 이동 중에도 진정한 성능과 기능을 누릴 수 있습니다.
생산성과 내구성의 만남
ThinkPad P1 Gen 6(16″ Intel) 모바일 워크스테이션은 사용자의 까다로운 요구를 충족하도록 설계되었습니다. 액체 유입 방지가 적용된 백라이트 키보드로 빠르고 부드럽게 입력해 보세요. 액체 메탈 디자인 및 증기 챔버는 최신 냉각 기능을 제공하여 성능을 한층 더 강화합니다. 또한 MIL-SPEC 인증을 획득하고 200가지 이상의 엄격한 레노버 품질 평가를 통과하여 어려운 환경에서도 안정성이 유지됩니다.
신뢰할 수 있는 보안
ThinkShield 하드웨어 및 소프트웨어 제품군은 ThinkPad P1 Gen 6(16″ Intel) 모바일 워크스테이션에 장치 및 주요 정보 보안을 모두 제공하는 완벽한 솔루션입니다. 기능으로는 데이터를 암호화하는 dTPM(discrete Trusted Platform Module)과 간편 원터치 로그인을 위한 생체 지문 리더기가 제공됩니다. 또한 필요한 경우 이전 시스템 설정으로 복원할 수 있는 자가 복구 BIOS라는 안전 장치가 마련되어 있습니다.
환경을 생각한 설계
지구를 생각하는 레노버의 다짐이 반영된 ThinkPad P1 Gen 6(16″ Intel) 모바일 워크스테이션은 재활용 플라스틱, 메탈 및 기타 소재로 제작되었습니다. 또한 제공되는 포장에는 플라스틱이 전혀 포함되지 않았으며, 90%가 바이오 기반 및 지속 가능한 산림 함유물 등 지속 가능한 방식으로 제작되었습니다.
그럼 이상으로 레노버 노트북 블랙프라이데이 할인코드 쿠폰 최대 30% 포스팅을 마치겠습니다.
레노버 노트북 블랙프라이데이 할인코드 쿠폰 최대 30% 포스팅은 제휴마케팅이 포함되어있습니다.