전체보기

    [gRPC] gRPC 특징, 장단점

    [gRPC] gRPC 특징, 장단점

    gRPC 소개 gRPC는 protocol buffer와 RPC를 사용한다. 2022.12 당시, IDL로는 proto3를 사용하며 호환하는 언어로는 Java, C++, Python, Java Lite, Ruby, JavaScript, Objective-C, C#을 호환한다. gRPC의 핵심은 분산으로 클라이언트 응용 프로그램을 서버에서 함수를 원격 호출할 수 있어 MSA(Micro Service Architecture)를 구현하기 수월하다. gRPC 서버에서는 Stub을 통한 호출을 처리할 수 있다. gRPC 특징 1. Protocol Buffere gRPC는 IDL을 Protocol Buffere(.proto)를 사용한다. 2. Service definition service EducationServi..

    [gRPC] Protocol Buffere(proto3) 소개, 사용법

    Protocol Bufferes 구조화된 데이터를 직렬화 하기 위한 구글의 언어 중립적, 확장 가능한 메커니즘이다. 데이터를 한 번 구성하는 방법을 정의한 후에 특수 생성된 소스 코드를 사용하여 다양한 데이터 스트림과 다양한 언어를 사용하여 구조화된 데이터를 쉽게 쓰고 읽을 수 있다. Protocol Buffere은 IDL로서 data structure를 정의한 다음, proto파일을 protocol buffere compiler를 통해 컴파일한다. 컴파일된 소스코드를 사용하여 데이터를 읽고 쓴다. Protocol Bufferes는 현재 Java, Python, Objective-C, C++을 지원하고 proto3의 경우 Kotlin, Dart, Go, Ruby, C#을 추가적으로 지원한다. Proto3..

    [Clean Code] 1장 깨끗한 코드

    데이브 토마스 “깨끗한 코드란 다른 사람이 고치기 쉽다고 단언한다.” 마이클 페더스 “깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다.” 중복과 표현력에 신경써서 코드를 작성하자. “중복줄이기, 표현 높이기, 초반부터 간단한 추상화 고려하기, 한 기능만 수행하라.” 프로그램을 단순하게 보이도록 만드는 열쇠는 언어가 아니다. 언어를 단순하게 보이도록 만드는 열쇠는 프로그래머다. 저자 우리는 저자다 @author필드는 저자를 소개한다. 저자가 있다는 것은 독자가 있다. 그리고 저제에게는 독자와 잘 소통할 책임이 있다. 우리는 새 코드를 짜면서 끊임없이 기존 코드를 읽는다. 그 말은 기존 코드가 읽기 쉬워야 쓸때 편하다는 것이다. 보이스카우트 규칙 “캠핑장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠..

    [gRPC] gRPC 개념, RPC, IDL비교(XML, JSON, Protocol Buffer)

    [gRPC] gRPC 개념, RPC, IDL비교(XML, JSON, Protocol Buffer)

    gRPC란? 구글이 개발한 오픈 소스 원격 프로시저 호출 시스템(RPC)이다. 호출을 위해 TCP/IP 프로토콜과 HTTP2.0 프로토콜을 사용하고 IDL(Interface Definication Language)로 protocol buffer를 사용한다. RPC(Remote Procedure call)란? 한 프로그램이 네트워크의 세부 정보를 이해하지 않고도 네트워크 안의 다른 컴퓨터에 있는 프로그램에서 서비스를 요청하는 프로토콜 HTTP 2.0 HTTP(Hypertext Transfer Protocol)는 웹 환경에서 사용되는 통신 프로토콜로 OSI 7 Layer에서 최상위인 Application Layer에서 사용한다. 더보기 HTTP에 대한 역사 [Network] HTTP(Stateful Stat..

    [CS] 컴퓨터의 구성(Software, Hardware, SystemBus)

    [CS] 컴퓨터의 구성(Software, Hardware, SystemBus)

    컴퓨터의 구성 하드웨어(Hardware): 컴퓨터를 구성하는 기계적 장치 소프트웨어(Software) : 하드웨어의 동작을 지시하고 제어하는 명령어 집합 하드웨어(Hardware) CPU(중앙처리장치) : 프로그램의 모든 정보를 처리하는 역할을 담당한다. RAM(주기억 장치) : 프로그램 실행과 휘발성 데이터를 저장하는 공간 HDD,SDD(보조기억 장치) : 내장형 기억 장치로 비휘발성 데이터를 저장하는 공간 IO Device(마우스, 프린터, 모니터 등) 소프트웨어(Software) 시스템 소프트웨어(System Software) : OS, 로더, 장치 드라이버, 컴파일러 응용 소프트웨어(Application Software) : 크롬, 유튜브, 멜론 등 펌웨어(Firmware) 특정 하드웨어 장치에..