니름: 마이크로서비스 개발을 위한 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
니름은 크게 다음의 여러 요소들을 포함합니다.
- 서로 다른 언어로 작성된 여러 서비스들 사이에서 공통된 인터페이스를 정의하기 위한 중간 인터페이스 정의 언어 (IDL)
- 위 언어의 컴파일러
- 여러 서비스들 사이에서 통신하는 일정한 방식을 정한 프로토콜
- 위 프로토콜의 타겟 언어별 런타임 라이브러리 및 프레임워크
1과 3은 실제 구현이 아닌 명세에 가까우며, 명세는 영어로 작성되어 있습니다. (그리고 계속 개선되고 있습니다.)
2는 컴파일러 구현에 특화된 하스켈로 작성되어 있습니다.
4는 지원하는 타겟 언어에 대해 한 벌씩 존재하며, 현재는 파이썬 구현이 있습니다. 하지만 타입스크립트도 개발중입니다.
스프린트에서는 주로 4를 다루겠지만, 하스켈에 이미 익숙하시거나 이번 기회에 하스켈 코딩을 해보고 싶은 분들께는 2번도 도와드립니다. 새로운 타겟 언어를 추가하는 것도 좋습니다. (새 타겟을 추가하는 것도 하스켈 코딩은 필요합니다.) 영어가 불편하지 않다면 1번과 3번에 기여해주시는 것도 환영합니다. 문서와 이슈에서는 영어를 쓰지만, 개발 과정에는 한국어를 씁니다.
기존 이슈들도 참고해보시면 좋습니다.
니름 언어 (IDL) 자체의 개선 및 파이썬 타겟의 기능 추가를 위주로 진행할 예정입니다. 예를 들어 정수 필드의 범위를 상하한을 정하는 기능, 결과로 생성된 파이썬 코드가 MyPy/Pyre 타입 검사를 통과하게 하기, 니름 코드에 붙어있는 문서화 주석 내용을 생성된 파이썬 코드의 독스트링에도 넣어서 Sphinx로 빌드 가능하게 하는 기능 등이 있습니다. 예로 든 것 외에도 자신이 추가하고 싶은 기능을 제안해서 직접 진행하는 것도 가능합니다.
Project URL
Back to list Join this event
Attendees
- 강효준 Checked in
- lovecraft Checked in
- 정욱재 Checked in
- tgchoi03 Checked in
- 김민준 Checked in
- 이승훈 Checked in
- kroisse Checked in
- 이형욱 Checked in
- 임석민 Checked in
- 장재형 Checked in
- 권국헌 Checked in
- ephemera Checked in
- nspred Checked in
- hwanght1 Checked in
- 최종원 Checked in
- 남송학 Checked in
- forestkeep21 Checked in
- sooshia Checked in
- kijeong Checked in
- 손경환 Checked in
- 채수삼 Checked in
- tabelingoo Checked in
- 김성민 Checked in
- 신동주 Checked in
- 김강민 Checked in
- 안기욱 Checked in