니름: 마이크로서비스 개발을 위한 IDL (인터페이스 정의 언어) 컴파일러 및 RPC (원격 프로시져 호출) / 분산 객체 프레임워크

Sprinter

홍민희


Tutorial Information

장소 : 코엑스 그랜드볼룸 2층 205B호

시간 : 오전 10시 ~ 오후 6시


Sprint Language

Python/Haskell

Project brief

니름은 요즈음의 “마이크로서비스 설계”(MSA) 또는 전통적인 “서비스 지향 설계”(SOA)를 구현할 때, 지루하고 반복적인 직렬화 및 파싱, 네트워크 통신, 잘못된 입력에 대한 오류 처리 등을 자동화해주는 개발 도구입니다. 이 주제로 작년 파이콘 한국, 그리고 재작년 파이콘 APAC에서 했던 발표도 참고해주세요.

〈니름: 쉬운 SOA 단위 테스트〉 https://www.slideshare.net/kanghyojun/soa-78799290
〈RPC 프레임워크 제작 삽질기〉 https://speakerdeck.com/minhee/rpc-peureimweokeu-jejag-sabjilgi

Detailed description

니름은 크게 다음의 여러 요소들을 포함합니다.

  1. 서로 다른 언어로 작성된 여러 서비스들 사이에서 공통된 인터페이스를 정의하기 위한 중간 인터페이스 정의 언어 (IDL)
  2. 위 언어의 컴파일러
  3. 여러 서비스들 사이에서 통신하는 일정한 방식을 정한 프로토콜
  4. 위 프로토콜의 타겟 언어별 런타임 라이브러리 및 프레임워크

1과 3은 실제 구현이 아닌 명세에 가까우며, 명세는 영어로 작성되어 있습니다. (그리고 계속 개선되고 있습니다.)

2는 컴파일러 구현에 특화된 하스켈로 작성되어 있습니다.

4는 지원하는 타겟 언어에 대해 한 벌씩 존재하며, 현재는 파이썬 구현이 있습니다. 하지만 타입스크립트도 개발중입니다.

스프린트에서는 주로 4를 다루겠지만, 하스켈에 이미 익숙하시거나 이번 기회에 하스켈 코딩을 해보고 싶은 분들께는 2번도 도와드립니다. 새로운 타겟 언어를 추가하는 것도 좋습니다. (새 타겟을 추가하는 것도 하스켈 코딩은 필요합니다.) 영어가 불편하지 않다면 1번과 3번에 기여해주시는 것도 환영합니다. 문서와 이슈에서는 영어를 쓰지만, 개발 과정에는 한국어를 씁니다.

기존 이슈들도 참고해보시면 좋습니다.


니름 언어 (IDL) 자체의 개선 및 파이썬 타겟의 기능 추가를 위주로 진행할 예정입니다. 예를 들어 정수 필드의 범위를 상하한을 정하는 기능, 결과로 생성된 파이썬 코드가 MyPy/Pyre 타입 검사를 통과하게 하기, 니름 코드에 붙어있는 문서화 주석 내용을 생성된 파이썬 코드의 독스트링에도 넣어서 Sphinx로 빌드 가능하게 하는 기능 등이 있습니다. 예로 든 것 외에도 자신이 추가하고 싶은 기능을 제안해서 직접 진행하는 것도 가능합니다.



Project URL

https://nirum.org/



Back to list Join this event

Attendees

Sponsors

다이아몬드

사파이어

플래티넘

골드

실버

커뮤니티

미디어