강의

멘토링

커뮤니티

BEST
개발 · 프로그래밍

/

데스크톱 앱 개발

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

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

(4.9) 수강평 36개

수강생 1,070명

Wireshark
이론 실습 모두
소켓
패킷
vm
npcapwinpcapvc++네트워크tcpip

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

수강 후 이런걸 얻을 수 있어요

  • 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 소켓 프로그래밍 경험

안녕하세요
입니다.

45,694

수강생

2,546

수강평

1,143

답변

4.9

강의 평점

25

강의

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

커리큘럼

전체

31개 ∙ (5시간 29분)

해당 강의에서 제공:

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

수강평

전체

36개

4.9

36개의 수강평

  • 50dongyea3081님의 프로필 이미지
    50dongyea3081

    수강평 6

    평균 평점 5.0

    5

    30% 수강 후 작성

    GOOD

    • nullnull8537
      지식공유자

      First and foremost, thank you for the great review. :)

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    수강평 113

    평균 평점 5.0

    5

    100% 수강 후 작성

    2025/06/08 21:28 I enjoyed the lecture. Thank you for the good lecture.

    • nullnull8537
      지식공유자

      Wow~! You saw it through! Thanks for the good review and feedback. :)

  • sungmin2010773646님의 프로필 이미지
    sungmin2010773646

    수강평 1

    평균 평점 5.0

    수정됨

    5

    97% 수강 후 작성

    I felt like my first review was a bit clumsy, so I'm writing it again 😊😊 First of all, thank you so much for introducing me to the rather niche field of packet capture, instead of socket programming, which is a very important area in security 😭😭 And thank you so much for allowing me to create the program I wanted to make with just this one lecture. I will continue to take this course and improve my skills so that I won't be intimidated by anyone when it comes to network programming. Thank you. Oh! And is it possible to download this lecture? I honestly want to keep it for personal use even if I have to pay extra, but I guess that's not possible, right?? 😭😭

    • nullnull8537
      지식공유자

      I'm so glad the lecture seems to align with your study direction. As an instructor, I'm especially proud that you're now able to develop the program you wanted. I'll be cheering you on in your future learning endeavors. :) Also, the lecture offers unlimited access. I would appreciate your understanding if this falls a bit short of your expectations.

  • cumaskr1817님의 프로필 이미지
    cumaskr1817

    수강평 14

    평균 평점 5.0

    5

    100% 수강 후 작성

    Using sockets to Send()/Receive() After that, the information of the network (L4/L3/L2) set by the OS was only organized abstractly, but when I saw the actual code logic (especially the logic that directly creates and interprets packets) and data being sent/received without sockets, it felt like I had been hit in the head with a hammer. I think I have also gained a deeper understanding of the network. Wow, thank you!

    • nullnull8537
      지식공유자

      I think my life has really changed with the feedback that it was like getting hit in the head. I hope that various theories will now be accepted as concrete facts at the code level, rather than abstract expressions. Thank you for the good reviews and feedback. :)

  • cjlee2010님의 프로필 이미지
    cjlee2010

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    • nullnull8537
      지식공유자

      Thank you for the good review. :)

₩77,000

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

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

비슷한 강의

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