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

진행자

홍민희 스포카

https://hongminhee.org/

스포카에서 일하고 있는 파이썬 프로그래머이고, 또 자유 및 오픈 소스 소프트웨어에 열정이 있습니다. 고등학생 때 친구들과 게임을 만들다가 스크립팅 엔진으로 쓸 언어를 찾다가 파이썬과 만난 뒤, 10년 넘게 일과 취미 모두 파이썬과 함께 했습니다. 이미지를 다루기 위한 Wand, 소규모 팀에서 SSH 키를 관리하기 위한 Geofront, 마이크로서비스 설계에서 RPC를 위한 언어인 Nirum, HTTP API를 문서화하기 위한 sphinxcontrib-httpdomain 등을 만들었습니다.


일시와 장소

일시 : 2017년 8월 14일 ~ 15

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

장소 : 코엑스 그랜드볼륨 2층 

< 신청 >

14일 : https://onoffmix.com/event/108239

15일 : https://onoffmix.com/event/108240


언어

Haskell, Python, TypeScript

오픈소스 프로젝트에 대한 간단한 설명

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

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

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

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

2는 컴파일러 구현에 특화된 Haskell로 작성되어 있습니다. https://github.com/spoqa/nirum

4는 지원하는 타겟 언어에 대해 한 벌씩 존재하며, 현재는 Python 구현이 있습니다. https://github.com/spoqa/nirum-python 하지만 TypeScript도 개발중입니다.

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

기존 이슈들도 참고해보시면 좋습니다. https://github.com/spoqa/nirum/issues



프로젝트 공식 URL

http://nirum.org/



목록으로

후원사 목록

플래티넘

골드

실버

브론즈