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

(5.0) 수강평 2

수강생 415

Thumbnail

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

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

이런 걸
배워요!

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

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

 

커리큘럼

전체

31 ∙ 5시간 29분

강의 게시일: 2024년 05월 28일
마지막 업데이트일: 2024년 06월 03일

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!