본문 바로가기

IT 상식

(16)
[Network] TCP Socket Programming 프로젝트를 진행하다가 비동기통신/HTTP2 관련된 기술 내용을 다루던 중 TCP Socket 통신 기술이 언급되어서 한 번 정리 해본다. TCP는 두 종단간 신뢰성 있는 데이터 전송을 보장한다. 이를 위해 TCP에서 어떻게 연결 세션을 맺고 끊는지 알아보며, 마지막에는 Socket API와 TCP flow를 매핑하여 흐름을 알아보자. 1. TCP 3-way handshake 두 장치들 사이에 논리적인 접속을 성립 (establish)하기 위하여 TCP에서 사용하는 방법 - 정확한 전송을 보장하기 위해 상대방 장치와 사전에 세션을 수립하는 과정을 의미한다. TCP 3-way handshaking TCP 3-way handshaking 과정 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 클..
[IT상식] RFP, RFI, RFQ 란 무엇인가? 직장인이 꼭 알아야 할 용어 중 제안서와 관련된 RFP, RFI, RFQ에 대한 의미와 작성법을 적어봤습니다. RFP Request For Proposal이라 의미로, 흔히 제안 요청서라고 불립니다. 프로젝트 담당할 최종 업체를 선정하기 전, 1차로 선별된 업체들에게 보내는 문서인데요. 원하는 요구 사항을 체계적으로 정리한 문서라고 볼 수 있습니다. 제안 요청서에는 프로젝트의 주제, 목적, 목표, 내용, 기대성과 등 진행할 업무 내용에 대한 자세한 사항이 들어가는데요. 요청한 프로젝트의 과정과 결과를 확인할 때, 기입된 내용을 토대로 측정해볼 수 있기 때문입니다. 또한, 추후에 발생할 수 있는 업체 간 의견 충돌을 최소화해주는 역할까지 담당하고 있습니다. 작성법 제안 요청서의 핵심은 상대방이 RFP만 보..
[Network] HTTP(Hyper Text Transfer Protocol)의 기본 개념과 HTTPS와의 차이점 1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP는 1989년 팀 버너스 리(Tim Berners Lee)에 의해 처음 설계되었으며, WWW(World-Wide-Web) 기반에서 세계적인 정보를 공유하는데 큰 역할을 하였다. [ HTTP의 구조 ] HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한..
[Network] HTTP/2 란? HTTP/2 HTTP 2.0이라고도 불리는 HTTP/2는 Hypertext Transfer Protocol Version 2의 약자로서, 2015년 IETF에 의해 공식적으로 발표된 HTTP/1.1(기존 표준)의 차기 버전이다. IETF: Internet Engineering Task Force, 국제 인터넷 표준화 기구를 의미하며, 인터넷의 운영, 관리, 개발에 대해 협의하고 프로토콜과 구조적인 사안들을 분석하는 인터넷 표준화 작업기구 기반 SPDY(스피디/speedy로 발음)라는 구글의 비표준 개방형 네트워크 프로토콜에 기반한다. 기존의 HTTP methods, status codes, semantics 개념들이 동일하게 호환된다. Frame & Stream & Messages 기존에 Plain Te..
[IPC] GRPC에 대한 기본 개념과 이해 GRPC는 Groole Remote Procedure Call의 약자로 기존의 Client-Server의 HTTP 호출방식의 대안으로 떠오르는 IPC 기법입니다. 현대 시스템의 구조상 거대하고 복잡한 분산 환경 또는 MSA 환경이 주를 이루는데, 다양한 언어로 개발된 수많은 프로세스가 유기적으로 통신하면서 서비스를 제공합니다. 이런 복잡한 시스템 환경에서 일반적인 HTTP 통신보다 GRPC가 주는 이점이 많기 때문에 요즘 각광받고 있습니다. RPC 우선 RPC에 대해 간단히 확인하고 본론으로 넘어가도록 하겠습니다. RPC는 Remote Procedure Call 의 약자로 분산 네트워크 환경에서 조금 더 편하게 프로그래밍 하기 위한 등장하였습니다. 클라이언트 - 서버 간의 커뮤니케이션에 필요한 상세한 정..
[Process] IPC(Inter-Process Communication)의 개념과 종류 참고사이트 https://sujinnaljin.medium.com/socket-java-socket-%ED%86%B5%EC%8B%A0-d5b5a27a50a0
[Process] 프로세스(Process)와 쓰레드(Thread)에 대한 이해 프로세스(Process) 란? 프로세스는 실행될 때 운영체제로부터 각각 독립되 메모리 영역(Code, Data, Stack, Heap)을 할당받는다. 기본적으로 하나의 프로세스가 생성되면 하나의 쓰레드가 같이 생성된다. 이를 메인 쓰레드라고 부르며, 쓰레드를 추가로 생성되지 않으면 모든 프로그램 코드는 메인 쓰레드에서 실행된다. 각 프로세스는 별도의 주소 공간에서 실행되며 프로세스 간에 변수나 자료구조에 접근할 수 없다. 프로세스간 통신은 IPC(Inter-Process Communication)을 사용해야한다. 예를 들어서 파이프라인, 파일, 소켓 등이 이에 해당된다. 운영체제로 부터 시스템 자원을 할당받는 하나의 독립적인 작업 단위 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 컴퓨터에서 연속적으..
[REST API] REST API 설계 방법 참조 : https://sanghaklee.tistory.com/57