Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

PyCon APAC 2016 참가 후기

지난 13~15일에 열린 PyCon APAC 2016에 다녀왔다. 나는 Python을 사용하지 않는 관계로 티켓을 팔기 시작했을 때 고민을 많이 했다. 작년 2회 때도 참석을 했지만, 첫날 세션을 듣다 보니 "Python을 안 하니까 들어도 뭔 소린지 잘 모르겠다"는 생각이 들었다. 요즘 콘퍼런스는 사람들이랑 네트워킹하러 가는 경우가 더 많긴 하지만 세션은 거의 안 듣고 놀다가 왔다. 이번에도 비슷하게 될 것 같아서 고민하다가 그래도 국내에서 처음 열리는 APAC인데다가 Flask를 만든 Armin Ronacher도 온다고 해서 결국 신청을 했다.

하지만 그사이에 Python을 주로 사용하는 회사로 이직을 하게 되어 오랫동안 공부해야지 생각만 하던 Python을 공부해야 할 현실적이 이유가 생겼다. 여전히 Python은 모르지만, 괜히 느낌상 PyCon이 더 친근해진 기분이랄까?

PyCon APAC 2016


사전 행사

생각을 못 하고 있었지만 입사한 스마트스터디는 PyCon에 스폰서로 참여하고 있었다. 회사에 Python 커뮤니티 활동을 하시는 분이 많지만 대부분 콘퍼런스 운영진이나 발표자로 참여하고 있어서 출근하고 업무파악 안 돼서 두리번거리고 있는 내가 인사/홍보를 담당하는 분들과 함께 스폰서 자격으로 사전행사 등에 참여하게 되었다. 참여라고는 하지만 가서 아는 개발자와 수다 떨다가 의견을 좀 내는 정도가 전부였지만 PyCon 행사 준비를 어느 정도는 엿볼 수 있었다. PyCon 2015에도 운영 측의 준비성에 상당히 놀라던 기억이 있다. 작년 Play.node 운영에 참여해 보면서 PyCon 수준으로 준비하려면 얼마나 많은 노력이 필요한지를 느꼈기 때문에 더 놀라웠다.(다음에 콘퍼런스 가면 자원봉사자들한테 절하고 들어가야지 생각했는데 정작 그러진 않았다. ㅋ) 8월 8일 열린 사전행사는 운영진, 자원봉사자, 스폰서가 모여서 행사 진행을 소개하고 준비해야 할 부분에 대해서 질답을 하는 형태로 이루어졌다. 메일 써도 되는데 이렇게 모이기가 쉽진 않은데 그래도 한 번에 모여있으니까 행사 전에 스폰서 입장에서 준비해야 할 내용과 가능/불가능한 것을 알게 되고 다른 스폰서는 어떤 걸 준비하는지 얘기할 수 있어서 꽤 좋았다고 생각한다.

PyCon 사전 모임

행사 전날은 저녁 약속이 취소된 걸 들켜서(?) 회사 부스를 꾸미는 일을 도우러 코엑스에 갔다. 행사 규모가 1,600명 정도 되다 보니 꽤 많은 자원봉사자가 다음 날 열릴 행사를 준비하기 위해 분주하게 움직이고 있었다. 우리는 회사 내에 있는 휴식공간과 비슷한 느낌으로 꾸미기 위해 부스에 시트지를 붙이고 명함과 구인공고 포스터를 붙였다. 이런 건 처음 해봐서 부스에 8장의 시트지를 붙이는 게 엄청 힘들었다. 스마트폰에 액정보호필름 붙이는데 약간 틀어지는 그 짜증을 내 키보다 큰 시트지를 붙이면서 느끼려니.. ㅋㅋ 디자인이 어느 정도 되어 있는 다른 부스는 낮에 왔다 간 줄 알았더니 디자인 파일 주고 업체에 부탁하면 알아서 해주는 거였다. 털썩~ 그래도 부스가 이쁘게 꾸며져서 만족스러웠다. 내 기억에 전날 부스를 꾸미러 온 사람은 카카오랑 우리 정도였고 아는 사람은 없었지만, IBM도 와서 부스를 꾸미고 있었다.

PyCon 전날 부스를 꾸미고 나서

(회사 분들은 왠지 신경 쓰여서 초상권 보호를... 다른 분들은 이미 알려져서.. ㅎ )

PyCon 1일차

부스를 운영해야 해서 행사 시작 전에 맞춰서 갔다.(그래 봤자 9시 반이었지만 ㅠ) 부스에서 진행하는 몇 가지 이벤트 안내랑 구인을 위한 사내 개발팀 등의 소개 등을 해야 했는데 사내 개발자가 미리 참석할 세션의 시간표를 공유해서 어느 정도 시간 배정을 해놓고 있었다. 나는 내가 관심 없는 주제 외에도 Python 경험이 좀 있어야 들을만 할 것 같은 세션을 제외하니 키노트와 몇 개 세션만 듣기로 했다.(그마저도 놀다가 못 듣기도 했지만...) 첫 키노트는 Pandas를 만든 Wes McKinney였다. Pandas에 대해 하는 게 전혀 없어서 약간 걱정을 했는데 자신이 Pandas를 만든 과정이랑 오픈소스 운영에 대한 경험을 나누어서 영어긴 했지만 듣기에 나쁘진 않았다. 두 번째 키노트는 django를 만든 Jacob Kaplan-Moss였지만 발표를 펑크낸 관계로 듣지 않았다. 작년에 Play.node를 할 때도 해외 발표자가 2~3번 취소된 적이 있어서 행사 얼마 전에 Jacob이 안 온다는 얘기를 들었을 때 운영진이 아닌데도 불구하고 얼마나 당황스러울지 예상되었다.

회사에서 부스를 운영하는 경험은 처음이었는데 회사 동료들이 부스를 지키고 있으니까 돌아다니면서도 뭔가 신경이 쓰이고 자유롭지 않은 기분이 들었지만, 나한테는 나쁘진 않았다. 일단 입사 일주일밖에 안 된 상황에서 부스에 같이 있으면서 회사 사람들과 좀 친해지거나 안면을 트게 되었고 명찰을 붙이고 부스에 계속 있다 보니 평소 콘퍼런스에 갔을 때보다 훨씬 많은 사람을 만난 것 같다. 지나가다가 인사하기도 하고 얼굴을 모르고 온라인에서만 보다가 와서 아는체 해주셔서 인사도 하게 되고 부스에서 사진 찍는 이벤트를 하다 보니 사람들과 사진을 많이 찍어서 놀이동산에서 사진 찍어주는 아르바이트 같은 기분도 들었지만(기분 나쁘다는 의미는 아니고) PyCon을 축제처럼 즐길 수 있었다. 그렇다고 부스만 계속 지킨 건 아니고 부스 좀 지키다가 사람들하고 인사하고 놀러 나가서 다른 사람들도 만나고 그랬다.

PyCon 행사장

첫날은 키노트 외에는 세션을 듣지 않았다. 원래는 들으려고 했는데 다른 일을 하다 보니 시간을 놓쳐서 못 들어갔다. 내가 이번 파이콘에서 가장 재밌게 참여했던 이벤트는 카카오에서 진행한 코딩배틀 가위바위보 in 파이콘 2016 APAC였다. 가위, 바위, 보를 반환하는 show_me_the_hand라는 함수를 구현해서 참가자들끼리 배틀을 해서 우승자를 가리는 건데 실제 가위바위보처럼 운이 상당히 중요하면서도 뭔가 고민할 요소가 있다는 부분이 흥미로웠다. 컨퍼런스에서 코딩 대회를 종종 하는데 난 알고리즘을 잘 작성하지 않는데다가 워낙 고수가 많아서 잘 참여하진 않는데 이건 뭔가 간단하면서 꼼수로 머리를 써볼 요소가 있어보여서 재밌게 느껴졌다. 그리고 잘 짜지 않더라도 운좋으면 가위바위보에서도 이길 수도 있고... 오전부터 친한 사람들과 의논을 하면서 가위바위보 알고리즘을 고민하고 자료도 찾아보고 했지만 역시나 좋은 생각은 나지 않았고 뭔가 좋은 접근이 생각나더다도 결국 다른 패턴엔 질것 같은 생각이 계속 들었다.

부스도 왔다 갔다 하면서 고민하다 보니 어느새 제출마감인 2시가 임박했다. 어떻게 할까 잠시 고민하다가 15분은 남기고 부스에서 마에님이랑 같이 코드를 완성해서 2시에 아슬아슬하게 제출했다. 완성이라고 해봤자 내가 한 것은 가위바위보를 순서대로 내는 것뿐이었다. 랜덤 등 간단한 코드는 예제로 제시되었기 때문에 다른 생각을 해보다 보니 익숙하지 않은 Python으로 15분 내에 작성하려면 이 정도 밖에 없었다.(결국, 첫날은 공지가 안 되어서 예시로 나왔던 랜덤코드도 허용해 주었지만...)

카카오 "가위바위보 코딩배틀"을 진행하신 장동수 님과 친분이 있어서 코드를 제출하고 카카오 부스에 상황도 볼 겸 놀러 갔다. 놀러 갔더니 제출된 코드 검증하고 4시에 있을 결과 발표 준비하느라고 정신이 없으셨는데 갑자기 결과 발표에 사용할 가위바위보 애니메이션을 만들어 달라고 부탁했다. 1시간 정도 만에 만들어야 했지만 간단한 애니메이션이라 만들 수 있을 것 같았다. 원래는 부스를 지켜야 했지만, 외주(?)를 받은 관계로 회사 협찬 로고를 부탁하고 카카오 측에서 준비한 이미지와 사운드에 맞춰서 애니메이션을 후딱 만들어서 전달했다.

카카오 가위바위보 코딩배틀 결과 발표

예정된 4시에서 좀 미뤄져서 5시에 결과 발표가 진행됐다. 결과 발표는 라이브로 진행되었고 예선은 참가자가 모두 한 번씩 게임을 하고 승률이 높은 참가자로 32강을 진행해서 우승자가 가려졌다. 중간중간 결과를 보면서 어떤 로직일까 궁금했지만, 최종 우승자는 카카오 측 결과 공지에 나온 대로 가위, 바위, 보 중 2개만 랜덤으로 내는 간단한 로직이 우승했다. 다들 다양하게 고민을 했는데 너무 간단한 로직에 당황한 것 같았지만, 결과를 라이브로 보는 재미도 꽤 있었고 사람들도 많이 모여서 흥행한 이벤트라고 생각된다. 예선에서 떨어졌지만, 선착순 100명까지 주는 라이언 목베게를 받았다. ㅎㅎ

Armin과 기념 사진

중간에 PSF(Python Software Foundation) 부스를 서성이면서 기회를 노려서 Armin Ronacher와 기념 사진을 찍었다. 얼굴을 몰라서인지 내 생각보다는 Armin한테 사람들이 몰려들지 않았고 눈치를 보다가 사진 찍자고 얘기하니까 흔쾌하게 받아주었다. 개인적으로는 Python이나 Flask 경험이 많이 있다면 이런 저런 얘기를 나누거나 질문도 해볼 수 있는 기회였는데(물론 영어가 되어야 하지만 ㅠ) 그러진 못해서 좀 아쉽다. PyCon 자체는 만족스러웠지만 APAC이라서 해외 개발자들이 많이 모이면 어떤 분위기일지 좀 궁금하기도 했지만, 생각보다 그런 기회는 없어서 좀 아쉬웠다. 물론 이건 내가 라이트닝 토크나 OST에는 참여를 못 했기 때문에 그럴 수는 있다고 생각한다. 좀 더 콘퍼런스답게 즐겼으면 했는데 그러지 못한 점은 좀 아쉽다.

PyCon 2일차

두 번 째날의 처음 키노트는 Armin Ronacher의 키노트였다. "Letters from the Battlefield"라는 제목으로 진행하면서 처음에는 그동안 Python으로 개발하면서 깨달은 부분을 정리해서 보여주는 것으로 생각했지만 계속 듣다 보면 django 쓰지 말고 Flask쓰세요.라는 걸로 들렸다. 그도 그럴 것이 Python 코딩에서 이런 점은 주의해야 합니다 하고는 보여주는 예시는 django 코드였고 이 패턴으로 발표는 계속 진행되었다. 두 번째 키노트는 PyPy를 만든 Maciej Fijałkowski였지만 왠지 들어도 잘 모를것 같아서 밖에 나와서 사람들하고 네트워킹하면서 시간을 보냈다.

Armin의 키노트

둘째 날도 나는 카카오에서 진행한 가위바위보에 참여했다. 첫날의 경험을 기반으로 규칙이 좀 변경이 되어 네이티브 random 함수를 쓸 수 없게 되었고 외부 모듈을 사용할 수 없게 되었다. 첫째 날의 진행으로 "이리저리 고민해 봐도 랜덤이 최강이다"라는 것이 증명되었기에 그 위에서 겨루는 상황이 되었다. random을 직접 구현해야 했기에 어떻게 구현하냐에 따라 가위, 바위, 보의 빈도수가 달라지겠지만 이게 가위, 바위, 보이기 때문에 고르게 분포된다고 꼭 좋다고 하기도 어려운 상황이었다. 그리고 random을 구현한다고 하더라도 다들 그렇게 하고 있으므로 다른 사람의 랜덤을 격파해야 하는 로직이 추가로 필요하게 되었다. 실제로 가위, 바위, 보를 하듯이 랜덤으로 구현하면 랜덤을 이기는 로직에 질테고 너무 그쪽에 집착하면 랜덤에 질 수도 있고 그런 흥미로운 상황이 되었다.

나는 오전 내내 고민하다가 2가지만 내는 랜덤코드를 작성했지만, 상대방이 내는 패턴을 분석해서 내는 2개의 종류를 계속 바꾸는 패턴을 구현했는데 막상 제출하고 보니 생각나는 오류가 좀 있었다. ㅠ 로직에서 졌을 수도 있고 상황에 따라서 오류가 발생해서 졌을 수도 있다는 생각이 들었다. ㅠ 5시에 결과발표를 진행했지만 첫째 날과 다르게 사람들이 엄청나게 열성적으로 참여했기 때문에 예선 진행이 꽤 오래 걸렸다. 그래서 1시간 반 이상 진행했음에도 결과가 나오지 않아서 결국 추후 공지를 하기로 하고 결과발표를 미뤘다. 콘퍼런스에서 라이브로 진행이 안된 게 약간 아쉽지만, 지금은 진행결과를 영상으로 찍어서 카카오측에서 공지를 해놓았다. 관심 있는 사람은 결과만 보아도 재미있을 것 같다.

PyCon 행사장

개인적으로는 OST가 좀 아쉬웠다. 첫날은 내가 정신이 없어서 OST가 얼마나 진행되었는지 보지 못했는데 둘째 날은 오후가 되면서 여러 가지 OST가 진행되었다. 장소 상황상 OST는 2층에서 진행이 되었는데 OST는 원래 지나가면서 구경도 하고 이 주제 저 주제 듣다가 참여도 하고 자기가 진행도 하고 이런 재미인데 2층에서 하다 보니 그런 전파가 잘 안 되는 느낌이었다. 2층도 각 회의실에서 진행이 되는데 문이 닫혀있어서 뭔가 돌아보기가 어려웠다. 장소 제약은 불가피한 거라서 PyCon 측에 불만이 있는 건 아니지만 좀 더 활성화되었으면 훨씬 재미있었을 텐데 그러지 못한 게 아쉽다. 지나서 보면 피곤해서 쉬었는데 라이트닝 토크를 못 들은 게 좀 아쉽긴 하다. ㅎ

둘째 날이 끝나니 엄청 피곤했다. 스폰서 자격으로 뒤풀이도 따라갔지만, 곧 철수하고 말았다. 셋째 날에는 스프린트와 튜토리얼 행사가 있었지만, 너무 피곤해서 그냥 쉬었다. Write the Docs에 관심이 있어서 원래는 참여할 계획이었지만 그냥 휴식을 취했다. 월요일까지 여기 가면 쉬지 못하고 그다음 날부터 다시 출근을 해야 해서... ㅎ

요즘은 천 명이 넘게 참가하는 개발자 행사가 많지 않아서 꽤 재미있게 놀다가 왔다. 이런 행사가 더 많아졌으면 좋겠다.

2016/08/22 23:41 2016/08/22 23:41

기술 뉴스 #60 : 16-08-16

웹개발 관련

그 밖의 프로그래밍 관련

  • AWS Application Load Balancer 서비스 공개 : AWS Elastic Load Balancing(ELB)에 Application Load Balancing이 추가되었다. 기존의 로드밸런싱은 Classic Load Balancing라고 부르게 되었고 새로 추가된 Application Load Balancing은 HTTP 헤더에 따라서 라우팅을 할 수 있고 컨테이너를 사용하는 사용자를 위해 세부적인 포트를 설정해서 로드밸런싱을 할 수 있고 WebSocket과 HTTP/2를 지원합니다.(한국어)
  • PyCon APAC 2016 발표자료 : 지난 13~15일에 열린 PyCon Apac의 발표자료가 공개되었다.(한국어)

볼만한 링크

  • 글쓰는 개발자가 되자. : 나도 글을 자주 쓰는 개발자로서 공감하는 글이다. 개발자가 왜 글을 써야 하는지부터 글을 쓸 때 염두에 두어야 할 팁이 잘 정리되어 있다. 블로그를 하려고 하는 분들은 많은데 막상 글을 다 쓰지 못하고 포기하는 경우가 많은데 고민이 된다면 이 글을 한번 읽어보면 좋을 것 같다.(한국어)
  • 호주 개발자 생활기 1편, 2편 : 호주에서 시니어 소프트웨어 엔지니어로 일하고 계신 분이 호주에서의 생활과 개발자로 사는 삶에 대해서 느낀 점을 잘 정리한 글이다. 호주에 이민 혹은 취업을 해서 갔을 때 고려해야 할 만한 부분과 개발자 문화가 어떻게 자리 잡아 있는지 잘 정리되어 있다.(한국어)
  • 대형 포털들이 맞춤법 검사기를 공개했다, 그런데… : 한글 맞춤법 검사기로는 독보적인 부산대 맞춤법 검사기를 만드는 권혁철 교수님이 최근 네이버와 카카오에서 맞춤법 검사기를 오픈하는 것에 대한 심정을 밝히고 현재 부산대 맞춤법 검사기의 상황에 대해서 공유했다. 애용하는 서비스이고 이 서비스가 없으면 오타 없이 글도 쓰기 어려운 처지라 안타까울 뿐이다.(한국어)

프로젝트

  • webpack-dashboard : WebPack dev 서버에서 컴파일 상황이나 로그 등을 터미널에서 확인할 수 있는 대시보드

버전 업데이트

2016/08/16 23:21 2016/08/16 23:21