Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Node Interactive North America 2016 참석기 : Day 1

어느새 한 달이나 지났지만 지난 11월 29일부터 12월 2일까지 Node Interactive North America 2016에 참석차 미국 텍사스 오스틴에 다녀왔다. 매년 해외 콘퍼런스를 한 번 정도는 참석하려고 하고 있지만 Node.js 콘퍼런스는 2012년 Nodconf 참석 후 4년 만에 처음 참석했다.

Node.js가 2009년 처음 공개되었고 2012년에도 Node.js가 한창 주목을 받기 시작한 때이고 커뮤니티가 꽤 활발하게 구성된 상태였지만 지금에 비교한다면 상당히 초기 단계였고 지금처럼 Node.js 재단이 아닌 커뮤니티 주도로 콘퍼런스 등이 개최되던 때였다. 그때의 기억이 너무 좋았기 때문에 오랜만에 Node.js 콘퍼런스도 참석하고 싶었고 Node.js 재단이 생기고 만들어진 Node Interactive를 한 번도 못 가봤기 때문에 꼭 한번 참여하고 싶어서 다녀왔다.

전체적인 느낌을 얘기하면 2012년도는 커뮤니티 주도 세미나였다면 2016년은 훨씬 큰 규모이면서 일반적인 세미나 느낌이 났다. 나쁘다는 의미는 아니고 이젠 Node.js가 더 보급되었다는 의미이기도 하지만 단순 콘퍼런스 참석자로서는 2012년 느낌이 훨씬 좋다고 할까... 2012년에는 메일링이나 GitHub에서 활동하는 개발자 중에서 유명한 사람은 대부분 이름을 외우고 있을 정도였고 그 사람들이 다 한자리에 모였기 때문에 만나면 인사도 많이 하고 2~300명 정도밖에 안 되므로 2~3일 같이 지내면 얼굴도 대부분 외우기 때문에 말 걸기도 쉽고 같이 밥도 먹으러 가고 그랬는데 이번에는 천 명 이상 모였으므로 서로 친해질 기회도 훨씬 적었고 메인테이너들도 이름을 처음 들어보는 사람도 많았다.

텍사스 오스틴

IMG_7193

텍사스 오스틴은 처음 가봤다. 콘퍼런스를 갈지 말지 고민하면서 비행기나 숙소 등을 알아볼 때 오스틴까지는 직항으로 가는 곳이 없어서 최소 1번은 경유를 해야 했고 그동안 미국에 가던 것에 비해서 비행기가 너무 비쌌다. 약간 더 싼 비행기들은 2번 이상 경유를 하면서 오스틴까지 가는데 20시간 이상이 걸려서 1번 거치는 비행기로만 찾았는데도 꽤 비쌌다. 그리고 경유시간 포함해서 16시간 정도는 걸렸다. ㅠ 결국 난 댈러스를 거쳐서 가는 비행기를 예약했다.

최근에 미국 갈 때는 거의 Airbnb를 이용했고 혼자 갈 때는 아무 데서나 안전하게 잠만 자면 되므로 Airbnb에서 아주 싼 숙소를 보통 잡는 편이었다. 혼자만 묶는 숙소는 단체로 이용하는 숙소나 Airbnb의 원래 개념대로 누군가의 집의 방 하나를 쓰거나 마루에서 커튼 정도 치고 자는 때도 있었다. 그래도 가격이 많이 싸므로 혼자 이용하면 이런 곳을 사용했는데 오스틴에는 이런 Airbnb 숙소가 많지 않았다. 도심 외곽으로 나가면 있을지 몰라도 그러면 교통비가 추가로 들기 때문에 걸어갈 수 있는 곳을 생각해도 사진으로 보는 숙소에 비해서 너무 비쌌고 호텔이나 Inn보다 가격 차이도 많지 않았다. 어차피 이럴 거면 그냥 Inn을 이용하자는 생각에 오스틴 도심에 있는 Holiday Express Inn을 예약했다.

node-interactive2016-01

도심이라도 보통 싼 곳을 잡으니 지역이 아주 좋은 지역은 안 잡게 되는데 이번에도 바로 옆에 노숙자 센터 같은 게 있어서 건물 밖으로 나오면 노숙자가 바글바글했다. 그래서 번화가로 나갈 때는 항상 좀 돌아서 나가게 됐다. 투베드룸이었는데 깔끔하고 나쁘지 않았다.(둘이 갔으면 숙소비를 꽤 아꼈을 텐데... ㅠ)

node-interactive2016-02

아침을 제공해 주는데 퀄리티도 꽤 좋았다. 나중에는 콘퍼런스에서 조식을 제공해서 콘퍼런스 가서 먹었지만 난 이 아침이 아주 좋았다. 하루에 $100 정도인데 1층에는 꽤 큰 헬스장도 있어서 24시간 이용할 수 있고 온수 수영장도 있어서 수영도 할 수 있었다. 난 안 했지만...

node-interactive2016-03 node-interactive2016-03-1

1층에 스낵바가 비치되어 있어서 음료수랑 과자를 가져다 먹을 수 있다. 과자는 많이 먹지는 않았지만, 음료수가 있는건 참 좋았다. 사다 먹을 필요가 없어서. ㅎㅎ 간단히 전자레인지에 돌려먹을 수 있는 냉동 음식 같은 것도 있어서 배고플 때는 이걸로 식사도 좀 해결했다.

5일 동안 오스틴에 있는 중 나흘 동안 콘퍼런스에 참여했기 때문에 도심 밖으로 나갈 일이나 관광을 다니지는 않았는데 오스틴은 참할게 없다는 생각이 들었다. 중심가에는 호텔 등의 건물이 많고 번화가에는 라이브연주를 해주는 술집이 좀 있는 정도고 딱히 볼 게 있지 않았고 주변 검색을 해봐도 딱히 갈만한 곳이 없었다. 여행으로 와서 꽤 멀리 나가보면 뭐가 있을 것 같긴 한데 간단히 돌아보기에는 오스틴은 꽤 심심했다. 최소한 나한테는... meetup 검색해봐도 이런 행사도 거의 없고... 애플샵이나 쇼핑몰 같은 곳도 차 타고 15분 정도 밖으로 나가야 있어서 더 할 게 없었다.

Node Interative Day 1

IMG_7260

Node Interative는 오스틴 중심가에 있는 JW Marriott 호텔에서 열렸다.

IMG_7266

재단이 있고 규모가 확실히 커졌다는 느낌이 들었다. 호텔이다 보니 시설도 좋고 아침도 주면서 중간 쉬는 시간마다 과일이나 커피 등을 계속 제공해 주어서 콘퍼런스 들으면서 계속 듣고 왔다. 가장 큰 공간에서 키노트가 진행되고 4개의 트랙으로 세션이 진행되었다.

열심히 듣긴 했어도 영어라서 발표 내용을 다 알아듣는 것은 아니므로 여기서는 흥미롭게 들었던 세션만 간단하게 정리하겠다. 녹화된 발표가 유튜브에 모두 올라왔으므로 관심 있으신 분은 여기서 보기를 바란다. Node INteractive는 특이하게 한 세션이 20분 정도로 진행되었다. 많은 세션이 진행되기는 했지만, 개인적으로는 20분이 너무 짧아서 좀 흥미롭게 들을만하면 세션이 끝나는 기분이었다. 좀 더 깊은 내용을 듣고 싶은데 개요를 설명하고 흥미가 생길만하면 나머지는 프로젝트 소스를 보라거나 다른 자료를 보라 하는 정도로 끝나는 게 좀 아쉬웠다.

키노트: Welcome - Mikeal Rogers, Node Foundation

현재 Node.js 재단을 주도하고 있는 Mikeal Rogers의 인사말 겸 키노트로 Node.js에 대한 전체적인 부분을 설명했다. 매년 100% 이상의 성장을 이루고 있고 현재 매달 5백만 명의 사용자가 있고 천오백만 다운로드가 매달 이뤄지고 있다. 현재 Node.js의 큰 이슈로는 V8에 의존하는 상황을 벗어나서 Nodejs를 VM 중립적으로 만들려고 작업을 하고 있다. - 발표 영상

키노트: Express, State of the Union - Doug Wilson, Express

Doug Wilson은 Express의 리드 개발자이다. TJ가 StrongLoop로 프로젝트를 넘긴 뒤 Doug가 이끌어서 개발을 해오고 있었고 StrongLoop가 IBM에 인수된 뒤 Doug한테 다른 일이 떨어져서 Express 개발이 좀 멈추었는데 지금 소속은 모르지만, IBM은 퇴사하고 Express를 이끌고 있다. Express는 2016년 초에 Node.js 재단의 첫 인큐베이팅 프로젝트가 되었다.

현재 조직이 3개로 나누어져 있는데 메인 프로젝트인 Express와 Express를 모듈 단위로 분리하면서 모아놓은 곳인 pillarjs, 저수준 JS HTTP 관련 모듈을 모아놓은 jshttp이다.

Express 5.0을 준비하고 있는데 5.0에서는 라우팅에서 네이티브 Promise를 지원하고 템플릿 엔진 개선, 쿼리스트링/쿠키 처리 개선, 새로운 라우팅 문법 추가 등이 예정되어 있다. 그리고 새로운 컨트리뷰터와 커미터를 만들기 위해서 다양하게 노력하는 중이다. - 발표 영상

키노트: Contributing to Node.js: Coding Not Required - William Kapke, Kap Co, LLC

Kapke라는 개발자는 잘 모르고 있었지만 콘퍼런스 내내 활동이 눈에 띄던 개발자였다. 이 발표에서는 Kapke가 Node.js 프로젝트에 기여를 시작하고 참여하게 된 과정을 설명했다. Node.js에 관심을 가지고 기여하려고 하다 보니 생각보다 정보를 찾기가 어려웠다. Board 미팅 등에 대한 정보를 찾다가 트위터에 올려서 대답을 듣고 이를 다시 정리해서 문서로 만들고 하면서 참여를 했고 현재 기술위원회와 워킹그룹의 구조 등에 관해서 설명해서 관심 있는 사람들이 참여할 수 있도록 권하는 내용이었다. Node.js는 현재 엄청나게 큰 커뮤니티이고 모두가 자발적으로 활동하는 것이므로 기여를 더 많이 하게 하고 프로젝트가 나아가려면 서로가 인내를 해야 한다. - 발표 영상

IMG_7282


A Beginner's Guide To Reading Node.js Core Source - Rich Trott, UC San Francisco

Node.js 코어 소스를 읽기 위한 가이드를 제공하는 세션이었다. 일단 문서를 먼저 보는 것을 권장하지만, 문서를 만드는 것은 몹시 어려운 일이다. 코드는 lib/whatever.js를 보면 되는데 상당히 읽기 쉽게 되어 있다. 테스트 코드는 test/parallel/test-whatever-*.js, test/sequential/test-whatever-*.js를 보면 되고 /test/REAME.md의 문서를 보면 도움이 된다. 테스트를 추가하고 싶으면 doc/guides/writing_test.md에 설명이 잘 되어 있다. Node.js 코어 프로젝트에 기여를 돕기 위해서 http://nodetodo.org/ 사이트를 운영하고 있다. - 발표 영상

Slaying Monoliths with Docker and Node.js, a Netflix Original - Yunong Xiao, Netflix.com

Netflix의 각 모바일 클라이언트, TV, 웹 브라우저 등 다양한 클라이언트에 대응하기 위해서 이전에는 Monolith로 구성된 하나의 큰 Java 백엔드를 운영하고 있었다. 이 앞에 REST API를 두어서 관리하고 있었지만, 유지보수가 어려웠고 빠른 변화를 주기가 쉽지 않았다. 그래서 클라이언트마다 Node로 만들어진 API 계층을 두고 통신하게 해서 발전시킨 과정을 설명하고 있다. 꽤 재밌었던 발표였다. - 발표 영상

Solving Service Discovery - Richard Roger, Nearform

Nearform은 국내에서는 별로 알려지지 않은 것 같지만 유럽 쪽에서 Node.js 컨설팅을 하는 회사로 꽤 유명한 회사이고 흥미로운 프로젝트도 여러 가지 진행하고 있다. 이 발표는 Nearform에서 만든 마이크로서비스 툴킷인 Seneca에서 사용 중이라고 생각되는 서비스 디스커버리에 관해 설명했다. 마이크로 서비스를 사용하면 빨리 개발을 하면서 지속적인 배포를 할 수 있고 기술 부채를 피할 수 있지만, 배포는 훨씬 복잡해 지고 좀 어색해 보이는 프로그래밍 모델을 사용해야 하고 서비스가 서로 찾을 수 있어야 한다. 여기서 서비스 디스커버리는 설정 파일, DNS, 서비스 레지스트리 등을 이용하는데 서비스가 서로를 인식하게 되면 커플링이 심해지므로 서비스 디스커버리 대신 메시지를 중심으로 서비스를 연결하는 방식을 설명하고 있다. 서비스는 누가 응답하는지 모르지만 메시지를 전달하면 이를 가져가서 메시지를 응답해 주어 디커플링하는 것으로 이해했다. 최근 관심 있는 부분이기도 해서 재미있었다. 특히 인프라 구성은 야크쉐이빙과 비슷해서 할 일이 계속 생긴다는 말에 공감했다. - 발표 영상

Node.js & ChakraCore - Arunesh Chandra, Microsoft

MS에서 ChakraCore를 V8 대신 사용하게 하는 프로젝트에 관해 설명한 세션이었다. 많은 개발자처럼 나도 ChakraCore가 들어오면서(앞에서 얘기한 VM 중립적으로 가는 과정 중 하나이다.) 현재 웹 브라우저처럼 Node.js 개발자들이 VM 호환성 작업을 책임져야 하는 크로스 VM 지옥에 빠질까 봐 걱정하는 편이었고 왜 Node.js에 V8 대신 Chakra가 필요한가도 의문인 편이었다. 부스에서도 물어보고 세션에서도 설명을 들었지만, MS와 Node.js에서도 이에 대한 걱정을 많이 하고 있는 것 같았다. 그래서 발표자도 ChakraCore를 Node.js에 심으면서 베이스라인으로 정해놓고 있는 것이 Node.js 생태계에 도움이 되어야 하고 현재 Node.js 생태계가 ChakraCore에서도 동일하게 동작해야 한다는 것이다. 그리고 이 과정을 투명하게 공개하고... 발표에서는 Node.js - CharkaCore로 Time Travel Debugging을 하는 과정을 보여주고 기존 Node 코드를 CharkaCore에서도 똑같이 동작하는 데모 등을 보여주었다. - 발표 영상



이 글은 Node Interactive North America 2016 참석기 : Day 2 ~ 4로 이어집니다.

2016/12/25 19:50 2016/12/25 19:50