본문 바로가기

Programming/Communication5

ttySx, ttyUSBx, ttyACMx ttyS0 ttyUSB0 ttyACM0 2023. 8. 15.
gRPC-web 사용하기 "원격 프로시저 호출(Remote Procedure Call, RPC)"로 알려진 분산 클라이언트-서버 통신 방식은 적어도 80년대초부터 사용되었습니다. 그러나 gRPC로 알려진 구글의 구현은 시스템 간 웹 통신을 가능하게 하는 성능 중심 프레임워크로 2015년에 개발되어 공개되었습니다. 내부적으로 최신 HTTP/2 프로토콜을 활용하도록 설계된 gRPC는 클라이언트와 서버 간의 양방향 통신을 지원할 뿐만 아니라 요청 혹은 응답당 여러 메시지를 전송할 수 있는 스트리밍 기능도 지원합니다. 따라서 고성능, 높은 처리량의 응용프로그램을 구축하는 데 매우 효율적입니다. gRPC-web 브라우저 적용 삽질기 Javascript 기반으로 브라우저에서 gRPC를 사용하려고 하였지만, 적용하지 못한 내용에 대한 기록입.. 2022. 12. 8.
Apache Thrift Apache Thrift는 인터페이스 정의 언어이자 이진 통신 프로토콜로서 수많은 언어를 위한 서비스의 정의 및 생성에 사용됩니다. 원격 프로시저 호출(RPC) 프레임워크를 형성하며 페이스북에서 "스케일링이 가능한 언어 간 서비스 개발"을 위해 개발된 것입니다. 크로스 플랫폼 서비스 빌드를 위해 소프트웨어 스택을 코드 생명 엔진과 결합하고 있으며 이로써 C, C++, C#, 코코아, 델파이, 얼랭, Go, 하스켈, 자바, Node.js, 오브젝티브-C, OCaml, 펄, PHP, 파이썬, 루비, 스몰토크를 포함한 다양한 언어와 프레임워크로 작성된 응용 프로그램들을 연결할 수 있습니다. 페이스북에서 개발되었으나 현재는 아파치 소프트웨어 재단의 오픈 소스 프로젝트입니다. 이 구현체는 2007년 4월 페이스북.. 2022. 12. 5.
D-Bus IPC System 컴퓨터 세상에는 다양한 개발자들이 개발한 수 많은 앱들이 있다. 안드로이드를 예로 들어보자. 우리는 유투브로 마음에 드는 영상을 "공유" 버튼을 클릭해서 카카오톡으로 친구에게 공유한다. 친구가 공유받은 영상을 보던 중에 스카이프 영상통화가 오면, 영상통화를 하는 중에 유투브는 자동으로 정지된다. 유투브와 카카오톡, 스카이프는 모두 서로 다른 개발자가 만들었다. 이처럼 서드파티가 개발한 앱들이 자연스럽게 소통을 주고 받는 일이, 기존 리눅스 IPC만을 이용해서 가능할까? 기술적으로는 가능하겠지만, 현실적으로는 불가능할 것이다. 그렇다면 왜 현실적으로 기존 리눅스 IPC로 서드파티 앱들간 소통이 어려울까? 대략 다음과 같은 이유들이 있을 수 있다. 통신 방식이 서로 제각각이다. (e.g. 유닉스 도메인 소켓.. 2022. 12. 5.
MQTT (Message Queue Telemetry Transport): mosquitto MQTT 는 IBM 에 의해서 개발되었고 2014년 국제 민간 표준기구인 오아시스에 의해서 표준으로 제정되었습니다. 이 프로토콜이 사물인터넷의 통신규약으로 각광 받고 있는 이유는 경량화가 가능해서 통신 대역폭이 제한적인 사물인터넷에 적합하기 때문 입니다. 현재 페이스북도 회원들간의 메시지 전송에 MQTT 프로토콜을 이용하고 있다고 합니다. 사물 통신(M2M: Machine to Machine), 사물 인터넷(IoT: Internet of Things)과 같이 대역폭이 제한된 통신 환경에 최적화하여 개발된 푸시 기술(push technology) 기반의 경량 메시지 전송 프로토콜입니다. MQTT 프로토콜은 푸시 기술(push technology)에서 일반적으로 사용되는 클라이언트/서버 방식 대신, 메시지 .. 2022. 12. 5.