BEST
개발 · 프로그래밍

/

데스크톱 앱 개발

Windows 시스템 프로그래밍 - 기본

윈도우 계열 프로그래머가 될 생각이 있는 사람이라면 누구나 들어야 할 필수 강의! C/C+, 자료구조, 운영체제 이론까지 공부했나요? 그렇다면 이제는 시스템 프로그램 공부가 정답입니다. 이제부터는 실전입니다!

(5.0) 수강평 20개

수강생 771명

Thumbnail

중급자를 위해 준비한
[데스크톱 앱 개발, 시스템 · 운영체제] 강의입니다.

이런 걸
배워요!

  • 윈도우 시스템 보안체계에 관한 이론

  • 멀티스레드 프로그래밍과 동기화 기법

  • 동기/비동기 파일 입/출력 기법

  • 가상 메모리 시스템과 메모리 운용 기법

  • 프로세스 관리와 공유 메모리 기반 IPC 기법

  • DLL 라이브러리 제작 및 활용

시스템 프로그래밍 기본 중의 기본, 
핵심을 제대로 잡아드립니다! 

C/C++ Windows 개발자라면 
꼭 알아야 할 시스템 프로그래밍.

제프리 리처 『Windows Via C/C++』
너무 어렵게만 느껴지셨나요?

시스템 프로그래밍의 바이블이라고 알려져 있지만 쉽게 이해하기 어려운 책 『Windows Via C/C++ 5th edition』을 이해할 수 있습니다!

게임 서버 개발자, 윈도우 응용 프로그램 개발자 주목!

게임을 비롯해 윈도우 분야 응용 프로그램 개발자를 희망하는 분들이라면 C/C++, 자료구조를 배웁니다. 그리고 CS 이론도 어느 정도 공부합니다. 그러나 그것만으로는 무엇인가 부족하다는 것을 스스로 느낍니다. 전문 개발자가 되기 위해 반드시 알아야 할 프로그래밍 스킬에 시스템 프로그래밍이 있다는 사실을 알고 있지만, 막상 책을 펼치는 순간 쉽지 않은 길이며 독학은 어렵겠다는 판단을 하게 됩니다.

해결 방법은 간단합니다! 높은 수준의 이해가 사실은 사소한 암기에서 출발하듯 시스템 프로그래밍의 가장 기초가 되는 핵심 이론과 예제를 완벽하게 내 것으로 만드는 것입니다. 

그래서, 이런 분들께 추천합니다.

C/C++ 기반 윈도우 응용 프로그램을 개발해야 하는 모든 분

구형 기술인 MFC나 Win32 API 기반의 응용 프로그램 개발자

게임 서버 프로그래머를 지망하는 분

운영체제에 대한 이론을 코드 수준에서 경험하고 싶은 시스템 프로그래밍 학습자


시스템 프로그래밍의 핵심을 
이해하기 쉽게 설명해드립니다!

  • 1️⃣ 멀티스레드 프로그래밍 환경에 대한 이해와 동기화 기법 등 핵심 이론을 이해할 수 있습니다. 
  • 2️⃣ 운영체제를 공부하며 접했던 이론들을 코드 수준에서 다시 경험하며 CS 지식에 대한 이해 수준이 훨씬 더 높아집니다.
  • 3️⃣ 동기/비동기 입출력을 비롯해 운영체제가 제공하는 서비스를 적극 활용함으로써 높은 성능을 보장받는 실전형 응용 프로그램을 개발할 수 있습니다.
  • 4️⃣ 고성능 서버를 비롯해 윈도우 응용 프로그램 개발에 필요한 각종 이론 및 사례를 스스로 이해할 수 있습니다.

시스템 프로그래밍에 관한 핵심 이론을 쉽게 설명했습니다! CS 이론의 핵심은 운영체제와 컴퓨터 구조라 해도 과언이 아닙니다. C/C++같은 네이티브 언어가 어려운 이유는 CS 이론에 대한 일정 수준의 이해를 필요로 하기 때문입니다. 이 강의가 CS 이론의 정점을 향해 가기 위해 반드시 알고 있어야 할 핵심 시스템 이론들을 프로그래밍으로 경험하게 해주는 중추적인 역할을 해드릴 것입니다.


시스템 프로그래밍 학습에
꼭 필요한 필수 이론.

배워야 할 이론을 최대한 압축해 핵심만 담았습니다!

  • ✅ 윈도우 보안 체계
  • ✅ 멀티스레드 프로그래밍 기법 (생성 및 동기화)
  • ✅ Win32 API를 이용한 동기/비동기 파일 입출력 기법
  • ✅ 가상 메모리 시스템, 힙, 메모리 맵
  • ✅ 공유 메모리 기반 IPC
  • ✅ DLL 라이브러리 제작 기법

프로세스 실행과 권한 상속

프로세스별 독립적인 가상 메모리 확보와 커밋

64KB 할당크기와 4KB 페이지 메모리 구조

바이블급 서적으로 공부하는 것은 좋은 선택이지만 입문자에게는 결코 쉽지 않습니다. 아무리 좋은 내용이라 하더라도 이해하기가 어렵기 때문입니다. 이 강의는 어려운 이론들에 보다 쉽게 다가갈 수 있도록 길을 열어 드리고자 기획되었습니다.


Q&A 💬

Q. 윈도우 응용 프로그램 개발자가 되려면 시스템 프로그래밍을 반드시 배워야 하나요?

네, 반드시 배워야 합니다. 단순히 GUI만 개발한다고 하더라도 결국 시스템 프로그래밍에서 다루는 대부분의 이론들을 제대로 알고 있어야 문제 해결이 가능한 경우가 많기 때문입니다. 

Q. 게임 개발자를 희망하는 취준생입니다. 이 강의가 도움이 될까요?

게임 개발자라면 시스템 프로그래밍은 선택이 아니라 필수입니다. 이 강의에서 언급하는 수준은 완벽히 알아야 합니다. 그리고 더 어려운 이론들도 공부해야 합니다. 그러나 이 강의를 제대로 끝낸 후에는 스스로 관련 자료를 보더라도 어떤 의미인지 스스로 이해할 수 있는 단계에 도달할 수 있을 것입니다.

Q. 보안 소프트웨어 개발자가 되려면 이 강의를 들어야 하나요?

만일 V3같은 소프트웨어를 개발하고 싶다면 시스템 프로그래밍 이론은 필수적입니다. 커널 드라이버 개발자로 넘어가기에 앞서 시스템 프로그래밍은 반드시 알아야 하며 리버싱을 비롯해 각종 공격/방어 기법을 배우려면 시스템 프로그래밍 이론을 모르고는 시도조차 하기 어렵습니다.

Q. C언어, 자료구조 정도만 공부했습니다. 그래도 이 강의를 들을 수 있나요?

네, 들을 수 있습니다. 그러나 운영체제 공부를 하지 않았다면 내용이 다소 어려울 수 있습니다. 그리고 C언어를 공부했다 하더라도 다음의 내용을 꼭 알고 있어야 합니다.

  • 함수 포인터
  • 기억부류 지정자와 메모리 관리
  • 스택 프레임 지정원리
  • 바이너리 파일 입/출력

💾 수강 전 확인해주세요.

  • 이 강의는 "Windows 시스템 프로그래밍 - 기본" 편으로, 추후 "Windows 시스템 프로그래밍 - 응용" 편이 공개될 예정입니다.
  • 강의에서는 Windows 11 및 Visual Studio 2022 Community 버전을 사용합니다. Windows 10 이상의 운영체제 및 VScode 2022가 작동하는 데 무리가 없는 PC 사양이라면 충분히 수강하실 수 있습니다.
  • 강의에 쓰인 PDF 및 전체 예제 소스 코드를 제공합니다.
  • 이 강의는 C언어에 대한 이해와 연결 리스트 등 선형 자료구조 구현 경험이 있는 분들을 위해 준비한 강의입니다. Visual Studio와 같은 개발도구를 윈도우 OS 환경에서 사용해본 경험이 있어야 합니다. 상세 선수지식은 아래를 참고해주세요.
    • C언어와 자료구조 그리고 약간의 C++언어 문법 (전혀 몰라도 수강 가능)
    • 강의 "넓고 얕게 외워서 컴공 전공자 되기"
    • 강의 "곰책으로 쉽게 배우는 최소한의 운영체제론"
    • 강의 "독하게 되새기는 C 프로그래밍" (가장 중요한 선수 지식)

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 윈도우 시스템 제어 소프트웨어 개발을 희망하시는 분

  • 보안 소프트웨어나 게임서버 개발을 희망하는 분

  • C/C++ 윈도우 기반 응용 프로그램을 개발해야 하는 모든 분들

선수 지식,
필요할까요?

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

  • 자료구조에 대한 이해

  • 가상 메모리에 관한 운영체제 지식

  • 윈도우 환경에서의 개발 도구 사용 경험 (cf. VSCode)

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

 

커리큘럼

전체

40개 ∙ (11시간 10분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

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