홍정모의 따라하며 배우는 C++
홍정모의 따라하며 배우는 C++
수강정보
(129개의 수강평)
2748명의 수강생
스킬태그 #C++
5개월 할부시
월 15,400원77,000원
지식공유자 : PP TREE
201회 수업 · 총 48시간 27분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 초급

이 강의는

만약 C++를 쉽게 배울 수 있다면 배우지 않을 이유가 있을까요? 성공한 프로그래머로써의 경력을 꿈꾸지만 지금은 당장 하루하루 마음이 초조할 뿐인 입문자 분들을 돕기 위해 친절하고 자세하게 설명해드리는 강의입니다. 초보로 시작하더라도 중급을 넘어 고급 프로그래머로 가는 길목에 들어서고 싶으시다면 최고의 디딤돌이 되어드리겠습니다. 여러분의 꿈을 응원합니다!

이런 걸 배워요

  • 현대적 C++ 프로그래밍

따라하며 배우는 C++

만약, 모던(modern) C++를 쉽게 배울 수 있다면 배우지 않을 이유가 있을까요? 지금 당장은 하루하루 마음이 초조하지만 마음 한구석에서는 성공한 프로그래머의 화려한 경력을 꿈꾸는 입문자들을 돕기 위해 친절하고 자세하게 설명해드리는 강의입니다. 여기저기 헤매지 마시고 '따배씨++'에서 지름길을 찾으세요. 타이핑조차 버거운 초보로 시작해서 중급을 넘어 고급 프로그래머로 향하는 길목에 당당히 들어서고 싶으시다면 든든한 디딤돌이 되어드리겠습니다. 당신의 꿈을 응원합니다!

공지사항

학생들의 강의 노트

 

 도움이 되는 분들

  • 뛰어난 프로그래밍 실력을 갖추고 싶은 초보들을 위한 강의입니다.
  • 최근 취업 인터뷰에 자주 등장하는 '모던 C++'의 중요 개념들을 충실히 다루고 있습니다.
  • 고소득 프로그래머, 미국 명문 대학원 진학, 미래기술 관련 전공 등을 꿈꾸신다면 꼭 봐두세요!

 강좌 특징

  • 입문자나 초보자 분들은 맨 앞에서부터 순서대로 보세요. 뒷 부분의 어려운 개념들을 쉽게 이해할 수 있도록 도와주는 힌트들이 앞부분 곳곳에서 손을 흔들고 있습니다.
  • 이론적인 설명은 최소한으로 줄이고 따라하다 보면 이해가 가는 라이브 코딩 위주로 진행됩니다.
  • 완강 후에는 '고전적 C++'과 '현대적 C++'을 모두 자연스럽게 습득하시게 됩니다.
  • 처음부터 모든 내용을 완벽히 이해하려고 스트레스 받으실 필요 없습니다. 예제 코드만 한 번씩 직접 실행 시켜보면서 쭉쭉 나아가다 보면 자신도 모르는 사이 놀라운 일들이 벌어집니다.
  • 유튜브에 중요한 질문답변 보강영상을 꾸준히 업데이트 중입니다.

참고 사항

  • 윈도우즈, Visual Studio 2017 Community로 진행합니다. 다른 OS와 다른 IDE로 공부하셔도 상관 없습니다. 다만, 호환성 문제는 도와드리지 못할 수도 있고 20장의 일부 내용은 Visual Studio에만 적용되기도 합니다.
  • 음질에 민감하신 분들은 구매전에 챕터별로 샘플 확인하세요. 자세한 내용은 이 글 참고하세요.
  • 모든 질문에 대해 여러분의 발전을 돕는 최선의 답을 드리기 위해 항상 노력하고 있습니다. 그러나, 본 강의의 가격에 질의응답이나 개인상담 등의 서비스까지 포함된 것은 아닙니다. 오해 없으시길 바랍니다.
  • 질문하실 때는 몇 분 몇 초에서 보신 내용인지를 함께 적어주세요.
  • 강의의 가격은 예고없이 인상될 수도 있습니다.

FAQ

  • 복습하기 좋은 교재가 있을까요?
  • pointer를 cout으로 출력할 때 편의상 10진수로 보기 위해 (int)my_ptr과 같이 integer로 캐스팅을 했는데 void pointer를 배우신 후에는 (void*)my_ptr 처럼 void pointer로 캐스팅하셔도 됩니다. 강의 중에 여러 번 언급한 내용이지만 띄엄띄엄 보시는 분들을 위한 부연 설명입니다.

 연관된 강좌

홍정모의 따라하며 배우는 C언어

따배씨++'의 성원에 힘입어 새롭게 개발된 C언어로 시작하는 프로그래밍 입문 강의 입니다.

게임 만들기 연습 문제 패키지

게임을 만들면서 객체지향 프로그래밍 연습을 하실 수 있습니다. 12장까지 공부하신 후 실제 적용 방법이 궁금하신 분들에게 추천합니다.

지식공유자 소개

홍정모 (유튜브, 링크트인, 인스타그램, 블로그

도움 되는 분들

  • 뛰어난 프로그래밍 실력을 갖추고 싶은 초보 프로그래머
  • C++ 언어를 공부하고 싶으신 분들

선수 지식

  • 컴퓨터의 작동원리와 C 언어 (유튜브 [따배씨] 검색)

교육과정

모두 펼치기 201 강의 48시간 27분
섹션 0. 시작해봅시다
8 강의 111 : 48
0.0 C++ 꼭 공부해야 할까?
10 : 07
0.1 프로그래밍 언어란
16 : 39
0.2 C, C++ 언어 소개
05 : 30
0.3 프로그래밍 과정 소개
08 : 44
0.4.0 통합개발환경의 기본적인 사용법 - 윈도우즈 비쥬얼 스튜디오
31 : 52
0.4.1 통합개발환경의 기본적인 사용법 - 윈도우즈 리눅스 코드블럭스
13 : 52
0.4.2 비쥬얼 스튜디오 솔루션, 프로젝트 관리
13 : 38
0.5 코딩하다 막혔을 때는?
11 : 26
섹션 1. C++의 기초적인 사용법
14 강의 207 : 37
1.1 프로그램의 구조
22 : 53
1.2 주석 comments
12 : 23
1.3 변수와의 첫 만남
26 : 52
1.4 입출력 스트림과의 첫 만남 cin, cout
16 : 35
1.5 함수와의 첫 만남
21 : 45
1.6 키워드와 식별자 이름짓기
18 : 25
1.7 지역 범위
10 : 38
1.8 연산자와의 첫 만남
08 : 47
1.9 기본적인 서식 맞추기
11 : 20
1.10 선언과 정의의 분리
09 : 34
1.11 헤더파일 만들기
11 : 29
1.12 헤더 가드가 필요한 이유
11 : 54
1.13 네임스페이스 (명칭 공간)
10 : 44
1.14 전처리기와의 첫 만남
14 : 18
섹션 2. 변수와 기본적인 자료형
9 강의 183 : 57
2.1 기본 자료형 소개
43 : 11
2.2 정수형 (Integers)
22 : 51
2.3 C++ 11 고정 너비 정수 (Fixed-width Integers)
03 : 57
2.4 무치형 (보이드, Void)
04 : 33
2.5 부동소수점수 floating point numbers
31 : 00
2.6 불리언 자료형과 조건문 if
20 : 11
2.7 문자형 char type
26 : 33
2.8 리터럴 상수 literal constants
13 : 32
2.9 심볼릭 상수 symbolic constants
18 : 09
섹션 3. 연산자들
9 강의 218 : 32
3.1 연산자 우선순위와 결합 법칙
18 : 20
3.2 산술 연산자 arithmetic operators
14 : 21
3.3 증감 연산자 increment decrement operators
11 : 48
3.4 sizeof, 쉼표 연산자, 조건부 연산자
22 : 00
3.5 관계 연산자 Relational Operators
19 : 21
3.6 논리 연산자 logical operators
28 : 29
3.7 이진수 Binary Numbers
38 : 55
3.8 비트단위 연산자 Bitwise Operators
26 : 40
3.9 비트 플래그, 비트 마스크 사용법 Bit flags, Bit masks
38 : 38
섹션 4. 변수 범위와 더 다양한 변수형
10 강의 189 : 22
4.1 지역 변수, 범위, 지속기간
15 : 59
4.2 전역 변수, 정적 변수, 내부 연결, 외부 연결
52 : 46
4.3 Using문과 모호성
10 : 39
4.4 auto 키워드와 자료형 추론
10 : 39
4.5 형변환 Type conversion
19 : 59
4.6 문자열 std string 소개
21 : 49
4.7 열거형 enumerated types
20 : 57
4.8 영역 제한 열거형 (열거형 클래스)
04 : 56
4.9 자료형에게 가명 붙여주기
09 : 34
4.10 구조체 struct
22 : 04
섹션 5. 흐름제어
10 강의 150 : 27
5.1 제어 흐름 개요 Control flow
06 : 28
5.2 조건문 if
29 : 15
5.3 switch-case
22 : 52
5.4 goto
06 : 51
5.5 반복문 while
20 : 58
5.6 반복문 do-while
03 : 54
5.7 반복문 for
16 : 39
5.8 break, continue
16 : 00
5.9 난수 만들기 random numbers
16 : 22
5.10 std::cin 더 잘 쓰기
11 : 08
섹션 6. 행렬, 문자열, 포인터, 참조
22 강의 288 : 22
6.1 배열 기초 [1 of 2] array
26 : 59
6.2 배열 기초 [2 of 2] array
15 : 08
6.3 배열과 반복문
12 : 52
6.4 배열과 선택 정렬 selection sort
18 : 54
6.5 정적 다차원 배열
12 : 13
6.6 C언어 스타일의 배열 문자열
17 : 07
6.7 포인터의 기본적인 사용법
26 : 49
6.7a 널 포인터 Null Pointer
07 : 49
6.8 포인터와 정적 배열
15 : 58
6.9 포인터 연산과 배열 인덱싱
12 : 48
6.10 C언어 스타일의 문자열 심볼릭 상수
08 : 36
6.11 메모리 동적 할당 new와 delete
20 : 35
6.12 동적 할당 배열
10 : 25
6.13 포인터와 const
09 : 51
6.14 참조 변수 reference variable
15 : 08
6.15 참조와 const
04 : 44
6.16 포인터와 참조의 멤버 선택
04 : 08
6.17 C++11 For-each 반복문
07 : 48
6.18 보이드 포인터
06 : 27
6.19 다중 포인터와 동적 다차원 배열
16 : 56
6.20 std::array 소개
09 : 45
6.21 std::vector 소개
07 : 22
섹션 7. 함수
16 강의 191 : 26
7.1 매개변수와 실인자의 구분
04 : 48
7.2 값에 의한 전달
05 : 59
7.3 참조에 의한 인수 전달
20 : 01
7.4 주소에 의한 인수 전달
13 : 27
7.5 다양한 반환 값들(값, 참조, 주소, 구조체, 튜플)
22 : 01
7.6 인라인 함수
06 : 04
7.7 함수 오버로딩
14 : 35
7.8 매개변수의 기본값
08 : 32
7.9 함수 포인터
18 : 37
7.10 스택과 힙 the stack and the heap
12 : 37
7.11 std vector를 스택처럼 사용하기
17 : 18
7.12 재귀적 함수 호출
15 : 09
7.13 방어적 프로그래밍의 개념
09 : 49
7.14 단언하기 assert
09 : 54
7.15 명령줄 인수 command line arguments
07 : 40
7.16 생략부호 Ellipsis
04 : 55
섹션 8. 객체지향의 기초
15 강의 196 : 37
8.1 객체지향 프로그래밍과 클래스
22 : 33
8.2 캡슐화, 접근 지정자, 접근 함수
20 : 51
8.3 생성자 Constructors
21 : 37
8.4 생성자 멤버 초기화 목록
11 : 26
8.5 위임 생성자
05 : 44
8.6 소멸자 destructor
13 : 28
8.7 this 포인터와 연쇄 호출
13 : 09
8.8 클래스 코드와 헤더 파일
10 : 33
8.9 클래스와 const
18 : 35
8.10 정적 멤버 변수
09 : 48
8.11 정적 멤버 함수
18 : 35
8.12 친구 함수와 클래스 friend
11 : 28
8.13 익명 객체
07 : 36
8.14 클래스 안에 포함된 자료형 nested types
03 : 31
8.15 실행 시간 측정하기
07 : 43
섹션 9. 연산자 오버로딩
12 강의 98 : 16
9.1 산술 연산자 오버로딩 하기
13 : 32
9.2 입출력 연산자 오버로딩 하기
10 : 28
9.3 단항 연산자 오버로딩 하기
05 : 21
9.4 비교 연산자 오버로딩 하기
06 : 37
9.5 증감 연산자 오버로딩 하기
05 : 53
9.6 첨자 연산자 오버로딩 하기
10 : 14
9.7 괄호 연산자 오버로딩과 함수 객체
03 : 07
9.8 형변환을 오버로딩 하기
04 : 33
9.9 복사 생성자, 복사 초기화 반환값 최적화
07 : 04
9.10 변환 생성자, explicit, delete
04 : 19
9.11 대입 연산자 오버로딩, 깊은 복사, 얕은 복사
20 : 29
9.12 이니셜라이져 리스트 initializer list
06 : 39
섹션 10. 객체들 사이의 관계에 대해
6 강의 80 : 20
10.1 객체들의 관계
07 : 19
10.2 구성 관계
24 : 48
10.3 집합 관계
20 : 43
10.4 제휴 관계
15 : 25
10.5 의존 관계
07 : 30
10.6 컨테이너 클래스
04 : 35
섹션 11. 상속
9 강의 112 : 13
11.1 상속의 기본 (1)
21 : 42
11.2 상속의 기본 (2)
32 : 00
11.3 유도된 클래스들의 생성 순서
16 : 49
11.4 유도된 클래스들의 생성과 초기화
10 : 08
11.5 상속과 접근 지정자
09 : 46
11.6 유도된 클래스에 새로운 기능 추가하기
03 : 39
11.7 상속받은 함수를 오버라이딩 하기
08 : 37
11.8 상속 받은 함수를 감추기
04 : 31
11.9 다중 상속
05 : 01
섹션 12. 가상 함수들
11 강의 89 : 53
12.1 다형성의 기본 개념
10 : 50
12.2 가상 함수와 다형성
14 : 31
12.3 override, final, 공변 반환값
08 : 35
12.4 가상 소멸자
04 : 53
12.5 동적 바인딩과 정적 바인딩
05 : 09
12.6 가상 (함수) 표
06 : 33
12.7 순수 가상 함수, 추상 기본 클래스, 인터페이스 클래스
12 : 22
12.8 가상 기본 클래스와 다이아몬드 상속 문제
03 : 52
12.9 객체 잘림과 reference wrapper
09 : 28
12.10 동적 형변환
09 : 03
12.11 유도 클래스에서 출력 연산자 사용하기
04 : 37
섹션 13. 템플릿
8 강의 70 : 25
13.1 함수 템플릿
13 : 19
13.2 클래스 템플릿
13 : 45
13.3 자료형이 아닌 템플릿 매개변수
06 : 29
13.4 함수 템플릿 특수화
11 : 11
13.5 클래스 템플릿 특수화
08 : 42
13.6 템플릿을 부분적으로 특수화하기
09 : 38
13.7 포인터에 대한 템플릿 특수화
02 : 44
13.8 멤버 함수를 한 번 더 템플릿화 하기
04 : 37
섹션 14. 예외 처리
6 강의 68 : 40
14.1 예외처리의 기본
18 : 38
14.2 예외처리와 스택 되감기
15 : 02
14.3 예외 클래스와 상속
13 : 03
14.4 exception 소개
10 : 29
14.5 함수 try
03 : 59
14.6 예외처리의 위험성과 단점
07 : 29
섹션 15. 의미론적 이동과 스마트 포인터
7 강의 105 : 31
15.1 이동의 의미와 스마트 포인터
25 : 06
15.2 오른쪽-값 참조
13 : 37
15.3 이동 생성자와 이동 대입
16 : 55
15.4 std::move
14 : 47
15.5 std::unique_ptr
20 : 39
15.6 std::shared_ptr
09 : 08
15.7 순환 의존성 문제와 std::weak_ptr
05 : 19
섹션 16. 표준 템플릿 라이브러리
3 강의 40 : 54
16.1 표준 템플릿 라이브러리, 컨테이너 소개
25 : 41
16.2 STL 반복자 소개
08 : 16
16.3 STL 알고리즘 소개
06 : 57
섹션 17. std::string 문자열 클래스
5 강의 54 : 15
17.1 std::string과 std::wstring
08 : 21
17.2 std::string의 여러가지 생성자들과 형변환
20 : 15
17.3 std::string의 길이와 용량
06 : 17
17.4 문자 접근하기와 배열로의 변환
10 : 53
17.5 string 대입, 교환, 덧붙이기, 삽입
08 : 29
섹션 18. 입력과 출력
7 강의 104 : 32
18.1 istream으로 입력받기
21 : 15
18.2 ostream으로 출력하기
12 : 28
18.3 문자열 스트림
13 : 01
18.4 흐름 상태와 입력 유효성 검증
22 : 48
18.5 정규 표현식 소개
14 : 00
18.6 기본적인 파일 입출력
14 : 48
18.7 파일의 임의 위치 접근하기
06 : 12
섹션 19. 모던 C++필수 요소들
8 강의 184 : 08
19.1 람다 함수와 std::function std::bind, for_each
12 : 26
19.2 C++ 17 함수에서 여러 개의 리턴값 반환하기
07 : 32
19.3 std thread와 멀티쓰레딩 기초
37 : 50
19.4 레이스 컨디션, std::atomic, std::scoped_lock
17 : 43
19.5 작업 기반 비동기 프로그래밍
19 : 56
19.6 멀티쓰레딩 예제 (벡터 내적)
32 : 31
19.7 완벽한 전달과 std::forward
26 : 43
19.8 자료형 추론 auto와 decltype
29 : 27
섹션 20. 중급 프로그래머들의 상식
6 강의 160 : 14
20.1 비쥬얼 스튜디오로 프로파일링 하기
33 : 12
20.2 깃, 깃헙 시작하기 Git, Github
42 : 16
20.3 비쥬얼 스튜디오에서 깃헙 사용하기
24 : 53
20.4 Vcpkg 설치 방법
13 : 26
20.5 TCP IP 네트워킹 맛보기 - Boost.Asio Socket IOStream
32 : 21
20.6 외부 라이브러리 설치, 프로젝트 템플릿
14 : 06

공개 일자

2018년 10월 1일 (마지막 업데이트 일자 : 2019년 2월 10일)

수강 후기

5.0
129개의 수강평
default_profile.png
박성연 2019.02.03
지금까지 iostream 이외의 헤더파일들만 사용하다가 이제 iostream도 배우게 되어서 좋습니다.
default_profile.png
김태욱 2019.03.22
C++을 배우려면 따배씨++로 시작하는 게 최선, 최고의 선택입니다. 방대한 분량인데도 불구하고, 질적인 면에서 손색이 전혀 없는 명강의입니다. 강의가 시작된 이후에도 음질을 개선하려고 노력하시는 모습에서 프로그래머로써, 교육자로써의 꼼꼼함과 세심함이 엿보였습니다. 진입장벽이 높은 걸로 유명한 프로그래밍 언어인데도, 해 나갈 수 있도록 기본적인 설명이 풍부합니다. 게다가 질문에 대한 답변도 열심히 해주시기 때문에 중간에 포기하기가 더 힘듭니다. 강의 듣는 내내 마치 담임 교수님으로 부터 밀착 교육을 받는 느낌을 받았습니다. 전공자가 아니더라도, C++언어 뿐만 아니라 컴퓨터 공학에 대한 초기 인싸이트를 얻는데도 매우 훌륭한 강의라고 생각합니다. 별점 다섯 개가 아니라 거기다 별++을 주고 싶습니다. 다음에 이어지는 게임팩 강의도 너무나 기대됩니다. (유튜브 미래팩 강의도 열심히 듣고 있습니다~) 개인적으로 그림의 떡이었던 C++에 발 담가볼 수 있게 도와주셔서 감사하다는 인사를 전합니다.
image
neue zeal 8달 전
변수와의 첫 만남을 복습하는 것으로 완강을 했습니다. 기술적인 부분 뿐만 아니라, 자신감도 얻을 수 있습니다. 매 강의마다 "안녕하세요"로 시작해서 "감사합니다"로 끝납니다. 어느 한 강의에도 빠진 적이 없었던 거 같아요. 정성이 가득한 강의라고 생각합니다. 강의를 클릭했을 때 볼 수 있는 썸네일에서도 정성이 가득 담겨있음을 느낄 수 있었습니다. 썸네일이 내용을 분명하게 전달하여 썸네일만 보더라도 복습의 효과를 얻을 수 있습니다. 완강했을 때 뜨는 내용을 교수님께서 직접 작성하신 것 같은데 그 내용을 보고 감동을 받았습니다. 깊은 감사를 전합니다. 끝으로 제가 좋아하는 시로 마무리 할까 합니다. 변수와의 첫만남 강의를 보면서 이 시가 떠올랐습니다. (내가 그 메모리에 이름을 붙여주기 전에는 그는 다만 하나의 메모리에 지나지 않았다. ) 꽃 김춘수 내가 그의 이름을 불러 주기 전에는 그는 다만 하나의 몸짓에 지나지 않았다. 내가 그의 이름을 불러 주었을 때 그는 나에게로 와서 꽃이 되었다. 내가 그의 이름을 불러 준 것처럼 나의 이 빛깔과 향기(香氣)에 알맞는 누가 나의 이름을 불러다오. 그에게로 가서 나도 그의 꽃이 되고 싶다. 우리들은 모두 무엇이 되고 싶다. 너는 나에게 나는 너에게 잊혀지지 않는 하나의 의미가 되고 싶다.
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스