기초지식/네트워크
Netty FrameWork란? Socket 통신과의 차이점은?
# Netty프레임워크에 대한 기초적인 개념과 Socket 통신과의 차이점에 대하여 알아본다. Socket 통신 # 자바는 태어날때부터 Java.net을통해 socket프로그래밍 방식을 제공했다. Socket 통신을 하기위해서 우선 소켓생성 -> 포트에 bind 하고 accept 해야하며 그후 input output stream을 얻습니다. 그후 쓰레드를 할당받아 read 및 write 과정을 거쳐 패킷을 전송합니다. 이렇게 bindng ,accept ,read ,write 과정을 직접 모두 구현해야하는 번거로움이 존재합니다. 그러나 Netty를 사용하면 이러한 과정(read,write)을 조금더 쉽게 구현하게 도와줍니다. Netty의 구성요소 Channel, EventLoop, EventLoopGrou..
gRPC 프레임워크란 ?
# RPC통신을 이해했음을 전제로 RPC통신을 기반으로 Google에서 만든 gRPC에 대하여 알아본다. gRPC란 무엇인가? ● gRPC는 RPC 통신의 프레임워크로 구글에서 만들어졌습니다. 그렇다면 기존 RPC와 다른점은 무엇일까요? ● gRPC 를 설명할 수 있는 그림으로 아래 그림이 있습니다. 왼쪽에 Service 라고 나와 있는 박스가 서버이고, 왼쪽에 Client 라고 표시되어 있는 박스가 말 그대로 클라이언트 입니다. 각각의 이름 앞에 프로그래밍 언어가 붙어 있는 이유는 각기 다른 언어로 개발된 프로세스들 끼리도 통신할 수 있다는 것을 알리기 위해 예시로서 표기되었습니다. 그리고 각각의 박스를 연결하는데 Proto Request 와 Proto Response 라고 나와 있는데, 이 부분이 g..
RPC통신이란?
# gRPC 프레임워크와 RPC 통신에 대한 기술조사를 진행한다. gRPC프레임워크를 알기전 RPC통신에 대한 선수지식이 필요하다는 생각이 들어 우선 RPC 통신에대 한 조사부터 진행한다. ● Remote Procedure Call (원격 프로시저 호출) 의 약자로 , 별도의 원격제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술을 일컫는다. 즉, RPC통신을 하게되면 프로그래머는 함수 또는 프로시저가 실행 프로그램에 존재하든 로컬 위치에있든, 원격위치에 있든 상관없이 동일한 기능을 수행할 수 있음을 의미한다. 위 그림은 기본적인 RPC 통신에 대한 그림이다 , Client가 P라는 함수를 이용하고 싶어하는데 이 함수는 Server에 위치해있고이를 R..