채널톡 아이콘
BEST

이해하면 인생이 바뀌는 네트워크 프로그래밍

Npcap 라이브러리를 이용해서 Wireshark 같은 패킷 분석기 프로그램 및 각종 네트워크 솔루션을 직접 개발하려는 분들을 위한 강의 입니다.

Thumbnail

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

이런 걸 배울 수 있어요

  • Npcap 라이브러리 사용방법

  • 패킷 분석기 개발 방법

  • TCP/IP 프로토콜을 직접 구현하는 방법

외워서 끝냈던 것들에 대한 이해를 얻을 수 있는

"널널한 개발자 네트워크 강의의 최종 완결편!"

Socket과 네트워크에 대한 본질을 이해할 수 있습니다!

소켓 프로그래밍을 할 수 있는 사람은 많습니다. 하지만

"소켓 라이브러리를 직접 구현해본 경험을 가진 사람은 많지 않습니다!"

TCP/IP 네트워크에 대한 깊은 이해와 더불어 C/C++ 개발자로써도 일정 수준 이상의 역량을 갖춰야 하기 때문입니다. 이 강의를 통해 단순히 소켓을 사용하는 개발자가 아니라 필요하다면 소켓 시스템 그 자체를 스스로 만들 수 있는 개발자로 성장 할 수 있습니다.

내 손으로 직접 Wireshark을 개발할 수 있습니다!

패킷 수집을 위해 Wireshark이 이미 사용하고 있는 Npcap 라이브러리를 이용해 내 손으로 직접
Wireshark 같은 패킷 분석기 소프트웨어를 개발할 수 있습니다.
(※Npcap은 기존 WinPcap을 대체하는 패킷 수집 라이브러리 입니다.)


Npcap 홈페이지

널널한 개발자 YouTube 강의 (조회수 약 34만)

이례적으로 조회수 33만 8천(2024년 5월 기준)을 넘긴 네트워크 이론강의의 핵심을 C언어 코드로 옮겨 담았습니다.

이 영상이 그러했듯 이 강의를 듣기 전과 후로 네트워크에 대한 이해 수준은 완전히 달라질 수 있습니다. 추상적으로 들렸던 모든 설명이 구체적인 코드 수준에서 이해되는 놀라움을 경험해보세요.

이런 분들께 추천해요

C/C++ 기반의 패킷 분석기를
개발해야 하는 분

네트워크 패킷을 분석하고 모니터링 하기 위한 시스템을 개발해야 하는 분이 꼭 알아야 할 내용들을 핵심만 모아 간결하게 배울 수 있습니다.

특히 장애 및 이상 징후 탐지 시스템을 개발하려는 분들이 꼭 알아야 할 내용들을 다룹니다.

TCP/IP 기반 네트워크에 대해서 코드 수준의
깊은 이해를 원하는 분

개념적으로 배웠던 패킷을 코드 수준에서 직접 다뤄보고 이해 할 수 있습니다.

이를 통해 '캡슐화'의 의미를 명확 알 수 있고 나아가 인터넷을 이루는 기반 기술들을 보다 명확하게 이해할 수 있습니다.

네트워크를 사용해야 하는
IoT 장치를 개발 중인 분

IP패킷을 직접 만들고 생성해 전달하는 방법을 배울 수 있고 이를 바탕으로 센서 값을 전달하는
소형 IoT 장치를 어떻게 개발 할 수 있는지 알 수 있습니다.

수강 후에는

  • IP 패킷을 분석하고 필요한 정보를 추출할 수 있는 개발역량을 갖출 수 있습니다.

    • 각종 보안 솔루션 및 네트워크 장비를 직접 개발해야하는 분들이 반드시 알아야 할 내용들을 담았습니다.

    • 네트워크를 직접 다뤄야 하는 MES(Manufacturing Execution System) 및 IoT 장치 개발자가 꼭 알아야 할 내용을 배울 수 있습니다.

    • 방위산업체로 취업을 희망하는 분들이라면 꼭 알아야 할 내용들이라 할 수 있습니다.

  • 패킷 필터링 방화벽이나 NIDS를 제작하는데 필요한 핵심 이론들에 대해 깊이 이해할 수 있습니다.

    • 보안 업체로 취업을 희망하는 분들에게 매우 유리합니다!

  • TCP/IP 네트워크에 대해 개념적으로 아는 것이 아니라 코드 수준에서 구체적으로 이해할 수 있습니다.

강의 특징

PPT를 읽는 것이 아니라 강사가 직접 판서하고 설명하며 완벽한 실습 환경을 제공합니다.

강의 중 판서 내용 예시

핵심 구조를 그려가며 설명

예제 코드를 읽기만 하거나 PPT를 단순 나열하는 것이 아니라 전체 구조를 일일이 그려가며 설명합니다. 이러한 특징 때문에 결과가 아닌 과정을 볼 수 있고 어려운 이론도 쉽게 배울 수 있습니다.

무엇보다 강의의 사용된 예제와 구조간의 연결점을 쉽게 파악 할 수 있습니다.

가상환경 기반 실습 지원

네트워크 프로그래밍 특성 상 여러 컴퓨터가 필요합니다. 하지만 이 수업에서는 모든 실습 및 개발을 VMware player 및 Windows 11 VM을 이용합니다.

모든 실습 과정을 강사의 환경과 동일하게 재현하고 결과를 확인 할 수 있으며 안전성이 보장 됩니다.

이런 내용을 배워요

사실 상 TCP/IP 직접 구현

Socket을 사용하지 않고 UDP 통신을 구현하거나 TCP/IP 세션을 제어하는 소프트웨어를 직접 구현합니다. 이는 소켓 시스템 그 자체를 직접 구현하는 것과 매우 유사하며 이런 실습을 통해 소켓 프로그래밍을 넘어서는 높은 이해를 얻을 수 있습니다.

IP헤더 직접 정의

지금껏 보지 못했던 메시지 송/수신 시스템

L2 Ethernet frame 데이터를 직접 생성하고 NIC에 직접 전달하는 방식으로 상식적인 환경에서는 볼 수 없었던 L2 메시징 시스템을 예제로 만날 수 있습니다. 또한 각종 프로토콜 헤더를 직접 조작하는 방식으로 TCP/IP 세션에 개입하는 등 쉽게 경험할 수 없었던 상황을 직접 확인 할 수 있습니다.

Ethernet 헤더 분석 및 조작

궁금한 점이 있나요?

Q. C/C++, 자료구조를 공부하고 이제 겨우 네트워크 공부를 마친 상황입니다. 수업을 따라 갈 수 있을까요?

가능하긴 하지만 소켓 프로그래밍 경험이 없다면 수업 자체를 이해하기가 어려울 수 있습니다. 아울러 Wireshark을 사용해본 경험도 있어야 합니다. 이 강의는 중급자를 위한 것이기 때문에 기초적인 설명은 하지 않습니다.

Q. 이 수업이 취업에 도움이 될까요?

네, 도움이 된다고 확실히 말씀드릴 수 있습니다. 희망 대상 기업과 분야에 따라 차이가 있겠습니다만 이 강의에서 다루는 내용과 관련된 개발자를 찾는 업체에 신입 개발자로 취업하는 경우라면 상당한 도움이 될 것입니다. 기업입장에서 확실히 초급자 수준은 아니라 판단 할 수 있기 때문입니다.

Q. 해킹 방법도 배울 수 있나요?

네, 배울 수 있습니다. 구체적인 방법을 제시하는 것은 아니지만 이 강의를 모두 끝낸 후에는 간단한 네트워크 해킹 도구를 스스로 개발 할 수 있습니다. 역설적이지만 보안과 해킹은 종이 한 장 차이라 할 수 있기 때문입니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows 11

  • 사용 도구: Visual Studio 2022 Community, Npcap 1.13 SDK, VMware player 17 및 Windows 11 가상머신

  • PC 사양: VMware player를 이용해 Windows 11 VM 1개를 구동한 상태에서 동시에 Visual Studio를 사용할 수 있는 환경

학습 자료

  • 강의에 사용된 PPT자료를 PDF로 제공

  • 전체 예제 및 실습에 사용된 각종 pcap 파일들 제공


선수 지식 및 유의사항

  • 포인터 사용에 어려움이 없는 수준의 C언어 프로그래밍 실력
    (독하게 시작하는 C 프로그래밍 수준 권장)

  • 선형 자료구조에 대한 이해 및 C언어로 연결 리스트를 구현해본 경험 (필수)


  • TCP/IP 네트워크 프로토콜에 대해 알고 있다고 가정 (외워서 끝내는 네트워크 핵심이론 기초 수준)

  • 간단한 TCP/IP 채팅 예제를 이해할 수 있을 정도의 소켓 프로그래밍 경험 (필수)

  • Wireshark을 사용해본 경험 (필수)

  • C++ 프로그래밍 (선택)

  • 윈도우 시스템 프로그래밍 경험 (선택)

연관 강의 📺

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • Wireshark 같은 분석기 프로그램을 개발하려는 분

  • C/C++ 기반 네트워크 솔루션을 개발하려는 분

선수 지식,
필요할까요?

  • C/C++ 프로그래밍 능력

  • 선형 자료구조에 대한 이해

  • Visual Studio 2022를 이용해 C/C++ 개발 및 디버깅 가능

  • TCP/IP 소켓 프로그래밍 경험

안녕하세요
널널한 개발자입니다.

31,471

수강생

1,565

수강평

1,002

답변

4.9

강의 평점

20

강의

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

 

커리큘럼

전체

31개 ∙ (5시간 29분)

해당 강의에서 제공:

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

수강평

전체

16개

5.0

16개의 수강평

  • hschun12

    수강평 1

    평균 평점 5.0

    5

    61% 수강 후 작성

  • 최오영

    수강평 6

    평균 평점 5.0

    5

    30% 수강 후 작성

    GOOD

  • logt

    수정됨

    수강평 9

    평균 평점 5.0

    5

    94% 수강 후 작성

    강의 잘 봤습니다~! 패킷 분석도 해보고, 위조된 패킷을 전송하는 원리를 직접 경험해볼 수 있어서 너무 좋았어요~! 감사합니다 선생님~!!

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

      결코 쉬운 내용이 아니었을 텐데 끝까지 완강하셨군요. 거기에 실습까지 완벽하게 끝내신 것 같습니다. 그 열정에 박수를 보냅니다. 고맙습니다. :)

  • 전우형

    수강평 12

    평균 평점 5.0

    5

    100% 수강 후 작성

    소켓을 사용하여 Send()/Receive() 이후 OS가 설정해주는 네트워크(L4/L3/L2)의 정보들을 추상적으로만 정리됬는데 실제 코드로직(특히 패킷자체를 직접 만들고 해석하는 로직)과 소켓없이 데이터가 송/수신 되는것을 보니 망치로 머리를 한대 맞은것 같습니다. 네트워크에 대하여 깊이도 더 생긴것 같습니다. 오우 감사합니다!

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

      머리를 한 대 맞은 것 같다는 피드백으로 정말 인생이 달라지신 것 같다 자평해봅니다. 이제 각종 이론들이 추상적인 표현이 아닌 코드 수준의 구체적 사실로 받아들여지길 바랍니다. 좋은 평가와 피드백 고맙습니다. :)

  • 안성민

    수정됨

    수강평 1

    평균 평점 5.0

    5

    97% 수강 후 작성

    처음 작성한 후기가 조금 엉성한 것 같아서 다시 한번 써봐요ㅎㅎ 우선 기존에 소켓 프로그래밍이 아닌 패킷 캡처라는 매니악 하지만 보안에서 매우 중요시 되는 분야를 알려주신 부분 정말로 감사드립니다ㅠㅠ 그리고 본 강의 하나 만으로 제가 만들고 싶어했던 프로그램을 만들어 볼 수 있게 해주셔서 정말로 감사드립니다 앞으로 해당 강의를 계속 수강 하면서 네트워크 프로그래밍에 관해서는 어디 가서 기죽지 않도록 저의 실력을 키워 나가겠습니다 감사합니다 아! 그리고 혹시 해당 강의는 다운로드가 불가능 한가요? 솔직히 추가금을 내서라도 개인 소장을 하고 싶은데 안되겠죠??ㅠㅠ

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

      강의가 하시는 공부 방향과 일치한 것 같아 정말 다행이네요. 무엇보다 바라셨던 프로그램을 개발 할 수 있게 되셨다니 강사로써 뿌듯합니다. 앞으로의 학습여정도 응원하겠습니다. :) 그리고 강의는 무제한 수강이 가능합니다. 다소 아쉬움이 있으시더라도 이해해주시면 고맙겠습니다.

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

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

비슷한 강의

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

연관 로드맵

강의가 포함된 로드맵으로 학습해 보세요!

월 ₩15,400

5개월 할부 시

₩77,000