우분투에 apache thrift를 설치하려면 시스템 업데이트를 해야한다.

$ sudo apt-get update

이 명령어를 실행하였더니, 제목 그대로의 오류가 났다.


이 에러 메세지는 잦은 강제 리부팅 등이 발생하였을 때 나타난다고 한다.(구글링...)

해결방법은 간단했는데, reboot 명령어로 리부팅을 했더니 바로 해결되었다.

Installing Apache Thrift in Windows


http://thrift.apache.org/download 에서 Thrift compiler를 다운받으면 된다.

여기서 다운로드한 설치파일을 실행하기 위해서는 환경변수(PATH) 설정이 필요하다.


* 윈도우8 기준 PATH설정 하는 법

 제어판 -> 시스템 및 보안 -> 시스템 -> 좌측의 '고급 시스템 설정' -> 환경변수 순서로 들어가서 설정하면 된다.


thrift_logo

Apache Thrift는 다양한 플랫폼과 언어에 걸쳐 확장 가능한 분산 시스템을 구축하는데 도움이 되는 도구 중 하나이다.

원래 페이스북에서 내부적으로 사용하기 위해 개발했지만, 지금은 Apache Foundation에서 지원하는 오픈소스 프로젝트이다.

다양한 언어지원, 유연성 및 성능이 특징이다.


An introduction to Apache Thrift


Apache Thrift는 페이스북에서 개발한 다양한 언어를 지원하는 'RPC 프레임워크'다. IDL(interface definition language)로 작성된 단일 파일에서 여러 언어에 대한 코드가 자동으로 생성된다.


- RPC 프레임워크

 RPC(remote procedure call)는 원격 API를 호출하는 대표적인 방법이다. 원격 서버의 함수를 호출해서 결과를 얻는다. 즉, 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시져를 실행할 수 있게 하는 프로세스 간 통신 기술이다.


- IDL : 인터페이스 정의 언어

 소프트웨어 컴포넌트의 인터페이스를 묘사하기 위한 명세 언어이다. 어느 한 언어에 국한되지 않는 언어중립적인 방법으로 인터페이스를 표현함으로써 같은 언어를 사용하지 않는 소프트웨어 컴포넌트 사이의 통신을 가능하게 한다.

 

Supported programming language


Apache Thrift로 일을 시작하기 전에 지원하는 언어들의 종류를 알아봐야 한다.

(version 0.9.3 기준 / http://thrift.apache.org/docs/features 참고)

ActionScript3, C++, C#, D, Delphi, Erlang, Haskell, Java, JavaScript, Node.js, Objective-C/Cocoa, OCaml, Perl, PHP, Python, Ruby, Smalltalk


Data types


Apache Thrift는 개발자들을 위해 모든 더러운(?)일을 한다. 고유한 데이터 유형을 제공하여 해당 프로그래밍 언어의 기본 데이터 유형에 매핑하므로 개발자는 통신 인터페이스(communication interface)가 아니라 application을 creating하는데 집중할 수 있다.



Interface description language


Apache Thrift의 핵심 기능은 간결성과 유연성을 제공하는 Apache Thrift만의 IDL이다. 현대의 프로그래밍 언어로 코딩을 한 사람이라면 누구나 한 번쯤은 볼 수 있을 것이다. IDL을 사용하면, 사용하는 모든 변수와 서비스를 하나의 파일에서 정의할 수 있다. 



Protocol Buffers


Protocol Buffers는 Apache Thrift의 older broter이고, 이것들은 비슷한점이 많다. 


 

 Thrift

Protocol Beffers 

개발사 

Facebook -> Apache 

Google 

지원 언어

많다(앞에서 설명함) 

C++, Java, Ptthon 

 자료형 지원

Map, List, Set 등 

지원 안 함 

 사용자

많다 

보통 


+ Recent posts