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

독하게 되새기는 C 프로그래밍 대시보드

(5)
37개의 수강평 ∙  1,314명의 수강생
110,000원

월 22,000원

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

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

이 강의는 컴파일러 이론, 스택프레임 구조, 멀티스레드, 가상메모리 구조, 보안 취약점과 시큐어 코딩 등 C언어 기초 공부가 끝난 분들을 위한 주제를 다룹니다. C/C++ 계열 전문가를 희망하거나 CS 전공자 혹은 그에 준하는 실력을 원하는 분들에게 강력히 권합니다!

✍️
이런 걸
배워요!
C언어 입문/초급을 넘어서고 싶은 개발자
컴파일러, 컴퓨터 구조, 운영체제와 연계한 C언어 구조
메모리 디버깅 기법 및 스택프레임 원리와 구조
보안 취약점의 의미와 시큐어 코딩의 핵심 원리
멀티스레드 코딩 기법

C 프로그래밍, 독하게 더 강력하게! 💥

코딩 언어 문법만 안다고 
개발 ‘잘’ 할 수 있을까요?

😥 “컴파일러가 뭔지 이해하기 어려워요.”

🥲 “전공자만큼 C언어 잘하고 싶은데, 뭔가 부족해요.”

🤔 “이제 와서 CS 공부를 다시 하긴 힘들텐데...”

코딩 열풍으로 누구나 프로그래머가 될 수 있는 세상이 열렸습니다. 그러나 정작 기업에서는 인력이 부족하다고 아우성이고, 많은 예비 개발자들이 취업을 걱정합니다. 왜 그럴까요? 소위 '제대로' 배운 사람이 적기 때문입니다. 누구나 프로그래밍 언어를 배우고 문법을 익힙니다. 그러나 왜 그런 형태가 됐는지, 어떤 원리로 작동하는지 깊이 고민하지 않거나 알지 못합니다. 

가령 컴파일러(Compiler)에 대해서는 어떨까요? 이미 현직에 있는 프로그래머라 해도 CS전공자가 아닌 이상 컴파일러에 대한 이야기는 잘 알지 못합니다. 그동안 몰라도 됐기 때문입니다. 그러나 개발자가 한 단계 발전하기 위해서는 꼭 알아야 할 이론 중 하나는 바로 컴파일러에 대한 것입니다. 하지만, 그렇다고 이제와 CS 전공 공부를 다시 하기는 쉽지 않게 느껴집니다.

“사실은 4년이 걸리는 일입니다!”

컴퓨터공학을 전공한 분들은 4년이라는 긴 시간을 쏟아부어 개발자가 됩니다. 누구나 할 수 있다는 그 코딩이, 사실은 4년이 넘는 긴 학습 시간을 요구한다는 사실을 우리는 생각보다 쉽게 간과합니다. 

때문에 초보자가 그 다음 단계로 넘어가기 위해서는 컴파일러의 작동 원리, 언어의 문법 관계, 컴퓨터 구조와 연결된 프로그래밍 이론(가상 메모리, 멀티스레드), 보안(원격코드 실행 취약점), 시큐어 코딩 등의 이론들을 익히는 노력이 필요합니다.

따라서 이 강의의 주제와 핵심 목표는 그러한 이론과 원리를 익히고, 경쟁력을 확보하는 것입니다.


한 단계 도약하고 싶은
C언어 개발자라면!

목표는 하나, CS 전공자 수준을 넘어서는 C 프로그래밍 능력 확보입니다!

✅ 이미 C언어 기초 문법을 공부했지만 무언가 부족하다고 느끼는 분

✅ CS 전공에 앞서 학과 공부를 미리 해보고 싶은 예비 전공자 (단, C언어 및 자료구조를 알고 있는 분)

✅ 컴파일러 이론을 경험해보고, 프로그래밍 언어에 대한 더 깊은 이해를 얻으려는 개발자

✅ “누구나 할 수 있는” 코딩이 아니라, 개발자로서의 경쟁력을 갖추고 싶은 취준생

C/C++ 계열 개발자는 JAVA 계열과 비교해 개발자 1명을 양성하기 위해 보통 2~3배 이상의 시간과 노력이 필요하다고 합니다. 그러나 자바 전문가도 트러블 슈팅이나 고급 이론들을 다루려면 결국 C/C++ 계열 전문가와 동등한 수준의 노력(혹은 그 이상)이 필요합니다. 결국 다른 분야로 출발할 뿐 어느 수준에서는 모든 이론들이 모이는 접점이 있다고 할 수 있습니다.

이 강의의 주제와 핵심 목표는 그 접점에 해당하는 본질적 이론들을 이해하는 것입니다. 


실무 개발자라면 꼭 알아야 할 
핵심 내용을 다룹니다.

💡 C언어 개발자로서 CS 전공 지식에 대한 부족함을 느끼지만 막상 학습하기에는 부담을 느끼시는 분들이 간략하게라도 컴파일러 이론과 시스템 이론 등 CS 전공 핵심 이론을 이해하는 데 도움을 줍니다. 차별화 혹은 다음 단계로의 도약을 원하는 초급 개발자 분들에게 적절한 방향을 제시합니다.

  1. C언어 기본이론 재정리
  2. 컴파일러, 컴퓨터 구조
  3. 스택프레임 구조와 원리를 포함한 함수
  4. 동기/비동기 파일 입/출력
  1. 멀티스레드
  2. 변수와 상수에 대한 고급이론
  3. 컴파일러 최적화와 함수에 관한 중급이론
  4. 정적/동적 라이브러리 개발
  5. 보안과 시큐어 코딩

이 강의는 총 10개의 섹션으로 구성되어 있습니다. C언어에 대한 이해와 컴파일러로 시작해 시스템 프로그래밍 이론과 시큐어 코딩에 이르기까지 모든 실무 개발자가 반드시 학습해야 할 내용으로 구성하였습니다. 

컴파일러 구성 요소 中
추상 구문 트리(AST)와 IR 中

선수 지식을 확인해주세요!
C언어 문법 및 자료구조에 대한 기본적인 이해
가 필요합니다.

이 강의는 입문자~초보자를 위한 강의가 아닙니다. C언어 기본 문법 및 이론(포인터 등)과 자료구조에 대한 기본적인 이해가 있다는 전제로 진행되는 중급 과정입니다. 아울러 강의 ‘넓고 얕게 외워서 컴공 전공자 되기’ 강의에서 언급하는 이론 정도는 알고 있다고 가정합니다.


Q&A 💭

Q. C언어 문법은 다루지 않나요?

네, 이미 C언어와 자료구조를 배운 분들을 위한 강의입니다. 입문자 수준의 이론은 다루지 않습니다.

Q. 자바(Java) 프로그래머가 들어도 상관 없나요?

C언어를 배워본 경험이 있고 Pointer에 대해 일정 수준의 지식을 갖췄다면 상관 없습니다.

Q. macOS, Linux 환경에서도 실습이 가능한가요?

이론을 듣는 것은 문제 없으나 도구 사용방법을 구체적으로 다루기 때문에 반드시 Windows 10 + Visual studio 2022 개발환경을 사용하는 것이 좋습니다.

💾 실습 환경 & 학습 자료 안내

  • 강의는 Windows 10 운영체제에서 Visual Studio 2022 Community 버전을 사용하여 진행됩니다. 다른 환경에서도 이론 수업을 수강하는 데는 문제가 없으나, 구체적인 도구 사용 방법을 다루기 때문에 반드시 해당 환경을 통해 수강하시는 것을 권장합니다. 
  • 자료구조 및 C언어 기본 문법 및 이론(포인터 등)을 설명하지 않는 중급 과정입니다.
  • 수업 PPT 자료 및 각 수업에 사용된 예제 파일을 제공합니다.

함께 보면 더 좋은 강의 모음 📺

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
C언어를 이미 공부했으나 부족하다고 느끼는 사람
전공자 수준으로 제대로 C언어를 배우고 싶은 사람
리버싱 공부에 앞서 배경이론을 얻고 싶은 개발자
📚
선수 지식,
필요할까요?
'넓고 얕게 외워서 컴공 전공자 되기' 과정에서 언급한 이론들
C언어 기본 문법 및 포인터에 대한 이해
자료구조에 대한 이해

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

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

 

커리큘럼 총 46 개 ˙ 11시간 17분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. C언어 기본 이론 재정리
정수와 Endian 그리고 2의 보수 미리보기 20:44
실수형과 부동소수점 오차 (강의자료 포함) 26:33
문자(배)열 상수는 어디에 저장되는가? (인쇄용 강의자료 포함) 18:00
코드에 관한 시점 12:21
섹션 2. 가볍게 살피는 컴파일러와 컴퓨터 구조
컴파일러 구성요소 미리보기 09:18
어휘, 구문분석 13:05
추상 구문 트리(AST)와 IR 15:31
코드생성 및 최적화 16:18
실행 파일 그리고 연산과 실행 11:49
스택기반 연산 구조 15:59
단항 증/감 연산에 대한 다른 접근 06:53
다시 생각해보는 연산자 우선순위와 결합성 05:25
고급 개발자가 되려는 분들에게 14:41
섹션 3. 다시 생각해보는 함수에 대한 기본 이론
호출관계와 void 반환의 숨은 뜻 미리보기 17:19
매개변수 전달 기법 - 첫 번째 15:43
매개변수 전달 기법 - 두 번째 09:21
Stack frame 지정원리 - 지역변수 수준 25:45
Stack frame 지정원리 - 함수 수준 28:10
함수호출규약 16:57
섹션 4. 파일 입/출력
파일 시스템 기본 이론 미리보기 19:29
텍스트와 바이너리의 차이는 무엇인가? 14:26
Buffered/Non-buffered I/O와 플러싱 16:01
동기/비동기 파일 입/출력 이슈 09:56
중첩된 입/출력 요구 15:50
섹션 5. 변수와 상수에 대한 중급이론
형한정어와 컴파일러 최적화 21:55
분할 컴파일과 외부변수 16:30
섹션 6. 함수에 대한 중급 이론
inline 함수와 컴파일러 최적화 14:29
함수 포인터 기본 문법 미리보기 10:29
역호출 구조 12:58
Lookup 테이블과 고속처리 기법 10:00
섹션 7. 멀티스레드
스레드 생성 및 실행 - 기본 이론 첫 번째 18:19
스레드 생성 및 실행 - 기본 이론 두 번째 07:52
스레드 생성 및 실행 - 예제 분석 13:52
스레드 동기화 26:13
파일 처리와 UI 분리 (프레임워크 직접 설계. 예제 포함) 17:26
섹션 8. 라이브러리 개발
정적/동적 라이브러리 소개 미리보기 11:47
정적 라이브러리 개발 15:52
동적 라이브러리 개발 11:16
의존성과 공동작업 이슈 13:05
섹션 9. 보안
원격코드 실행 취약점 미리보기 14:42
쉘 코드 (예제 포함) 11:17
스택 오버플로우 13:39
시큐어 코딩에 대한 한 줄 정의 및 가이드 소개 11:35
강의 게시일 : 2023년 01월 20일 (마지막 업데이트일 : 2024년 02월 07일)
수강평 총 37개
수강생분들이 직접 작성하신 수강평입니다.
5
37개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
JY thumbnail
5
학부때 배우고 사용하고 다시 배우고 사용하고 저에게는 배우고 찾아볼때 마다 아직 부족함을 많이 느끼게 해주는 C언어입니다. C언어 관련해서는 필요한 강의를 찾기가 쉽지 않은데 찾아 찾아 인프런까지 왔네요. 묻고 따지지도 않고 선택했습니다. 오랜시간 널널한 개발자님 책들로 많은 성장을 했기에 다시 새로운 강의로 열공할 마음에 두근거립니다. 강의 들으면서 thread관련 표준문서 및 VS 지원등 참고할만한 내용 다시한번 잘 정리했습니다. 감사합니다. "섹션 0.들어가기에 앞서" 서두를 시작으로 우선은 멀티스레드와 보안쪽 강의먼저듣고 처음부터 강의 정독하겠습니다. 감사합니다. 널널한 개발자님 새해복 많이 받으세요~ 그리고 이글을 읽으시는 분들 모두도 새해 복 많이 받으세요~
2023-01-25
지식공유자 널널한 개발자
와우~~! 좋은 평가와 피드백 감사합니다. 인강의 좋은 점은 내가 원하는 순서로 들을 수도 있다는 점이죠. 자신에게 가장 효율적인 방법을 사용하시고 좋은 결과도 얻으시기 바랍니다. 제 책과 강의가 부족한 점이 많았을텐데...라는 걱정을 합니다. 앞으로도 열심히 스스로를 돌아보고 보완해야할 부분을 지속 보완하겠습니다. 혹시 보강에 관한 의견 있으시면 알려주세요. 추가 촬영을 적극 검토하겠습니다. 감사합니다.
2023-01-25
home thumbnail
5
프레임워크 구조에 대한 관심이 평소에 많았는데 "파일 처리와 UI 분리"라는 부분이 저 한테 많은 도움이 되었어요!!! 감사합니다!!!!
2023-01-21
지식공유자 널널한 개발자
좋은 평가 감사합니다. 그 부분이 어떤 평가를 받게 될지 걱정이 됐었는데...좋은 피드백을 받아 기쁩니다. ^^
2023-01-21
재스기 thumbnail
5
잘 듣고있습니다!
2023-01-24
지식공유자 널널한 개발자
피드백 감사합니다. 질문 생기면 언제든 올려주세요. ^^
2023-01-25
basketcree thumbnail
5
꼭 한번은 들어야 할 강의 였습니다. 너무 좋았습니다.
2023-02-02
지식공유자 널널한 개발자
와우~~! 좋은 평가 감사합니다. 이어서 들을 수 있는 강의들도 빨리 오픈하겠습니다. ^^
2023-02-03
jeong young heo thumbnail
5
노하우로 가득찬 강의덕분에 자신있게 미래를 설계 할 수 있게 되었습니다. 감사합니다.
2023-01-30
지식공유자 널널한 개발자
좋은 평가와 피드백 감사합니다. 작게라도 도움이 됐다면 강사로써 매우 기쁩니다. ^^
2023-01-30