강의

멘토링

로드맵

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

/

데스크톱 앱 개발

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

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

(5.0) 수강평 34개

수강생 985명

저자 직강
win32api
Cvc++system-programming

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

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

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

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

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

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

안녕하세요
입니다.

37,027

수강생

2,157

수강평

1,099

답변

4.9

강의 평점

24

강의

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

커리큘럼

전체

40개 ∙ (11시간 10분)

해당 강의에서 제공:

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

수강평

전체

34개

5.0

34개의 수강평

  • wjdwlgns8096님의 프로필 이미지
    wjdwlgns8096

    수강평 2

    평균 평점 5.0

    5

    30% 수강 후 작성

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

      좋은 평가 고맙습니다. :)

  • Sub님의 프로필 이미지
    Sub

    수강평 3

    평균 평점 5.0

    5

    30% 수강 후 작성

  • sunny75님의 프로필 이미지
    sunny75

    수강평 95

    평균 평점 5.0

    5

    100% 수강 후 작성

    (25/07/26/토 09:41) 강의의 많은 내용으로, 정말 많은 도움을 받고 있습니다. 동기화가 중요하다는 생각을 하게 되네요. 강의 중 주의사항에서 경험하신 내용을 말씀해 주시니, 좋은 것 같습니다. 좋은 강의 만들어 주셔서 감사합니다.

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

      정말 어마무시하게 달리시는 군요. 이제는 살짝 무서울 정돕니다. 아무튼 이 기세를 응원합니다. :)

  • 무무님의 프로필 이미지
    무무

    수강평 6

    평균 평점 5.0

    수정됨

    5

    100% 수강 후 작성

    멀티스레드 환경에 대한 기초 공부 및 C언어에서의 입.출력 함수 및 함수포인터를 왜 배우는지 알게 해주는 과정이었습니다. ====== 이번에 시스템 프로그래밍을 공부하면서 및 C언어 입력,출력을 복습하게 될 계기가 생겼습니다. (2번 정도 봤지만 써야 될 상황이 없었어서 빠르게 넘겼었습니다.) 가장 어려운 파트는 WIN32 파일 입/출력 파트였습니다. 그 전엔 CS 기초지식 및 OS 운영체제 파트에서 눈에 익도록 봐서 적응에 어려움이 없었지만 해당 파트는 본 적도 없었어서 무슨 말인지 모르겠고... 예제를 어떻게 작성하라는지 모르겠다 하다가 3~4번 복습 하고 하루 휴식하고 보니 이상하게 내용이 간단하게 보이고 이해가 되었습니다. 물론 코파일럿과 GPT의 도움으로 자료형과 함수가 왜 호출되고 사용되는지 공부한 건 덤 입니다. === 위의 과정을 거치고 소켓 프로그래밍 - 네트워크 프로그래밍 학습을 가보려고 합니다. 마침 학원이라 컴퓨터가 많아서 컴퓨터 4대로 실습 할 수 있으면 좋다(?) 는 내용을 봤어서 공부하기 더할 나위 없다고 생각 합니다. === 마지막으로 현재 제가 겪는 상황들을 적는 것도 정신적으로 어려움을 겪으시는 분들께 도움되지 않을까해서 적어봅니다. (현재 자바 스프링 목표 백엔드 공부 기간 3개월째 (최소 1년 반 보는 중) 현재 저는 월~일 주 7일 근무를 돌리고 있습니다. (월-토는 새벽 6시 30분 - 10시 30분 / 일요일은 출퇴근시간 포함 아침 7시 - 저녁 10시) --- 저번 주부터 이번 주까지 돈에 관련되서 정말 많은 고민을 했습니다. 월요일부터 일요일까지 일을 해서 버는 돈은 160인데, 만약 공부를 포기하고 시간을 늘려서 일을 하면 260 ~ 430까지 받을 수 있는 상황인 것이죠. 그래서 차라리 일을 바짝 땡겨서 돈을 버는 것이 낫지 않나라는 충동적인 생각이 들었습니다. 그 충동의 원인은 현재 AI로 IT 업종 기준 자체가 상향평준화가 되고 제가 목표로 하고 있는 것이 서버 개발직군이 Google 개발자들의 코드리뷰로 학습하는 GPT 및 AI들이 그걸 못 따라올까? 앞 길을 모르겠는데, 돈을 미친듯이 바짝 땡기는게 낫지 않나.. 내가 과연 이 업계에 합격하고 경력이 쌓이면 AI보다 더 잘 할 수 있나? 등의 불안과 고민으로 우울증을 심하게 겪었습니다. 현재는 어제까지 3일 정도 푹 쉬고 마음을 정리했습니다. 정답은 없고 지금 하는 공부가 재밌기에 이대로 가자! 후에 상황이 어떻게 될지 모르니 돈은 최대한 모으자! 라는 방향으로 툴툴 넘기고 다시 공부를 하고 있습니다. 불안은 미래의 내가 더 잘 되기 위해 과잉 고민을 / 무기력은 정서적인 에너지를 충전하라고 신호를 보내는 것이라고 하더라고요. 다들 힘들시겠지만 화이팅 입니다!

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

      고민스러운 대전환의 시대를 살아가는 한 개인의 고민이 오롯이 드러나는 피드백 고맙습니다. 저 역시 비슷한 고민을 하고 있는 중년의 가장이라 더 마음이 가네요. 돈...정말 중요합니다. 어떤 연예인이 그런 말을 하더라고요. 사람은 가도 돈은 남더라는...자본주의 사회에서 자신의 이익을 추구하는 것은 매우 당연하지요. 학습도 경쟁력을 갖추는 좋은 수단 중 하나입니다. 그렇게 실력을 쌓아 돈도 많이 많이 버시기를 바라고 응원하겠습니다. 잘 되실 겁니다. 고맙습니다. :)

  • 시아님의 프로필 이미지
    시아

    수강평 2

    평균 평점 5.0

    5

    30% 수강 후 작성

월 ₩22,000

5개월 할부 시

₩110,000

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

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

비슷한 강의

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