목록분류 전체보기 (111)
yoongrammer

목차 RPC (Remote Procedure Calls) 란? RPC (Remote Procedure Calls)란 원격에 있는 함수를 호출해 주는 프로세스 간 통신 기술입니다. RPC는 플랫폼에 제약 없이 사용할 수 있어 분산 시스템 기법에 효과적입니다. RPC는 IDL(Interface Definition Language)를 사용하여 인터페이스를 명시합니다. 대표적인 IDL은 아래와 같습니다. Google 의 ProtocolBuffer Facebook 의 Thrift Twitter 의 Finalge RPC 동작 흐름 RPC는 아래와 같이 동작합니다. 클라이언트에서 매개변수를 Stub에 전달합니다. 클라이언트 Stub에서 매개변수를 메시지로 마샬링합니다. 클라이언트 Stub은 메세지를 전송계층으로 전달..

목차Protocol Buffer 란?구글에서 오픈소스로 공개한 언어, 구조화(structured)된 데이터를 직렬화(serialization) 하는 방식입니다. 줄여서 protobuf, 더 줄여서 pb라고 부릅니다.protobuf는 여러 프로그램 언어를 지원합니다. Protocol Buffer 원리Person 이라는 객체를 JSON으로 표현하면 아래와 같습니다.{ "userName": "Martin", "favouriteNumber": 1337, "interests": ["daydreaming", "hacking"]}데이터의 크기는 공백을 제거하면 82 바이트가 사용됩니다. Person 객체에 대한 프로토콜 버퍼 스키마는 다음과 같습니다.message Person { required..

목차 Rust 빌드 하기 Rust 코드를 작성하고 실행하는 방법에 대해 알아보도록 하겠습니다. Linux 및 MacOS 기준으로 설명하겠습니다. 1. 프로젝트 디렉터리 생성 아래와 같이 $HOME경로에 프로젝트 디렉터리를 만듭니다. $ mkdir ~/projects $ cd ~/projects $ mkdir hello_world $ cd hello_world 2. Rust 프로그램 작성하기 러스트 파일들은 .rs 확장자로 끝납니다. hello_world 디렉터리에서 main.rs 파일을 만들고 아래 코드를 작성합니다. fn main() { println!("Hello, world!") } 3. 컴파일하기 rustc를 사용하여 컴파일하면 실행파일이 만들어집니다. $ rustc main.rs $ ls mai..

목차 Rust 설치하기 OS별 rust 언어 설치 방법에 대해 알아보도록 하겠습니다. rust를 설치할 때, rustup이라는 설치 프로그램을 사용하겠습니다. 1. Linux, macOS 1. 아래 명령어를 통해 rustup 설치 도구를 다운로드하여 설치합니다. $ curl https://sh.rustup.rs -sSf | sh 설치가 성공적 이라면 다음과 같은 문구가 출력됩니다. Rust is installed now. Great! 설치가 완료되면 ~/.cargo/bin 디렉터리에 생성되며 자동적으로 시스템 PATH에 추가됩니다. 터미널을 재 시작하면 rust를 사용할 수 있습니다. 2. rust가 설치되었는지 확인해 봅니다. $ rustc --version 버전 정보가 나온다면 설치가 완료된 것입니다..

관련 글2020/11/05 - [Go 언어] - 채널(Channel) 이란? 목차[Go] 채널 방향, 채널 버퍼링, Selectgo 에서 채널 방향(channel directions), 채널 버퍼링(channel buffering), Select에 대해서 알아보도록 하겠습니다.채널 방향 (channel directions)채널은 고루틴 간의 통신 매체이므로 서로 데이터를 주고받을 수 있습니다.기본적으로 채널은 양방향이지만 단방향 채널도 만들 수 있습니다.단방향 채널을 만들때 make() 함수를 사용합니다.// 수신용 채널c1 := make(함수 인자를 사용하여 양방향 채널을 단방향 채널로 변환할 수 있습니다.양방향 채널을 수신 전용 또는 송신 전용 채널로 변환할 수 있지만 그 반대의 경우는 불가능합니다...

목차 채널(Channel) 이란?Go 언어에서 채널은 고루틴을 연결해주는 통로(파이프)입니다.기본적으로 채널은 양방향이고 고루틴이 아래 이미지와 같이 동일한 채널을 통해 데이터를 보내거나 받을 수 있습니다.채널 생성채널은 chan 키워드를 사용하여 만들수 있고 동일한 유형의 데이터만 전송할 수 있습니다.아래와 같이 make() 함수를 사용하여 채널을 만들 수 있습니다.channel_name := make(chan Type)채널 송수신 연산자의 방향은 데이터 수신 또는 송신 여부를 나타냅니다. myChannel data := 아래와 같이 수신될 변수가 없어도 유효합니다. 채널 닫기close() 함수를 사용하여 채널을 닫을 수 있습니다. 채널을 닫게 되면, 해당 채널로는 더 이상 송신을 할 수 없지만, ..

목차 고루틴(goroutine) 이란? 고루틴(goroutine)이란, 프로그램에 있는 다른 고루틴과 관련하여 독립적으로 동시에 실행되는 함수입니다. 즉, Go 언어로 동시에 실행되는 모든 활동을 고루틴이라고 합니다. 고 루틴을 만드는 비용은 스레드에 비해 매우 적기 때문에 경량 스레드라고 합니다. 모든 프로그램은 적어도 하나의 main함수라는 고루틴을 포함하고 고루틴은 항상 백그라운드에서 작동합니다. 메인 함수가 종료되면 모든 고루틴은 종료됩니다. 따라서 고루틴보다 main이 먼저 종료되는 것을 방지해야 합니다. 고루틴(goroutine) 사용 방법 Go 언어에서는 단일 프로그램에서 여러 고루틴을 만들 수 있습니다. 고루틴은 prefix로 go키워드를 사용해 간단히 만들 수 있는데 일반 함수와 익명 함..

목차 Go 언어 설치 OS별 Go 언어 설치 방법에 대해 알아보도록 하겠습니다. 1. Go 다운로드 아래 링크로 들어가서 자신의 OS에 맞는 Go 바이너리를 다운로드합니다. golang.org/dl/ Downloads - The Go Programming Language Downloads After downloading a binary release suitable for your system, please follow the installation instructions. If you are building from source, follow the source installation instructions. See the release history for more information about G..

관련 글 2020/10/25 - [DB] - CockroachDB 란 2020/11/01 - [DB] - CockroachDB 설치 목차 CockroachDB 사용방법 노드 3개를 가지고 있는 클러스터를 만들어 보겠습니다. 1. 클러스터 시작 1. cockroach start 명령을 사용하여 첫 번째 노드를 생성합니다. $ cockroach start \ --insecure \ --store=node1 \ --listen-addr=localhost:26257 \ --http-addr=localhost:8080 \ --join=localhost:26257,localhost:26258,localhost:26259 \ --background 다음과 같은 메시지가 표시됩니다. * * WARNING: RUNNIN..

관련 글 2020/10/25 - [DB] - CockroachDB 란 2020/11/02 - [DB] - CockroachDB 사용방법 목차 CockroachDB 설치 OS별 CockroachDB 설치 방법에 대해서 알아보도록 하겠습니다. macOS 1. Homebrew를 설치합니다. $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 위의 내용을 macOS 터미널에 붙여 넣습니다. 2. Homebrew를 사용하여 CockroachDB를 설치합니다. $ brew install cockroachdb/tap/cockroach 3. 설치가 되었는지 확인해 봅니다. $ cockroach..