2021학년도
한국IT직업전문학교
신입생 모집
02.25 ~ 02.28 원서 접수하기
  • 수능 / 내신 미반영
    (계열 면접 선발)
  • 면접&적성검사 100%선발
  • 선행학습 무료지원

장학안내
1. 교과목 학습목표
TCP/IP 네트워크 프로그래밍의 이론 및 코딩을 진행한다.
-소켓,프로토콜,아이피,포트에 대해 이해하고 이를 코딩할수 있다.
-소켓 프로그래밍이 시스템 프로그래밍의 일부임을 이해하고 에러로 문제점을 찾을 수 있다.
-커널,커널오브젝트,프로세스,쓰레드,멀티쓰레드,뮤텍스,세마포어,이벤트를 이해하고 프로그램에 맞게 코딩할 수 있다.
-데이터 프로로콜을 짜서 클라이언트와 서브에 각각 적용해 나만의 네트워크 프로그래밍을 만들 수 있다.
2. 교재 및 참고문헌
네트워크 프로그래밍 ( 패킷이 보이는 네트워크 프로토콜과 실무형 예제로 익히는 ) (프리렉,최지훈)
3. 주차별 강의(실습·실기·실헙)내용
주별 강의(실습·실기·실험)내용 과제 및 기타 참고사항
제 1 주 0.강의개요,강의방향을 설명하고
  • 개발환경을 꾸리며(visual studio 2019 community를 설치하고 우분투 리눅스에 접속하는 putty 프로그램을 설치 후 접속을 해보았다.)
  • C의 복습을 진행하여 변수,상수,포인터,함수,배열 등을 코딩해보았다.
현재 설치된 visual studio 2019 community 실행화면을 캡쳐하고
putty program으로 접속한 우분트 리눅스에 자신의 이름을 딴 폴더를 만들어 pwd로 화면캡쳐
접속한 자신의 pc 의 공인 IP를 캡쳐

해서 보낸다.
제 2 주 1장 소켓 프로그래밍 기본
  • 프로토콜,포트,아이피,OS 7Layer/TCP/IP참조모델을 비교
  • 데이터가 전송되는 과정을 소개하고
  • C를 좀더 보강한다.구조체까지 나아가서 코딩을 진행
  • 시스템 프로그램의 일종이기에 에러처리를 한다.
강의시간에 했던 소스를 이용하는 간단한 프로그램을 짜보도록 한다. (windows OS)
교재1장의 소스를 우분투리눅스(putty로 접속)에 접속해서 컴파일해보도록 하고 그것을 실행한후 화면을 캡쳐한다.
제 3 주 2장 소켓 API
  • server : socket,bind,listen,accept,recv,send,close를 코딩해본다. 윈도우 소켓이라 WSAStartup,WSACleanup을 추가해서 써야 한다. 에러처리도 제대로 해본다.
  • client : socket,connect,recv,send,close를 코딩해본다. 윈도우 소켓이라 WSAStartup,WSACleanup을 추가해서 써야 한다. 에러처리도 제대로 해본다.
강의시간 했던 소스에 inet_addr과 inet_atoa 부분은 에러가 나기에 강제로 전처리로 처리를했다. 이 부분을 함수를 써서 코딩을 완성해서 제출케 한다.
교재2장의 소스를 우분투리눅스(putty로 접속)에 접속해서 컴파일해보도록 하고 그것을 실행한후 화면을 캡쳐한다.
제 4 주 3장 TCP 소켓
  • server : echo 서버를 만들어 본다. 데이터도 다양하게 만들어서(이걸 사용자 프로토콜, 데이터프로토콜이라 칭하겠다) 보내도 본다.
  • client : echo 클라이언트를 만들어본다.
강의시간에 했던 소스를 이용하는 간단한 프로그램을 짜보도록 한다. (windows OS)
교재3장의 소스를 우분투리눅스(putty로 접속)에 접속해서 컴파일해보도록 하고 그것을 실행한후 화면을 캡쳐한다.
제 5 주 3장 TCP 소켓
  • server : 이제껏 하나의 클라이언트만 처리할 수 있게 했다. 다수의 클라이언트를 처리할 수있는 iterative server를 만들어 보고 문제점을 짚어본다..echo 서버를 가지고 한다.
  • client : echo 클라이언트를 그대로 쓴다.
강의시간에 했던 소스를 이용하는 간단한 프로그램을 짜보도록 한다. (windows OS)
교재3장의 소스를 우분투리눅스(putty로 접속)에 접속해서 컴파일해보도록 하고 그것을 실행한후 화면을 캡쳐한다.
제 6 주 4장 UDP 소켓
  • TCP와 UDP 소켓의 차이를 알아보고 비교하는 코딩을 진행한다.
강의시간에 했던 소스를 이용하는 간단한 프로그램을 짜보도록 한다. (windows OS)
교재4장의 소스를 우분투리눅스(putty로 접속)에 접속해서 컴파일해보도록 하고 그것을 실행한후 화면을 캡쳐한다.
제 7 주 중간고사 -
제 8 주 9장 멀티플렉싱 기법
  • server : 다수의 클라이언트를 처리하기 위한 기법으로 슈퍼 히어로같은 멀티플렉서 기법을 알아본다. select 함수를 제대로 써보고자 한다.
제 9 주 8장 멀티 스레딩을 이용한 다중 접속 서버
  • 쓰레드와 프로세스
  • 쓰레드가 메모리에서 관리하는 것
  • 제멋대로 날뛰는 쓰레드를 제대로 잡아주는 뮤텍스,세마포어,이벤트
쓰레드와 그것을 잡아주는 이벤트를 사용한 프로그램을 하나 짜본다.
제 10 주 8장 멀티 스레딩을 이용한 다중 접속 서버
  • server : 쓰레드를 다중 클라이언트를 제어하기 위해써본다.echo 서버를 가지고
  • client : echo client 를 가지고 쓰레드를 적용해본다. 데이터를 보내고 받을 때 각각
뮤텍스말고 세마포어나 이벤트로 다중접속 클라이언트를 제어할 수 있도록 프로그램을 바꾼다.
제 11 주 10장 소켓옵션,11장 raw Socket, 14장 IPv6 는 리눅스베이스로 설명하고 그것대로 리눅스에서 실행해본다.
제 12 주 13장 Windows 고급 네트워크 프로그래밍
  • windows OS에서 사용하는 비동기 함수를 사용해 다수의 클라이언트를 제어할 수있도록 한다.
  • OVRELAPPED
제 13 주 13장 Windows 고급 네트워크 프로그래밍
  • windows OS에서 사용하는 비동기 함수를 사용해 다수의 클라이언트를 제어할 수있도록 한다.
  • IOCP
  • API에 사용된 예제를 보여준다.
비동기 윈도우 소켓 함수를 이용한 프로그램하나를 짜게한다.
제 14 주 15장 Packet Socket,16장 응용 프로그램
  • 을 교재와 리눅스 소스를 가지고 설명하고 실행해본다.
제 15 주 기말고사 -
4. 성적평가 방법
중간고사 기말고사 과제물 출결 기타 합계 비고
30% 30% 20% 20% - 100% -
5. 수업 진행 방법
-
6. 수업에 특별히 참고하여야 할 사항
-
7. 문제해결 방법(실험·실습 등의 학습과정의 경우에 작성)
-
8. 강의유형
이론중심(  ), 토론, 세미나 중심(  ), 실기 중심(  ), 이론 및 토론, 세미나 병행(  ), 이론 및 실험, 실습 병행(  )

퀵메뉴제목

입학상담문의 프로젝트경진대회 TOP