4
OOPSLA 2017 Vancouver, Canada. 2017/Oct/23 – 2017/Oct/27 채권수 서론 벤쿠버 하야트 호텔에서 열린 OOPSLA 2017 에 논문 발표를 위해 다녀왔다. 대학원에 진학한 후 처음으로 논문 발표를 위해 참여한 학회. 생각했던 것보다 벤쿠버를 많이 구경하지는 못했고 체력적으로도 조금 힘 들었음에도 불구하고, 학회 자체가 기대 이상으로 재미있고 유익한 시간이었기 때문에 약 5 일간의 기억이 잔잔한 즐거움이 되었다. 유명한 연구자들이 발표하고 토론하는 모습을 보는 동안, 내 시감각과 상상력은 그들이 매일 우리와 비슷하게 고민하고 노력하는 모습을 (마치 영화의 한 장면처럼) 내 머릿 속 어딘가에 투영해내고 있었다. 좋은 업적과 출판물은 유명(有名)에서 나오는 신비한 그 무엇 때문이 아니라, 대부분 은 문제에 대한 탐구, 끈기, 그리고 토론과 협력의 결과물일 것이라는 것을 체감(體感)케 해주었다. 이번 리포트는 내 나름의 우선순위 알고리즘을 활용해 주요 이벤트를 이어붙여 시간의 흐름으로부터 자유로워질 생각이다. 이 보고서를 통해 (몇 안 될, 나와 비슷한 길목에 서 있는) 독자들이 유익한 간접 체험 을 할 수 있다면 무심히 흘러간 지난 한 주를 재해석하고 포장해내는 데 헌신한 내 저녁에게 그리 크게 미안 함을 느끼지는 않을 것 같다. 학회 일정 PLMW 와 OOPSLA 에만 신경써서 참여해도 하루 하루가 꽤나 짧았다. 일정이 생각보다 빡빡했고, 체력적 으로도 부담이 없지 않았다. 우리 일정은 아래 표와 같았다: Vancouver 도착 (점심) PLMW OOPSLA 내 발표 공항으로 출발 (오전) 휴식 포스터 세션 포스터 세션 Banquet 2016 년도 ICFP 에 참여했던 경험을 통해 학회의 모든 발표를 듣는 것은 물리적으로 불가능하다는 레슨은 가지고 있었기 때문에, 다음 세션 시간대 전에 미리 들어가볼만한 학회를 대략 정해두고 그 발표들만 잘 들 어보자고 생각했다. 체크해 둔 발표에 해당하지 않는 시간대에는 밖에 나와서 커피를 한 잔 하거나 다들과 이야기를 하면서 시간을 보다. 항상 두 세션이 병렬적으로 진되었기 때문에 때로는 을 왔다 다 해야 하는 경우도 있었다. 우리 OOPSLA 논문 발표 발표가 마지오전 세션이었다. 수요일 OOPSLA 세션 발표으면 저 발표하고 어버수 있어 좋았으만, 금요일 발표여서 PLMW(화요일) OOPSLA(수 – 금) 기간 동안 주기적으로 같은 세션 에서 발표하는 세과 함발표 연습을 해 보아야 했다. 다히도 같이 간 동지들이 (지루할 것에도 불구하고) 몇 번의 발표 연습의 청중이 되어주어서 연습을 잘 할 수 있었다. 학회 출발 전 상당한 시간을 들여서 라이흐름을 설계하고, 구하고, 다었다. 발표 연습 한 수 일을 통용해서 했는데, 일미리 만들어트는 다 워두고 연구몇몇 구들에게 부 해서 한 사람씩 아가에서 발표를 해 보았다. 한 사람만 있어도 자 하는 것과는 조금 다았는데, 자는 수반복하고 연구구들 개개인 에서도 몇 번 연습해서 그지 연구전체 리 허설은 잘 마무리할 수 있었다. 학회 기간동안 발표 라이양홍박사님께 보내서 코멘드았는데, 코멘

OOPSLA 2017 - prl.korea.ac.krprl.korea.ac.kr/~pronto/home/trips/oopsla17_kwonsoo.pdf · 가장 인상깊었던 발표는 UPenn의 Mayur Naik 교수님의

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OOPSLA 2017 - prl.korea.ac.krprl.korea.ac.kr/~pronto/home/trips/oopsla17_kwonsoo.pdf · 가장 인상깊었던 발표는 UPenn의 Mayur Naik 교수님의

OOPSLA 2017Vancouver, Canada. 2017/Oct/23 – 2017/Oct/27

채권수

서론벤쿠버 하야트 호텔에서 열린 OOPSLA 2017 에 논문 발표를 위해 다녀왔다. 대학원에 진학한 후 처음으로 논문 발표를 위해 참여한 학회. 생각했던 것보다 벤쿠버를 많이 구경하지는 못했고 체력적으로도 조금 힘들었음에도 불구하고, 학회 자체가 기대 이상으로 재미있고 유익한 시간이었기 때문에 약 5 일간의 기억이잔잔한 즐거움이 되었다. 유명한 연구자들이 발표하고 토론하는 모습을 보는 동안, 내 시감각과 상상력은 그들이 매일 우리와 비슷하게 고민하고 노력하는 모습을 (마치 영화의 한 장면처럼) 내 머릿 속 어딘가에 투영해내고 있었다. 좋은 업적과 출판물은 유명(有名)에서 나오는 신비한 그 무엇 때문이 아니라, 대부분은 문제에 대한 탐구, 끈기, 그리고 토론과 협력의 결과물일 것이라는 것을 체감(體感)케 해주었다.

이번 리포트는 내 나름의 우선순위 알고리즘을 활용해 주요 이벤트를 이어붙여 시간의 흐름으로부터 자유로워질 생각이다. 이 보고서를 통해 (몇 안 될, 나와 비슷한 길목에 서 있는) 독자들이 유익한 간접 체험을 할 수 있다면 무심히 흘러간 지난 한 주를 재해석하고 포장해내는 데 헌신한 내 저녁에게 그리 크게 미안함을 느끼지는 않을 것 같다.

학회 일정PLMW 와 OOPSLA 에만 신경써서 참여해도 하루 하루가 꽤나 짧았다. 일정이 생각보다 빡빡했고, 체력적으로도 부담이 없지 않았다. 우리 일정은 아래 표와 같았다:

월 화 수 목 금 토

Vancouver도착 (점심) PLMW OOPSLA

내 발표 공항으로 출발(오전)

휴식

포스터 세션 포스터 세션 Banquet

2016 년도 ICFP 에 참여했던 경험을 통해 학회의 모든 발표를 듣는 것은 물리적으로 불가능하다는 레슨은 가지고 있었기 때문에, 다음 세션 시간대 전에 미리 들어가볼만한 학회를 대략 정해두고 그 발표들만 잘 들어보자고 생각했다. 체크해 둔 발표에 해당하지 않는 시간대에는 밖에 나와서 커피를 한 잔 하거나 다른 사람들과 이야기를 하면서 시간을 보냈다. 항상 두 세션이 병렬적으로 진행되었기 때문에 때로는 방을 왔다갔다 해야 하는 경우도 있었다.

우리 OOPSLA 논문 발표발표가 마지막 날 오전 세션이었다. 수요일 OOPSLA 첫 세션 발표였으면 먼저 발표하고 잊어버릴 수 있어서 더 좋았으련만, 금요일 발표여서 PLMW(화요일) 및 OOPSLA(수 – 금) 기간 동안 주기적으로 같은 세션에서 발표하는 세훈이형과 함께 발표 연습을 해 보아야 했다. 다행히도 같이 간 랩 동지들이 (지루할 것임에도 불구하고) 몇 번의 발표 연습의 청중이 되어주어서 연습을 잘 할 수 있었다.

학회 출발 전 상당한 시간을 들여서 슬라이드 흐름을 설계하고, 구성하고, 다듬었다. 발표 연습 또한 수 일을 통째로 사용해서 했는데, 일단 미리 만들어놓은 스크립트는 다 외워두고 연구실 몇몇 친구들에게 부탁해서 한 사람씩 돌아가며 앞에서 발표를 해 보았다. 한 사람만 있어도 혼자 하는 것과는 조금 다른 느낌을받았는데, 혼 자는 수십 번 반복하고 연구실 친구들 개개인 앞에서도 몇 번 연습해서 그런지 연구실 전체 리허설은 잘 마무리할 수 있었다.

학회 기간동안 발표 슬라이드를 양홍석 교수님과 허기홍 박사님께 보내서 코멘드를 받았는데, 코멘트

Page 2: OOPSLA 2017 - prl.korea.ac.krprl.korea.ac.kr/~pronto/home/trips/oopsla17_kwonsoo.pdf · 가장 인상깊었던 발표는 UPenn의 Mayur Naik 교수님의

를 반영하느라 슬라이드도 마지막 부분에 조금 수정하게 되었다. 양홍석 교수님의 코멘트는 아래와 같았다:

1. 시간 안에 끝내기2. 적절한 Self-criticism3. 한 문장의 summary

첫째, 시간은 이미 연습을 통해서 충분히 확인을 했다. 둘째, 우리 연구의 한계점을 스스로 지적하는 슬라이드를 추가한 것은 다시 생각해도 잘 한 일이었다. 독립된 슬라이드를 하나 더 만들어서 우리의 feature representation 이 기존에 사람이 디자인한 모든 종류의 feature 를 표현해내지는 못한다는 것을 구체적인 예시와 함께 지적했다. 나아가, 다양한 종류의 분석에 우리 기술을 적용하기 위해서는 feature representation 이 어떻게 변화해야할 것인지 알아가는 것도 흥미로운 방향일 것이라는 것을 제시하였다. 셋째, 기존에는 마지막 takeaways 슬라이드에서 우리 논문의 introduction 세션에 리스트업된 contributions 내용을 가져와 나열했는데, 이를 바꿔서 기계학습 기술을 적용하기 위해 자동으로 feature 를만들었다는 것을 다이어그램을 활용해서 보여주고 feature 의 “어떻게”와 “무엇”을 몇 단어로 핵심만 간략히 제시하였다. 허기홍 박사님께서도 늦은 시간임에도 불구하고 좋은 코멘트를 많이 주셨다. 발표 직전에 더 수정하는 것이 촉박하고 부담스러워 더 반영하지 못한 것이 아쉽고 마음에 걸린다.실제 발표장 강단에 올라가니 예상과 달리 아주 조금 더 떨렸다. 그래도 연습 한 대로 차분히 진행했는

데, 발표 시작 전에 약간의 추가적인 애드리브도 거들 수 있었다: “이전 발표와 이번 발표가 같은 연구실 발표이니, 함께 고려해서 들어주시면 도움이 될 거에요. 데이터 기반 정적 분석의 같은 연장선상에 있습니다.” 발표가 끝난 후 마이크 앞에서 질문해오시는 분들도 꽤 있었는데, Yannis Smaragdakis 교수님의 질문을 처음에 잘못 알아들었던 것 빼고는 다행히 잘 대처해낼 수 있었다. 공식적인 질의응답 시간 이후에도 몇몇 학생과 연구자분들이 오셔서 더 같이 이야기할 수 있었다.

어찌어찌 끝이 났다. 발표 경험이 이후 연구에도 자극제가 될 것 같다. 휴.

우리 OOPSLA 포스터 발표학회에 가기 전, 두 개의 포스터 발표 세션 모두 논문 발표 전이라는 것을 확인하고 어딘지 앞/뒤가 바뀌지 않았나 하는 생각을 했다. 논문 발표를 먼저 진행하고 우리의 멋진 결과를 더 궁금해하여 질문하려는 사람들로 문정성시(門前成市)를 이루는 포스터 세션! 그야말로 이상적인 (부담스러운) 그림이다. 근데 실제로는 포스터 세션을 두 번이나 먼저 진행하고 메인 발표라니. 찝찝했다.

하지만 실제로 해보니 걱정과는 반대로 전혀 이상한 점은 없었다. 우리 이외에도 (포스터에 참여한) 거의 대부분의 사람들이 포스터를 진행하고 발표를 했다. 오히려 포스터를 먼저 진행하니 내 발표를 은연 중에 홍보할 수 있어서 좋았다: “우리는 이런 문제를 지적했고, 이런 식으로 풀었는데요. 들어보니 괜찮죠? 발표 때 한 번 와보세요. 더 잘 설명해 드릴게요.” 버드와이져도 한 잔 하면서 말이다.

물어오는 질문들은 SIGPL 워크샵 포스터 세션 때와 아주 유사했다. 풀려는 문제가 무엇인지, feature generation (program reduction 및 generalization)에 대해 구체적으로 설명해 달라든지, 등. UCLA 의 Jens Palsberg 교수님은 꽤나 오랫동안 내 포스터 앞에 서서 질문을 하시며 한 가지 특이한 경우를 이야기 해주셨다. 우리는 reduction 과정에서 계속 유지해야 하는 invariant 를 알고 있고 인코딩할 수도 있는 세팅인 데 반해, 그 그룹에서 현재 진행하고 있는 프로젝트에서는 invariant 의 정의 자체를 알기 힘든 상황이라고 하셨다. 프로그램을 웹 어딘가로 보내서 reduction 이 되면 그 결과물만 확인할 수 있는 상황이라고 이해를 했는데, 더 자세한 내용은 이야기하지 못했다. Invariant 의 정의를 알 수 없는 상황에서 우리의 reduction 방식을 바로 적용할 수는 없다는 사실만 확실하다.

포스터에 적힌 허기홍 박사님의 이름을 가리키시며 이 사람을 잘 안다고 하셨는데, 알고보니 지금 함께프로젝트를 진행하고 계신다고 한다.

포스터 세션 동안 내가 취한 한 가지 전략은 내 연구만 말하는 것이 아니라 다른 사람들의 연구도 둘러보자는 것이었다. 지난 SIGPL 워크샵에서 진행한 포스터 세션에서도 우리 연구를 많은 사람에게 설명할 수있어서 좋았지만 다른 사람들의 연구로부터 영감을 얻을 수 있는 좋은 기회를 놓쳐버린 것 같아 아쉬움이 남았기 때문이다. 두 팀 정도 설명해주고 한 번 정도 돌아다니고 하면서 균형을 맞추려고 했더니 나도 다른 사람들의 연구에 대해 들으면서 생각할 수 있어서, 또 친구도 만들 수 있어서 좋았다.

기계학습, 프로그래밍 언어 분야에서이번 OOPSLA 에 발표된 논문들 중에서도, 기계학습 기술을 활용해서 프로그래밍 언어 분야의 문제를 잘 해결할 수 있음을 보이거나 두 분야가 만나는 지점에서 생기는 문제들을 해결하기 위한 방법을 제시하는

Page 3: OOPSLA 2017 - prl.korea.ac.krprl.korea.ac.kr/~pronto/home/trips/oopsla17_kwonsoo.pdf · 가장 인상깊었던 발표는 UPenn의 Mayur Naik 교수님의

논문들이 꽤 있었다. 내가 발표를 들었거나 기억나는 것만 정리하면 아래와 같다:• Abriding Source Code• Learning User Friendly Type-Error Messages• Learning to Blame: Localizing Novice Type Errors with Data-Driven Diagnosis

추가로, 우리 연구실 논문 두 편:• Automatically Generating Features for Learning Program Analysis Heuristics for C-Like Languages• Data-Driven Context Sensitivity for Points-to Analysis

내 기억이 맞다면 우리 연구실의 <Data-Driven Context Sensitivity for Points-to Analysis>를 제외하면 모두 supervised learning을 활용해서 각 문제를 해결해보였다. 한 가지 아주 인상적이었던 것은, (또다시 내 기억이 맞다면) 해당 연구들이 하나같이 공통적으로 manual feature engineering과 manual labeling 과정을 인내한 결과물이라는 것이었다. 자동화된 학습 장치로써 풀고자 하는 문제가 해결된다는 것을 보이기 위해 또 얼마나 많은 시행착오(전문 용어: shovel)를 반복했을까. 발표를 들으며 발표자들의 등이라도 토닥여주고 싶었다. OOPSLA 마지막 날 마지막 발표 논문이었던 <Learning User Friendly Type-Error Messages> 발표가 끝나고 저자에게 labeling을 어떻게 했냐고 질문을 했는데, 몇 천 개가 넘는 labeling을 모두 손으로 하나 하나 했다고 했다. Feature 디자인도 마찬가지였다. 내가 정말 실화냐는듯이 쳐다보니 머리를 감싸쥐며 manual한 labeling과 feature design 은 정말 힘들었고 자동화해야하는 중요한 부분이라고 이야기했다. 물론.

PLMW하루 종일 진행했기 때문에 많은 체력을 필요로했지만, 그 만큼 얻을 것도 많았던 시간이었다. 이름 있는 연구자들을 초청해서 강연을 제공할 뿐만아니라 최근 박사 학위를 얻은 분들도 패널로 초청해서 한 시간 동안 질의 응답 형식의 토론을 벌이도록 한 것을 보면, PLMW 를 잘 운영하기 위해서 많이 신경을 쓰고 있다는 생각이 든다.

가장 인상깊었던 발표는 UPenn 의 Mayur Naik 교수님의 <Navigating the process of doing a rewarding Ph.D> 강연이었다. 이 강연에서 기억에 남는 첫째는 연구에 있어서 좋은 문제를 찾고 정의하는 것이 제일 중요하다는 것이었다. 본인도 Stanford 의 Alex Aiken 교수님 밑에서 박사과정을 할 때 이 부분에서 많은 시간을 보내며 고통을 겪었고, 성장할 수 있었다고 했다. 둘째는, 어느 순간엔가 다른 사람들의 논문을 읽으며 문제를 찾는 시도를 포기했고 실제 예제를 통해서 문제를 발견하는 것이 더 유익하다고 이야기한 것이었다. 둘 다 아주 중요한, 주기적으로 되씹어 볼 가치가 있는 말이었다. 오학주 교수님도 많이 강조하시는 부분 중 하나이다.

인상 깊었던 논문 발표들인상 깊었던 발표들은 앞서 소개한 프로그래밍 언어와 기계학습의 결합을 시도한 논문들이었다. 발표로 미루어보아 논문들의 스토리는 유사하다. 어떻게 labeling data 를 만들고, 무엇을 feature vector 로 표현해내며, 어떤 것들을 feature 로 디자인 했는지, 등. 한 가지, <Learning User Friendly Type-Error Messages> 논문에서는 feature 의 중요도 및 feature selection 에 대해서 다양하게 실험 데이터를 제시했다고 했으므로, 읽어보면 큰 도움이 될 듯 하다.

마무리한 주가 순식간에 지나갔다. 지나간 시간은 돌아오지 않지만 지난 한 주를 현재에 비추어 짧은 기억을 남겨보았다. 학회 참여를 통해 (우리의 연구 결과도 알리는 것 이외에도) 얻을 것이 꽤 많다는 게 나의 뇌 신경망주요한 어딘가에 각인되는 듯 하다. (관찰한 바에 따르면) 공통 분모가 있는 사람들끼리 최근의 연구 경향에 대해 이야기하고 서로의 관심사를 공유하면서 협력의 기회도 만들 수 있다는 것도 중요한 측면 중 하나인 듯 하다. 아직 그럴 능력은 되지 못하지만서도. 또 다른 하나는 좀 더 와 닿는 이점. 다른 사람들의 발표를듣거나 그들과 대화를 하면서 대략 해당 분야의 최전선이 어디쯤 되는 지, 우리 연구가 어느 정도면 이 정도학회를 노려볼만한 지 더 잘 가늠해볼 수 있게 되는 것 같다.

유명한 연구자든 나처럼 무명의 대학원생이든, 모두가 “고민하는 사람들”이었다. 번개처럼 우수한 논문을 리턴해주는 oracle function 도 존재하지 않는 듯 하다. 그렇지만 좀 더 효과적으로 깨어있는, 그래서

Page 4: OOPSLA 2017 - prl.korea.ac.krprl.korea.ac.kr/~pronto/home/trips/oopsla17_kwonsoo.pdf · 가장 인상깊었던 발표는 UPenn의 Mayur Naik 교수님의

좀 더 좋은 function 을 만들어내는 방법은 있을 것이다. 학회를 다니면서 좋은 것은 취하고 버릴 것은 과감히 버리는 역사의 일반적인 교훈을 내 작은 세계에도 적용하며 노력해보면 좋겠다는 생각이 든다.

부족한 나를 지켜봐주시며 때로는 채찍을, 많은 경우 격려를 주시는 오학주 교수님께 감사의 마음을 전해드리고 싶다. 더불어, 함께 멋진 연구를 만들어주신 양홍석 교수님과 허기홍 박사님께도 감사드린다. 교수님 두 분과 박사님께서 하시는 모습을 보고 항상 내 부족함을 깨닫고 옆에서 배울 수 있었다.더 잘, 더 깊게, 더 풍부하게 쓰고 싶다. 하지만 내게도 미래를 생산하는 일과 과거를 재조명하는 일 사

이의 trade-off가 존재한다. 이 쯤에서 마무리한다, 몇 장의 사진과 함께.

<벤쿠버>

<포스터세션>

<사무라이 스시>

<숙소>