Thumbnail
BEST
개발 · 프로그래밍 데스크톱 앱 개발

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

(5)
10개의 수강평 ∙  595명의 수강생
110,000원

월 22,000원

5개월 할부 시
지식공유자: 널널한 개발자
총 40개 수업 (11시간 10분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

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

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

✍️
이런 걸
배워요!
윈도우 시스템 보안체계에 관한 이론
멀티스레드 프로그래밍과 동기화 기법
동기/비동기 파일 입/출력 기법
가상 메모리 시스템과 메모리 운용 기법
프로세스 관리와 공유 메모리 기반 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분의 수업
이 강의는 영상, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. 기본 이론
User mode와 Kernel mode 미리보기 07:06
대전제 (feat. 핸들) (강의자료) 12:01
보안 객체와 (보안) 기술자 미리보기 21:28
Access token과 프로세스 권한 상속 11:35
SECURITY_ATTRIBUTES 구조체 (강의 전체에 사용된 예제 포함) 13:15
섹션 2. 스레드 생성 및 제어
스레드에 대한 기본 이론 미리보기 22:42
스레드 생성 및 종료 대기 19:40
_beginthreadex() 함수 11:36
스레드 제어 및 상태전환 22:09
Sleep() 함수 20:09
섹션 3. 스레드 동기화
기본 이론 미리보기 16:55
시점 동기화 16:11
임계영역 기반 동기화 29:39
세마포어 11:32
친화력 조절 (feat. 꼼수) 12:36
섹션 4. Win32 파일 입/출력
디스크, 디렉토리, 파일열거 미리보기 20:31 동기 파일 입/출력 API와 파일 복사 미리보기 21:45
비동기 파일 입/출력 (Event 방식) 18:35
비동기 파일 입/출력 (Callback 방식) 23:17
메모리 맵 파일 22:11
메모리 맵과 비동기 입/출력 조합 #1 07:26
메모리 맵과 비동기 입/출력 조합 #2 06:42
IOCP 모델 개요 09:43
섹션 5. 메모리 시스템
가상 메모리 기본 이론 #1 미리보기 32:11
가상 메모리 기본 이론 #2 24:26
힙 메모리 활용 36:24
프로세스 힙 확인 11:58
가상 메모리와 보호 모드 17:13
섹션 6. 프로세스 관리
프로세스 생성 및 제어 09:31
실행 중인 프로세스 열거 05:50
프로세스 동기화 및 IPC #1 20:47
프로세스 동기화 및 IPC #2 16:53
섹션 7. DLL
DLL 기본 이론 미리보기 17:09
묵시적 로딩 DLL 라이브러리 개발 19:01
명시적 로딩 DLL 라이브러리 개발 17:46
DLL 작성 시 주의사항 18:45
멀티스레드 환경을 고려한 DLL 개발 07:59
강의 게시일 : 2023년 06월 15일 (마지막 업데이트일 : 2023년 06월 15일)
수강평 총 10개
수강생분들이 직접 작성하신 수강평입니다.
5
10개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
Hyunjung Hwang thumbnail
5
좋은 지식 얻어갑니다 감사합니다!
2024-02-28
지식공유자 널널한 개발자
좋은 평가와 피드백 고맙습니다. :)
2024-03-01
김연도 thumbnail
5
정말 양잘의 강의 감사합니다. 비전공자라 윈도우의 많은 함수와 많은 매개변수들이 막막하고 무섭게 느껴졌는데 강의를 따라가며 개념을 알고 마소 홈페이지도 가보고 하면서 공부하다보니 코드의 압박이 사라졌고 스레드 동기화 기법, 가상메모리, DLL 같이 몰랐던 것들을 많이 알 수 있었습니다. 이쯤 미니프로젝트 하나 할 타이밍이긴 한데.. mfc만 듣고 하겠습니다. 다음에도 좋은 강의 부탁드립니다.
2024-02-29
지식공유자 널널한 개발자
좋은 평가와 피드백 고맙습니다. 미니 프로젝트를 하나 하시면 좋을 타이밍이 맞습니다. 생각하시는 것처럼 MFC GUI를 갖는 간단한 응용 프로그램을 만들어 보는 것도 좋겠습니다. 다만 GUI와 작업자 스레드를 연결하는 부분이나 동기화하는 것에는 별도 기술이 요구됩니다. MFC 수업에서 그런 부분을 다루고 있지 않아 살짝 걱정이 됩니다. 고맙습니다. :)
2024-03-01
MachineLearning thumbnail
5
윈도우 GUI 개발을 해야 할 일이 있어서 시스템 프로그래밍 이론 기초부터 필요해서 수강했습니다. 이해가 쏙쏙 되네요. 감사합니다.
2024-01-12
지식공유자 널널한 개발자
MFC나 Win32 API를 사용하고 계시는 모양이네요. 고생이 많으시다는 말씀드립니다. 그리고 좋은 평가와 피드백 고맙습니다. :)
2024-01-14
유용 thumbnail
5
시스템 프로그래밍 관련 내용에 대해서 처음 접했습니다. 이전에는 보안 및 웹 등 이것저것 다 들어 봤는데 제가 수강 하면서 느낀 점 장점: 1. 복잡하고 어려운 내용을 잘 풀고 설명해주신다. 2. 어떤 식으로 프로그램이 돌아가는지 직접 보여주신다. 3. 개발 시 오류 문제를 미리 지적 해주신다. 4. 숙제를 주시는데 만들다 보면 여러가지 성과를 얻을 수 있다. 전체 수강 평 초심자가 접근 하기에 어려움 강의 시작 전에 미리 추천 강의들을 알고 들어와야지 이해 할수 있다고 하시는데 진짜 해당 내용을 안 들으면 수강을 하면 이해가 전혀 안 될수 있음 반면에 기초 지식(추천해주신 강의)이 있으면 내용이 상당히 알차고 이해가 잘됨 아쉬운 점은 다음 스탭으로 넘어갈 강의를 추천 또는 강의를 통해 만들어 볼만한 프로그램 제작에 대한 추천 정도가 있었으면 좋겠습니다.(과제 느낌) 개인적으로 제가 이 강의를 보면서 느낀 점입니다.
2024-04-20
지식공유자 널널한 개발자
와우~~! 정성이 가득 담긴 소중한 피드백 고맙습니다. 그리고 지적해주신 부분도 적극 고려해보도록 하겠습니다. 사실 과제 부분은 향후 언제고 진행하게 될 오프라인 교육을 위해 남겨둔 것이기도 합니다. 굳이 오프라인이 아니더라도 다른 스터디 모임을 통해 진행하는 것이 좋겠다는 생각도 있습니다. 얼른 실행에 옮기도록 하겠습니다. 좋은 의견과 평가 고맙습니다. :)
2024-04-22
Seongc좋은ᅵᅵheol Kim thumbnail
5
강사님이 친절하십니다
2024-04-14
지식공유자 널널한 개발자
좋게 봐주셔서 고맙습니다. :)
2024-04-14