BEST
개발 · 프로그래밍

/

프로그래밍 언어

독하게 되새기는 C 프로그래밍

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

(5.0) 수강평 51개

수강생 1,478명

Thumbnail

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

이런 걸
배워요!

  • 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분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 2023년 01월 20일
마지막 업데이트일: 2024년 02월 07일

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!