전체 글 289

네트워크 소켓(Socket)은 무엇인가

자 이제 소켓 프로그래밍을 하기 위해 기초지식을 알아보자. 먼저 소켓이 뭔지 알아야 할 것이다. 소켓이란? 인터넷 소켓(Internet socket, socket' 혹은 network socket 라고 부르기도 한다)은 네트워크로 연결되어 있는 컴퓨터의 통신의 접점에 위치한 통신 객체다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다.소켓은 RFC 147에 기술사항이 정의 되어 있다. 인터넷 소켓은 다음과 같은 요소들로 구성되어 있다. 인터넷 프로토콜 (TCP, UDP, raw IP) 로컬 IP 주소 로컬 포트 원격 IP 주소 원격 포트 라고 위키피디아에 나와 있다. 네트워크 프로그래밍은 소켓을 이용하는데, 뭐 소위 소켓 프로그래밍이라고 부른다. 요 소캣 프..

UDP (User Datagram Protocol)

UDP(User Datagram Protocol) 를 알아 보자, TCP에 비하면 진짜 간단하고 뭐 없다. 먼저 UDP 프로토콜의 포맷을 보겠음. 포트 번호, 길이, 체크섬, 데이터 이게 전부다. 이렇게 간단하다는 말은 동작 방식에도 특별한 점이 없다는 것임. 먼저 UDP는 비연결 지향형이다. TCP 처럼 3-ways-handshaking 같은 과정을 거쳐 세션을 맺은 상태에서 통신하는 것이 아니라 그냥 보내고 받는 것이다. 그러니 흐름제어, 혼잡제어 따위는 존재할리가 없다. 그리고 UDP를 설명할 때 항상 나오는 말이 있다. "Best effort" 라고 하는 말인데, '노력은 하되 책임 지지 않는다' 이런 말이다. 이게 무슨 말이냐. 보내기만 보내고 신경을 쓰지 않는다는 말이다. 송신자가 보낸 패킷이..

TCP (Transmission Control Protocol)

소켓 프로그래밍을 하기 위해 전송 계층 프로토콜 (TCP, UDP)에 대해 먼저 알아보자. 먼저 TCP의 구조를 한번 봅시다. 송,수신지 포트, Seq. num, flag 등등 복잡한 구조를 갖고 있다. 각각의 내용들은 뒤에 하고 먼저 TCP의 특징 몇가지를 간단하게 정리하겠다. 1. Point-to-Point 즉, 송신자와 수신자 1:1 통신이다. 3-ways-handshaking(3HSK) 을 통해 세션을 맺은 상태에서 통신하므로 1:1 통신이다. 이렇게 세션이 맺힌 상태에서는 언제든지 데이터를 주고받을 수 있는 상태이므로 TCP는 연결 지향형(Connection-oriented), 양방향형(Full Duplex) 이라고 말할 수 있다. 2. 신뢰할 수 있는 통신이다. 데이터를 보내고 잘 갔는지 확인..

소프트웨어 공학 - 테스팅 프로세스

테스팅 프로세스에서는 검증과 확인 (V&V : Verification and Validation)이라는 작업, 그리고 시스템 테스팅, 검사와 검토 과정을 수행하게 된다. 검증(Verification)은 시스템이 명세서에 적합한지 확인하는 과정이고, 확인(Validation)은 고객이 요구사항을 만족하는지 확인하는 작업이다. 시스템 테스팅은 시스템에 의해 처리되는 실제 데이터 명세서에 정의된 테스트 케이스들을 직접 실행시켜보는 것 즉, 그냥 원래 정해놓은 테스트 경우들을 실행해보는 것이다. 테스팅 프로세스에 대한 과정은 아래와 같다. 1. Unit Test 단위 테스트 즉, 개별적인 부분에 대한 테스트이다. 2. Module Test 단위 테스트에서 하던 그 단위들의 모임 즉, 모듈 단위로 테스트 한다. ..

소프트웨어 공학 - 프로젝트 관리

소프트웨어 공학에서 굉장히 중요한 부분중 하나인 프로젝트 관리(Project Management)에 대해 알아보자. 관리 활동 / 계획 수립 / 일정 수립 / 위험 관리 등의 과정으로 나뉜다. 소프트웨어 개발 프로젝트의 최종 결과물은 기본적으로 아래와 같은 것들에 영향을 받는다. 위 내용 다 중요하지만 굳이 경중을 두자면 마감일(delivery deadline), 활용 분야(application domain), 기술(technology to be implemented), 시스템 제약 조건(system constraints) 등이 되겠다. 위 요소들에 영향을 받는 최종 결과물을 지칭하는 말이 있는데 The 4P's 라는 것이다. 1. People : 사람이다. 프로젝트에서 가장 중요한 요소이다. 2. Pr..

반응형