이 강의는 컴파일러 이론, 스택프레임 구조, 멀티스레드, 가상메모리 구조, 보안 취약점과 시큐어 코딩 등 C언어 기초 공부가 끝난 분들을 위한 주제를 다룹니다. C/C++ 계열 전문가를 희망하거나 CS 전공자 혹은 그에 준하는 실력을 원하는 분들에게 강력히 권합니다!
이런 걸
배워요!
C언어 입문/초급을 넘어서고 싶은 개발자
컴파일러, 컴퓨터 구조, 운영체제와 연계한 C언어 구조
메모리 디버깅 기법 및 스택프레임 원리와 구조
보안 취약점의 의미와 시큐어 코딩의 핵심 원리
멀티스레드 코딩 기법
C 프로그래밍, 독하게 더 강력하게! 💥
😥 “컴파일러가 뭔지 이해하기 어려워요.”
🥲 “전공자만큼 C언어 잘하고 싶은데, 뭔가 부족해요.”
🤔 “이제 와서 CS 공부를 다시 하긴 힘들텐데...”
코딩 열풍으로 누구나 프로그래머가 될 수 있는 세상이 열렸습니다. 그러나 정작 기업에서는 인력이 부족하다고 아우성이고, 많은 예비 개발자들이 취업을 걱정합니다. 왜 그럴까요? 소위 '제대로' 배운 사람이 적기 때문입니다. 누구나 프로그래밍 언어를 배우고 문법을 익힙니다. 그러나 왜 그런 형태가 됐는지, 어떤 원리로 작동하는지 깊이 고민하지 않거나 알지 못합니다.
가령 컴파일러(Compiler)에 대해서는 어떨까요? 이미 현직에 있는 프로그래머라 해도 CS전공자가 아닌 이상 컴파일러에 대한 이야기는 잘 알지 못합니다. 그동안 몰라도 됐기 때문입니다. 그러나 개발자가 한 단계 발전하기 위해서는 꼭 알아야 할 이론 중 하나는 바로 컴파일러에 대한 것입니다. 하지만, 그렇다고 이제와 CS 전공 공부를 다시 하기는 쉽지 않게 느껴집니다.
컴퓨터공학을 전공한 분들은 4년이라는 긴 시간을 쏟아부어 개발자가 됩니다. 누구나 할 수 있다는 그 코딩이, 사실은 4년이 넘는 긴 학습 시간을 요구한다는 사실을 우리는 생각보다 쉽게 간과합니다.
때문에 초보자가 그 다음 단계로 넘어가기 위해서는 컴파일러의 작동 원리, 언어의 문법 관계, 컴퓨터 구조와 연결된 프로그래밍 이론(가상 메모리, 멀티스레드), 보안(원격코드 실행 취약점), 시큐어 코딩 등의 이론들을 익히는 노력이 필요합니다.
따라서 이 강의의 주제와 핵심 목표는 그러한 이론과 원리를 익히고, 경쟁력을 확보하는 것입니다.
목표는 하나, CS 전공자 수준을 넘어서는 C 프로그래밍 능력 확보입니다!
✅ 이미 C언어 기초 문법을 공부했지만 무언가 부족하다고 느끼는 분
✅ CS 전공에 앞서 학과 공부를 미리 해보고 싶은 예비 전공자 (단, C언어 및 자료구조를 알고 있는 분)
✅ 컴파일러 이론을 경험해보고, 프로그래밍 언어에 대한 더 깊은 이해를 얻으려는 개발자
✅ “누구나 할 수 있는” 코딩이 아니라, 개발자로서의 경쟁력을 갖추고 싶은 취준생
C/C++ 계열 개발자는 JAVA 계열과 비교해 개발자 1명을 양성하기 위해 보통 2~3배 이상의 시간과 노력이 필요하다고 합니다. 그러나 자바 전문가도 트러블 슈팅이나 고급 이론들을 다루려면 결국 C/C++ 계열 전문가와 동등한 수준의 노력(혹은 그 이상)이 필요합니다. 결국 다른 분야로 출발할 뿐 어느 수준에서는 모든 이론들이 모이는 접점이 있다고 할 수 있습니다.
이 강의의 주제와 핵심 목표는 그 접점에 해당하는 본질적 이론들을 이해하는 것입니다.
💡 C언어 개발자로서 CS 전공 지식에 대한 부족함을 느끼지만 막상 학습하기에는 부담을 느끼시는 분들이 간략하게라도 컴파일러 이론과 시스템 이론 등 CS 전공 핵심 이론을 이해하는 데 도움을 줍니다. 차별화 혹은 다음 단계로의 도약을 원하는 초급 개발자 분들에게 적절한 방향을 제시합니다.
이 강의는 총 10개의 섹션으로 구성되어 있습니다. C언어에 대한 이해와 컴파일러로 시작해 시스템 프로그래밍 이론과 시큐어 코딩에 이르기까지 모든 실무 개발자가 반드시 학습해야 할 내용으로 구성하였습니다.
선수 지식을 확인해주세요!
C언어 문법 및 자료구조에 대한 기본적인 이해가 필요합니다.
이 강의는 입문자~초보자를 위한 강의가 아닙니다. C언어 기본 문법 및 이론(포인터 등)과 자료구조에 대한 기본적인 이해가 있다는 전제로 진행되는 중급 과정입니다. 아울러 강의 ‘넓고 얕게 외워서 컴공 전공자 되기’ 강의에서 언급하는 이론 정도는 알고 있다고 가정합니다.
Q. C언어 문법은 다루지 않나요?
네, 이미 C언어와 자료구조를 배운 분들을 위한 강의입니다. 입문자 수준의 이론은 다루지 않습니다.
Q. 자바(Java) 프로그래머가 들어도 상관 없나요?
C언어를 배워본 경험이 있고 Pointer에 대해 일정 수준의 지식을 갖췄다면 상관 없습니다.
Q. macOS, Linux 환경에서도 실습이 가능한가요?
이론을 듣는 것은 문제 없으나 도구 사용방법을 구체적으로 다루기 때문에 반드시 Windows 10 + Visual studio 2022 개발환경을 사용하는 것이 좋습니다.
💾 실습 환경 & 학습 자료 안내
학습 대상은
누구일까요?
C언어를 이미 공부했으나 부족하다고 느끼는 사람
전공자 수준으로 제대로 C언어를 배우고 싶은 사람
리버싱 공부에 앞서 배경이론을 얻고 싶은 개발자
선수 지식,
필요할까요?
'넓고 얕게 외워서 컴공 전공자 되기' 과정에서 언급한 이론들
C언어 기본 문법 및 포인터에 대한 이해
자료구조에 대한 이해
널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다. 반갑습니다. ^^
전체
46개 ∙ (11시간 17분)
가 제공되는 강의입니다.
이미 알고 있다고 가정하는 것들
09:14
수업목표
12:44
개발환경 구축 및 환경설정
06:58
정수와 Endian 그리고 2의 보수
20:44
코드에 관한 시점
12:21
컴파일러 구성요소
09:18
어휘, 구문분석
13:05
추상 구문 트리(AST)와 IR
15:31
코드생성 및 최적화
16:18
실행 파일 그리고 연산과 실행
11:49
스택기반 연산 구조
15:59
단항 증/감 연산에 대한 다른 접근
06:53
고급 개발자가 되려는 분들에게
14:41