Thumbnail
BEST
개발 · 프로그래밍 프로그래밍 언어

독하게 시작하는 C 프로그래밍 대시보드

(4.9)
38개의 수강평 ∙  1,251명의 수강생
99,000원

월 19,800원

5개월 할부 시
지식공유자: 널널한 개발자
총 149개 수업 (28시간 58분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[프로그래밍 언어, 시스템] 강의입니다.

취미가 아닌 전문 개발자의 길을 가려는 분들을 위한 C언어 프로그래밍 강의입니다. 쓰고 독하게 배워서 달달한 길로 가고 싶은 분들에게 권합니다!

✍️
이런 걸
배워요!
C언어 문법
최소한의 컴퓨터 구조
포인터에 대한 확실한 이해

C언어 ‘제대로’ 하고 싶은 당신을 위한 
C언어 프로그래밍의 바이블! 

더 독하게 돌아왔습니다!
C언어 입문 스테디셀러 최신 개정 📖

『독하게 시작하는 C 프로그래밍』의 최신 개정판을 위한 강의입니다. 기존 책과 강의가 가진 특징을 그대로 계승합니다.

  • ✅ C언어 기초 문법부터 고급 프로그래밍 이론까지 전공자 수준으로 학습합니다.
  • ✅ 도구 사용 방법은 물론 제대로 메모리 디버깅을 할 수 있도록 지원합니다.
  • ✅ 취미나 교양이 아니라 전문 개발자를 희망하는 사람들이 꼭 알아야 할 이론과 기본 프로그래밍 기법을 배웁니다.

독하게 배워서 달게 쓰는 C언어
처음부터 제대로 알려드립니다.

전문 개발자로 취업을 희망하는 CS 비전공자

C언어에 대해 더 깊이 이해하고 싶은 CS 전공자

C언어 포인터 개념을 이해하는 데 어려움을 겪는 분

취업 시장에서 차별화된 경쟁력을 갖추고 싶은 누구나

혹시 여러분의 고민은 아닌가요?

IT 전문 개발자로 취업을 희망하는 분들의 상당수가 CS 전공 지식에 대한 부족을 호소합니다. 그러나 안타깝게도 대부분의 원인은 기본 이론을 제대로 공부하지 않았기 때문입니다.

다른 인기 프로그래밍 언어인 Java(자바)를 공부하고 있다면 어떨까요? Java를 공부하는 사람은 직접 메모리 관리를 하지 않기 때문에 편리할 수 있습니다. 하지만, 정작 면접에서 질문 받게 될 많은 이론들은 C언어의 포인터 때문에 발생하는 문제와 크게 다르지 않습니다.

해결 방법은 간단합니다. 처음부터 제대로 배우면 됩니다!


널널한 개발자와 함께하는
C언어 입문의 A to Z

💡 이 강의는 정말로 독하게 갑니다! 언어의 문법은 물론 컴퓨터 구조와 운영체제 이론 일부를 포함시켜 전문 C언어 개발자가 되기 위해 꼭 알아야 할 내용을 밀도 있게 다룹니다.

C를 배우기에 앞서 기본이 되는 컴퓨터 구조와 그에 따른 특징을 이해할 수 있습니다.

C언어를 비롯해 대부분의 프로그래밍 언어가 가지는 특징을 컴퓨터 구조와 결합해 이해할 수 있습니다. 따라서 응용 능력이 대폭 향상됩니다.

현존하는 대부분의 유명 프로그래밍 언어가 C언어 문법을 그대로 사용합니다. 앞으로 어떤 프로그래밍 언어를 다시 공부하더라도 쉽게 다가갈 수 있습니다.

많은 분들이 어려워하는 C언어의 포인터와 친해질 수 있으며, 무엇보다 문제가 발생하더라도 스스로 해결할 수 있는 강력한 디버깅 기법을 구사할 수 있습니다.


커리큘럼 미리보기 📚

강의는 크게 네 파트로 이루어집니다.

  • Part 1에서는 C언어를 배우기 전에 알아야 할 기본적인 CS 이론을 다룹니다.
  • Part 2에서는 개발 환경을 구축하고 C언어의 기본 문법 및 표준 입/출력 기법을 배웁니다.
  • Part 3에서는 기초 이론을 알고 있다는 가정 하에 수준 향상을 위한 프로그래밍 기법을 배웁니다.
  • 마지막 Part 4에서는 C언어의 고급 문법과 전문적인 이론들을 배웁니다.

입/출력 버퍼의 작동과 운영체제 구조

컴퓨터 구조로 알아보는 변수와 연산구

  • 함수 호출로 변화하는 Call stack을 추적하는 것은 물론 각종 디버깅 기법을 배울 수 있습니다.
  • 이를 바탕으로 높은 수준의 응용 프로그램을 직접 개발할 수 있습니다.

이 강의를 만든 
지식공유자는 👨‍💻

‘널널한 개발자’ 최호성입니다.

  • (모두가 싫어하는) 국내 최초 PC 방화벽 개발자
  • 1992년부터 C언어를 공부한 30년 묵은 C/C++ 개발자
  • 다수 국책과제 수행 경험자이자 15년 이상 개발 강의 경력을 함께 보유한 아저씨!
  • C언어 인기 입문서 『독하게 시작하는 C 프로그래밍』 저자

3만 명 이상이 구독하는 "널널한 개발자 TV" 유튜브 채널을 운영하고 있습니다. (바로가기)


Q&A 💬

Q. 프로그래밍을 처음 접하는 비전공자도 이 강의를 들을 수 있나요?

네, 들을 수 있습니다. 그러나 절대로 한 번에 다 이해 할 수 없으며 전체 학습 및 복습에 최소 2개월 이상 투자해야 합니다.

Q. 개발 환경은 꼭 윈도우로 맞추야 하나요?

네, 가급적 그렇게 하시기를 강력히 권합니다. 그렇지 않으면 메모리 변화 추적 등 핵심 이론에 대한 실습이 사실 상 불가능하기 때문입니다.

Q. 수강 전에 준비해야 할 것이 있나요?

'넓고 얕게 외워서 컴공 전공자 되기' 수업에서 다룬 내용들을 알고 있어야 합니다. 그 중 꼭 필요한 것들은 수업에서 다시 다루기는 합니다만 가급적 미리 학습하고 수강하시기를 권합니다.

Q. Java 개발자가 되려 하는데 이 수업이 도움이 될까요?

논란이 있을 수 있습니다만 결과적으로 도움이 된다고 말씀드릴 수 있습니다. Java의 참조형은 C++의 참조형과 흡사합니다. 동시에 C언어의 포인터와도 같습니다. Java는 언어 특성 상 메모리를 직접 관리하지 않을 뿐 메모리를 다루는 것은 같습니다.

Q. 이 강의를 들으면 취업에 유리할까요?

네, 유리합니다. C언어를 이 강의에서 다루는 수준만큼 이해한다면 절대 초보자가 아니라고 자신있게 말씀드릴 수 있습니다. 충분하지 않을 수는 있겠지만 확실한 차별성을 얻을 수 있습니다.

📢 실습 환경 및 유의사항 안내

C언어는 OS 및 하드웨어에 대해 직접적으로 의존하는 Native code입니다. 따라서 아래 실습 환경을 정확히 맞춰야 실습을 제대로 할 수 있습니다. 

  • Windows 11 64비트 OS (Windows 10 64비트 가능)
  • Microsoft Visual Studio 2022 Community (필수)
  • Microsoft Excel (사용 권장)
  • 상기 OS와 도구가 작동하는데 무리가 없는 하드웨어 (intel i5 + 16GB RAM 권장)
  • macOS 및 Linux 환경은 고려하지 않습니다.

수강생에게는 수업 자료 PDF 및 강의에서 쓰인 모든 예제 파일 일체를 제공합니다. 또한, 원활한 이해를 위해서는 강의 ‘넓고 얕게 외워서 컴공 전공자 되기’에 해당하는 내용을 이해하고 계셔야 합니다.

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
제대로 C언어를 배우고 싶은 분
이미 CS 전공자의 길을 가고 있는 분
차별화된 전문 개발자가 되기를 희망하는 분
📚
선수 지식,
필요할까요?
강의 "넓고 얕게 외워서 컴공 전공자 되기" 수준에 해당하는 지식

안녕하세요
널널한 개발자 입니다.
널널한 개발자의 썸네일

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^

 

커리큘럼 총 149 개 ˙ 28시간 58분의 수업
이 강의는 영상, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. 디지털 세계 (Part 1. C를 배우기 전에 알아야 할 것들)
섹션 2. 진법 변환
이미 아는 10진법 미리보기 03:38
2진수 16진수 변환 (인쇄용 흑백 강의자료 포함) 07:51
16진수 표기가 사용되는 예 08:52
섹션 3. C를 배우기 전 알아야 할 컴퓨터 구조
CPU와 메모리 미리보기 13:25
실행과 참조의 개념 10:07
CPU의 다른 이름 Machine 08:57
섹션 4. CPU 수준 자료형
자료형에 대한 이해 미리보기 07:27 상수와 변수 그리고 복잡성 미리보기 10:46
정수형 (예제파일 포함) 08:47
2진수 덧셈과 뺄셈 10:18
곱셈, 나눗셈, 시프트 그리고 하드웨어 손상 09:31
실수형 - 단정도, 배정도 09:53
부동소수점 오차 07:21
섹션 5. 코드 체계
컴퓨터가 글자를 말하는 방법(feat. ASCII) 미리보기 08:38
문자열에 대한 이해 05:45
가볍게 살피는 유니코드 03:49
섹션 6. 프로그래밍 언어 분류
저급어와 고급어 10:06
컴파일러 언어와 인터프리터 언어 10:26
섹션 7. 개발환경 구축 (Part 2 C 프로그래밍의 시작)
Win11기반 Visual Studio Community 2022 개발환경 설정 05:40
주요 단축키와 첫 번째 예제 작성 (feat. Hello world!) 미리보기 13:19
컴파일, 링크, 실행 07:59
VS 프로젝트 파일들에 대한 해설 11:49
섹션 8. C언어 기초 문법
섹션 9. 표준 입/출력
콘솔(Console)이란 무엇일까? 미리보기 23:30
문자 입/출력 23:39
문자열 입/출력 미리보기 25:31
gets() 함수와 보안 결함 (feat. 시큐어 코딩) 12:13
형식 문자와 이스케이프 시퀀스 11:19
실수 출력 03:39
문자, 정수 입력과 개행문자 제거 26:52
형식 문자 기반 문자열 입력 06:10
[필수 실습 문제] 나이와 이름 입/출력 하기 06:51
섹션 10. 연산자
연산자 기본 이론 미리보기 19:51 산술 연산자 미리보기 11:32
이형자료 연산과 형승격 07:52
0으로 나누면 안 되는 이유 06:00
[필수 실습 문제] 평균값 구하기 09:34
[필수 실습 문제] 시 분 초 계산하기 12:20
단순 대입 연산자 14:45
[필수 실습 문제] 두 변수 값 교환 06:14
복합 대입 연산자 08:58
[필수 실습 문제] 세 정수 총합 계산하기 (누산) 11:13
형변환 연산자 10:36
단항 증/감 연산자 15:22
비트 연산자와 엔디안(Endian) 20:26
[필수 실습 문제] 뺄셈 연산 직접 구현하기 미리보기 07:35
sizeof 연산자 08:10
관계 연산자 08:01
논리 연산자 10:28
쇼트 서킷과 범위검사 흔한 오류 예 15:35
조건 (3항) 연산자 07:15
[필수 실습 문제] 합격, 불합격 판단하기 06:06
[필수 실습 문제] 최댓값 구하기 - 서바이벌 방식 08:16
[필수 실습 문제] 최댓값 구하기 - 토너먼트 방식 06:31
섹션 11. 기본 제어문
if문과 스코프 19:09
[필수 실습 문제] 최댓값 구하기 - if문 버전 03:30
[필수 실습 문제] 버스요금 계산 09:39
if else문 08:01
if else문 중첩 (분류와 선택) 11:28
[필수 실습 문제] 연령별 버스요금 계산 09:29
다중 if문 07:12
중첩 스코프와 식별자 검색 순서 14:54
swtich-case문 09:31
무조건 goto문 10:10
섹션 12. 반복문
조건 기반 반복 while과 무한 루프 미리보기 08:38 [필수 실습 문제] 한 줄에 '*' 출력 미리보기 07:02
계수 기반 반복 for 09:08
[필수 실습 문제] 총합 계산하기 04:14
반복문 중첩 15:59
[필수 실습 문제] 국룰 * 출력 놀이 09:06
[필수 실습 문제] '*' 출력 놀이 응용 09:23
do while문 04:21
break와 continue 13:22
섹션 13. 배열과 프로그래밍 기법 (Part 3 C언어 수준향상)
배열의 기본 문법 미리보기 28:18
[필수 실습 문제] 배열에서 최댓값 찾기 17:16
[필수 실습 문제] 버블정렬 15:36
[필수 실습 문제] 선택정렬 13:06
다차원 배열 14:58
[필수 실습 문제] 교차와 달팽이 숙제 16:09
고급 기법 Lookup 배열 09:23
섹션 14. 함수에 대한 기본 이론
사용자 정의 함수 기초 이론 미리보기 25:40
기초적인 함수 설계 원칙 15:16
[필수 실습 문제] 최댓값을 반환하는 함수 03:05
이벤트 루프 구현 12:44
원형 선언과 분할 컴파일 17:44
전역변수와 식별자 검색 순서 18:16
섹션 15. 메모리와 포인터
컴퓨터 메모리 종류 미리보기 20:33 포인터 변수 기본 문법 미리보기 22:09
포인터와 1차원 배열 19:33
메모리 동적 할당 및 해제 29:55
메모리 초기화, 복사, 비교 20:25
[필수 실습 문제] 잘못된 메모리 복사 07:24
배열 연산자 풀어 쓰기 07:06
문자열 복사, 비교, 검색 14:46
동적 할당된 메모리 구조와 realloc() 17:32
대충 살피는 다중 포인터 11:08
다차원 배열에 대한 포인터 06:58
정적 메모리와 기억부류 지정자 39:12
섹션 16. 함수 응용
매개변수 전달 기법 미리보기 26:42
[필수 실습 문제] MyStrcpy() 함수 작성하기 05:46
Stack frame과 지역변수 주소 반환 문제 10:11
Call by reference와 메모리 동적 할당 이슈 16:46
재귀호출 22:20
문자열 처리 - 주요 함수 소개 및 strcat() 함수 성능 개선 41:20
가변 길이 입력에 의한 Stack frame 손상 10:59
유틸리티 함수 - atoi() 05:03
유틸리티 함수 - time(), localtime(), ctime() 07:40
유틸리티 함수 - srand(), rand() 05:12
유틸리티 함수 - system(), exit() 06:00
섹션 17. 구조체와 공용체
구조체 선언 및 정의 미리보기 12:14
구조체와 메모리 동적 할당 08:09
구조체와 함수(매개변수, 반환자료) 07:14
구조체를 멤버로 갖는 구조체 07:13
[필수 실습 문제] 자기 참조 구조체와 재귀호출 09:29
비트필드 12:00
공용체 11:53
구조체 멤버 맞춤 12:22
섹션 18. 파일 입/출력
파일 시스템 기본 이론 - 첫 번째 미리보기 23:54
파일 시스템 기본 이론 - 두 번째 14:10
파일 스트림이란 무엇인가? 10:12
텍스트와 바이너리 직접 들여다 보기 07:30
파일 생성, 개방, 폐쇄 17:49
텍스트 파일 입/출력 14:46
Buffered I/O와 파일 입출력 버퍼 플러싱 미리보기 13:48
콘솔 I/O 버퍼 메모리 추적하기 10:07
바이너리 파일 입/출력 07:36
파일 입/출력 포인터 위치 제어 08:57
섹션 19. 변수와 상수 고급 이론 (Part 4 고급 이론)
형한정어와 컴파일러 최적화 소개 15:53
심볼릭 상수 06:25
상수형 포인터 07:46
열거형 상수 04:32
형 재선언 04:53
extern 03:48
섹션 20. 전처리기
#include 19:06
#define과 매크로 정의 05:45
매크로 특수화 연산자 04:01
조건부 컴파일 08:08
섹션 21. 함수에 대한 고급 이론
함수 포인터 12:58
역호출 구조 12:01
Lookup 테이블과 역호출 결합 13:03
강의 게시일 : 2023년 09월 27일 (마지막 업데이트일 : 2023년 10월 06일)
수강평 총 38개
수강생분들이 직접 작성하신 수강평입니다.
4.9
38개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
김태수 thumbnail
5
현직 FE 개발자입니다. 저의 경우, 개발의 첫 시작을 자바스크립트로 하다 보니 CS 지식을 쌓는 것이 다소 어려웠습니다. 정처기도 따보고 자바스크립트로 자료구조, 알고리즘도 공부를 해보긴 했는데 아무래도 언어의 특성 상 메모리 단의 깊은 영역까지 사고 하기에는 쉽지 않았던 것 같습니다. 기초 지식에 대한 지독한 갈증이 있던 찰나 이 강의를 수강하게 되었습니다. 저는 이 강의를 보면서 "내가 작업했었던 코드들이 내부적으로는 어떻게 동작하겠구나!" 와 같은 추상적인 깨달음을 많이 얻었던 것 같습니다. 단순히 선언했던 변수가 어떻게 메모리에 할당이 될지, 연산자와 CPU가 어떤 관계에 있으며 어떻게 동작하는지, 포인터가 무슨 역할을 하는지, 구조체와 객체가 어떤 연관성이 있을지, 자바스크립트에서 툭 던지듯이 말하던 stack과 heap의 실체가 뭔지, 콜백 패턴이 실제적으로 어떻게 동작하는지, 괜찮은 코드는 어떻게 짜야하는지 등... 강의를 보면서 의식 중에 또는 무의식 중에 생각을 많이 하게 되었던 것 같습니다. 10월 중순에 강의를 구매해서 퇴근 후 조금씩 보다가 오늘에야 완강을 하게 되었습니다. 3개월 전의 저보다 지금의 제가 조금 더 성장한 느낌이 들어서 뿌듯합니다. 이 강의는 기초적인 CS 지식을 갈구하시는 현직자 분들에게도 큰 도움이 되실 것이라 생각합니다. 끝으로 널널한 개발자님! 좋은 강의 만들어주셔서 감사합니다!
2024-01-11
지식공유자 널널한 개발자
모든 소프트웨어 개발자들은 실무경력이 쌓이면서 CS이론에 대한 갈증에 시달리게 되는 것 같습니다. 저도 예외가 아니었고요. 다행히 이 강의가 도움을 드린 것 같아 정말 다행입니다. 내부 구조에 대한 이해가 더해지면 아무래도 JavaScript에 대한 이해가 더 깊어질 수 밖에 없겠습니다. 좋게 봐주시고 좋은 평가도 주셔서 고맙습니다. 더 나은 개발자로 멋지게 성장하시기를 응원하겠습니다. :)
2024-01-14
에이치더블유 thumbnail
5
역량이 뛰어나고 설명력도 좋은 개발자 분이 활동에 욕심을 가지고 이렇게 강의를 열어준 것은 정말 감사한 일입니다.
2024-01-04
지식공유자 널널한 개발자
와우~~! 좋게 봐주셔서 고맙습니다. 더 열심히 하고 싶은 마음이 생기네요. 청룡의 해를 맞아 실력도 함께 비상하시기를 바랍니다. :)
2024-01-04
sh thumbnail
5
1학년 때 과제하고 학점 받으면 됐다는 생각으로 C언어를 대충 배운 학생입니다. 학년이 올라가면서 기초가 부실함을 느끼고 뒤늦게 강의를 찾아 듣게 됐습니다. 프로그래밍 자체가 처음인 게 아니다 보니 쉬운 입문에 초점을 맞춘 강의들은 성에 차지 않았는데, 이 강의는 기초 강의이면서도 전공자로서 알고 넘어가야 할 비교적 심도 깊은 내용을 함께 다루고 있어 만족스럽습니다. 꼭 필요했던 강의입니다. 앞으로의 커리큘럼도 널널한 개발자님 쭉 따라갈 생각입니다! 양질의 강의 만들어주셔서 감사합니다.
2023-11-03
지식공유자 널널한 개발자
다시 전공 공부에 도전하느라 애쓰고 계시는 군요! 그렇다면 C언어를 통해 시스템 구조와 운영체제까지 복습 하는 것이 분명 도움이 되리라 확신합니다. 좋은 평가와 피드백 감사드리며 앞으로 열공하셔서 좋은 결과 얻으시기를 진심으로 바랍니다. 고맙습니다. :)
2023-11-05
박인희 thumbnail
5
독하게 시작하는 C프로그래밍, 완전 노베이스 였으면 이해하기 어려울 수도 있는 수준의 강의지 않을까 라는 생각이 든다. 개인적으로 리눅스 파이썬 컴퓨터 과학을 기초 정도 숙지한 상태에서 이 강의를 봤는데 정말 이해가 쏙쏙 잘되었다. 한번에 이해 안되는 내용도 알려 주신 방법처럼 메모리 뜯어보고 챗 지피티한테 물어보고 코드도 바꿔서 여러 케이스로 해보면 시간이 조금 걸릴지 몰라도 이해가 잘 되었다. 그리고 하신 말씀 중에 이 길에는 왕도가 없다고 하셨는데 조급한 나의 마음을 좀 더 길게 볼 수 있게 해주었다. 이런 강의를 보게 되어서 행운이라고 생각하고 강의를 만들어 주신 널널한 개발자님에게 감사의 말씀 전하고 싶다.
2023-11-24
지식공유자 널널한 개발자
이 수업이 가지고 있는 장점이자 동시에 단점을 정확히 짚어 주셨네요. :) 꼭 필요한 이야기를 하자니 내용이 어려워지고 쉽게만 하자니 뭔가 거짓말을 하는 것 같아 좋지 못한 평가를 좀 받더라도 제 신념을 지켜왔습니다. 다행히 도움이 된 것 같아 정말 다행이네요. 좋은 평가와 피드백 고맙습니다. :)
2023-11-26
Perls thumbnail
5
독하게 배우는 만큼 처음 C언어를 입문하는 사람에게는 어려울 수 있지만 어차피 꿈이 프로그래머라면 다 배워야 되는 정보라서 처음 보는 사람한테 추천할 만한 강의 복습하는 사람에게는 무조건 강추!
2023-11-21
지식공유자 널널한 개발자
C를 처음 접하시는 분들에게 난도가 있는 수업이라 늘 걱정입니다. 그럼에도 좋게 봐주셔서 고맙습니다. :)
2023-11-23