yoongrammer
목차 Git 이란? Git이란 컴퓨터 파일의 변경사항을 추적하고 관리하는 분산형 버전 관리 시스템(DVCS, Distributed Version Control System) 입니다. Git 개념 Git은 파일을 아래 세 가지 상태로 관리합니다. Commited - 데이터가 로컬 데이터베이스에 저장된 상태 Modified - 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태 Staged - 수정한 파일을 곧 커밋할 것이라고 표시한 상태 이 세 가지 상태는 Git 프로젝트의 세 가지 단계와 연결돼 있습니다. Working 디렉터리(Working tree라고도 함)는 프로젝트의 특정 버전을 git 디렉터리에서 Checkout 한 것입니다. Checkout 하고 나서 수정한 파일은 Modified 상태..
목차 Delve란 Delve는 Go 언어용 디버거입니다. dlv 명령어를 사용하여 go 언어를 디버깅할 수 있습니다. Delve 설치 방법 Delve를 컴파일 하려면 Go 1.10 이상이 설치되어 있어야 합니다. 1. go get 명령어를 사용하여 delve를 설치합니다. $ go get github.com/go-delve/delve/cmd/dlv 2. 설치가 되었는지 확인해 봅니다. $ dlv version Delve Debugger Version: 1.5.0 version 정보가 나온다면 설치가 완료된 것입니다. Delve 사용 방법 dlv attach - 실행중인 프로세스에 연결하여 디버깅합니다. Usage: dlv attach pid [executable] [flags] Flags: --conti..
목차 버전관리 시스템(Version Control System) 이란? 버전관리 시스템(VCS, Version Control System)이란 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 불러올 수 있는 시스템을 의미합니다. VSC를 사용하면 선택한 파일을 이전 상태로 되돌릴 수 있고, 변경 사항을 비교하고, 변경한 사람 및 변경시기를 추적할 수 있습니다. 또한, 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있습니다. VCS의 종류 로컬 버전관리 (Local VCS) Local VCS 는 간단히 데이터베이스를 사용해서 파일의 변경 정보를 관리하는 시스템입니다. 아주 간단하지만 실수하기 쉽다는 단점이 있습니다. 대표적으로 RCS(Revision control system)가..
목차 gRPC 란? gRPC는 구글이 개발한 RPC 시스템입니다. gRPC는 대부분의 언어를 지원하며 PB(Protocol Buffer)를 IDL(Interface Definition Language)로 사용합니다. gRPC에서 원격에 있는 애플리케이션의 메서드를 로컬 메서드인 것처럼 직접 호출할 수 있으므로 분산 애플리케이션 및 서비스를 더 쉽게 만들 수 있습니다. gPRC 클라이언트와 서버는 클라우드 환경에서 데스크탑, 모바일까지 다양한 환경에서 실행할 수 있고 다양한 언어를 지원합니다. (Go, Ptyhon, Ruby, Java, C++ 등등) gRPC 서비스 정의 gRPC는 서비스 정의 개념을 기반으로하며 매개 변수 및 반환 유형을 사용하여 원격으로 호출할 수 있는 메서드를 지정합니다. 기본적으로..
목차 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은 메세지를 전송계층으로 전달..