Inflearn brand logo image
Inflearn brand logo image
BEST
개발 · 프로그래밍

/

데스크톱 앱 개발

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

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

(5.0) 수강평 27개

수강생 944명

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

이런 걸 배울 수 있어요

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

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

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

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

  • 프로세스 관리와 공유 메모리 기반 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)

안녕하세요
입니다.

33,793

수강생

1,827

수강평

1,055

답변

4.9

강의 평점

22

강의

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

 

커리큘럼

전체

40개 ∙ (11시간 10분)

해당 강의에서 제공:

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

수강평

전체

27개

5.0

27개의 수강평

  • HK님의 프로필 이미지
    HK

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    어렴풋이 조각조각 나있던 지식들이 한데 엮여서 잘 정리될 수 있게 만들어준 강의였습니다.

    • 널널한 개발자
      지식공유자

      쉽지 않으셨을 텐데 완강하셨군요. 정말 수고하셨습니다. 분명히 잘 되실 겁니다. 고맙습니다. :)

  • 이동준님의 프로필 이미지
    이동준

    수강평 8

    평균 평점 5.0

    수정됨

    5

    30% 수강 후 작성

    윈도우 시스템 프로그래밍을 공부하는 데 큰 도움이 되었습니다. 좋은 강의 감사합니다.

    • 널널한 개발자
      지식공유자

      좋은 평가와 피드백 고맙습니다. 꼭 완강하시고 하시는 일에 좋은 성과 거두시기 바랍니다. :)

  • Love C/C++님의 프로필 이미지
    Love C/C++

    수강평 5

    평균 평점 5.0

    5

    100% 수강 후 작성

    컴퓨터소프트웨어학과 학생이지만 분야를 정하지 못해서 갈팡질팡 했습니다. 운영체제를 공부할 때도 널널한개발자님 영상을 보면서 도움을 많이 받았었는데 최근에도 큰 도움을 받았네요. C언어 시리즈를 전부 수강하고 C/C++의 재미를 느꼈고, 로드맵을 보니 시스템프로그래밍이라는 것이 있더군요..! 로드맵의 강의를 전부 결제하고 시스템프로그래밍 영상을 보는데 이거다...! 싶었습니다. 결국 시스템 프로그래밍의 매력에 빠져들었으며, 제프리 리처의 책도 구매하여 열심히 공부를 하고 있습니다. 영상을 보기 전에 살짝 살펴본 책은 정말 어려웠습니다. 하지만 이 강의를 만드신 이유에 부합하게 강의를 보면서 책을 보니 이해가 되기 시작하더군요 :) 이렇게나 좋은 강의를 이 가격에 아무때나, 어디에서도 볼 수 있게 해주셔서 정말 감사드립니다..! 열심히 공부하고 성장해서 실제로 만나뵙고 인사드릴 수 있는 날을 고대하겠습니다!

    • 널널한 개발자
      지식공유자

      저도 처음 제프리 리처의 책을 볼 때 고생을 좀 했던 기억이 있습니다. 다행히 이 강의가 방향을 잡는데 도움을 드린 것 같습니다. 로드맵 끝까지 잘 마무리하시고 좋은 결과로 이어질 수 있기를 응원하겠습니다. 좋은 평가와 피드백 고맙습니다. :)

  • Jimen님의 프로필 이미지
    Jimen

    수강평 5

    평균 평점 4.8

    5

    100% 수강 후 작성

  • logt님의 프로필 이미지
    logt

    수강평 10

    평균 평점 5.0

    5

    100% 수강 후 작성

    선생님 강의 잘 봤습니다~! 바로 소켓 프로그래밍 강의로 갑니다. 또 리뷰 남길게요~! 새해 복 많이 받으십쇼 :)

    • 널널한 개발자
      지식공유자

      와우~! 새해를 맞아 열공모드로 달리시나보네요. 완강하느라 고생하셨습니다. 이 기세를 그대로 이어 소켓 프로그래밍에서도 좋은 성과 거두시기를 응원하겠습니다. 새해 복 많이 받으세요. :)

널널한 개발자님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!