network

CS

[Network] TCP Socket Programming - 데이터 전송하기

목표 이번 글에서는 TCP Socket을 직접 만들어보면서 TCP에 대한 이해를 높임과 동시에 TCP 서버도 만들어보겠습니다. 이 글에서는 데이터 전송하기까지만 다뤄보겠습니다. TCP Socket TCP Client의 흐름도 TCP에서는 누구와 통신하고 있는지 먼저 정하고 통신이 진행됩니다. 그리고 누구와 통신한다고 정해져 있기 때문에 상대와 어떤 통신을 했는지 기록을 하게 됩니다. 이 기록을 State라고 합니다. Client의 connect()는 통신할 상대와 가상의 연결을 맺습니다. UDP 하고 가장 큰 다른 점은 클라이언트 측에서 socket을 만들고 connect를 한다는 점입니다. 가상의 연결이 맺어지면 UDP의 sendto(), recvfrom() 같은 데이터를 보낼 때마다 명시해야 했던 내..

CS

[Network] Protobuf, JSON

목표 이번 글에서는 최근 많은 개발자들 사이에서 화두가 되고 있는 Protobuf에 대해 알아보려고 합니다. Protobuf는 어떤 것이며 기존의 데이터 포맷(예: JSON, XML)과 어떤 차이점이 있는지에 대해 알아보겠습니다. Protobuf란 무엇인가? Protobuf, 또는 '프로토콜 버퍼'는 Google에서 개발한 이진 데이터 포맷입니다. 구조화된 데이터를 직렬화하고 역직렬화하는 데 사용되며, 효율적이고 빠르게 데이터를 전송하고 저장할 수 있습니다. Protobuf의 특징 이진 포맷: Protobuf는 이진 데이터 포맷을 사용하여, 사람이 읽을 수 있는 포맷보다 훨씬 더 작고 빠르게 데이터를 전송합니다. 언어 중립: 여러 프로그래밍 언어에 대한 지원이 포함되어 있어 다양한 언어로 개발된 시스템 ..

CS

[Network] Socket Programming (TCP, UDP)

들어가기 전에 백엔드 소프트웨어 개발이라는 강좌를 학교에서 듣고 있는데 너무 유익해서 꼼꼼히 정리해보려고 합니다. 이번 포스트에서는 Socket Programming에 대해서 써보겠습니다. Socket이란? 뭔가를 집어넣기 위해서 자연적 혹은 인위적으로 만든 구멍 어떤 기능을 추가하기 위해서 혹은 제공되는 기능을 쓰기 위해서 만든 구멍 예를 들어서 TCP 혹은 UDP를 쓰고 싶다면 Transport에 있는 socket을 만들면 됩니다. 소켓은 어떤 계층이 되었든 간에 자기가 그 서비스를 쓰고 싶으면 만들 수 있습니다. Network Socket Library network layer를 손쉽게 접근할 수 있게 도와주는 library (ex: 프로토콜 옵션 조정, 헤더 자동 채우기 등) 1980년대 Berk..

진세박
'network' 태그의 글 목록