Daybreakin Things
숨가쁘게 달려온 APSys 2012 워크샵이 끝났다. 워크샵에 첫 1저자 논문을 발표하기도 했지만, 워크샵의 운영 staff로 일한 첫 경험이기도 했기 때문에 아마 평생 두고 잊을 수 없는 워크샵이 되지 않을까 싶어 이렇게 글로 정리해본다.
APSys 워크샵은 올해로 3회째를 맞는 (아직은 작은?) 컴퓨터 소프트워어 시스템 전반을 다루는 학술대회이다. 먼저 워크샵에 대해서 간단히 설명하면, 전산 분야에서는 아직 진행 중이거나 초기 단계의 일이지만 주목할 만한 결과를 가지고 있을 때 논문을 내는 곳이다. 전산 분야에서는 논문 종류를 크게 proceeding으로는 학회(conference), 워크샵(workshop), 포스터(poster)로 나누고 그 외엔 journal 논문이 있다. 분야 발전 역사와 하드웨어의 기술발전 속도에 따라 같은 주제와 아이디어라도 금새 옛것이 되는 특성 상 논문 게재 승인이 나기까지 수개월 이상 걸리는 journal보다는 논문 제출과 리뷰 과정이 모두 deadline 기반으로 이뤄지는 학회/워크샵 논문들이 더 조명을 받는다. 학회 논문은 보통 영문 10pt 2 column으로 12~16 page 정도를 작성하고, 워크샵은 5~6 page, 포스터는 extended abstract 형태로 1~2 page를 작성한다. 포스터는 학회에 따라 proceeding에 실어주기도 하고 안 실어주기도 하는데, 리뷰 과정도 매우 단순화되어 있는 경우가 많다. 거의 '이런 일을 하겠다' 하고 찜하는 느낌이 강하다. 반면 학회 논문(conference full paper)은 리뷰 과정도 오래 걸리고 학회 심사위원들 중 한 명이 shepherd로 지정되어 해당 논문의 최종 버전(camera-ready version)이 나올 때까지 직접 논문 수정에 대한 제안이나 피드백을 중점적으로 주기도 한다. 따라서 일정 정도 이상의 완성도가 있는 논문이 나올 수밖에 없다. 이른바 "좋은" 학회에 full paper를 1저자로 1개라도 발표한다면 어지간한 미국 아이비리그 top school 진학이나 Microsoft와 같은 유명 기업체 연구소 취업 가능성이 매우 높아진다.
컴퓨터 소프트웨어 시스템은 매우 다양한 주제를 포괄하고 있다. 가장 전통적인 주제라고 할 수 있는 운영체제의 다양한 구성요소들에 대한 것부터 꼭 운영체제 커널이나 그 안에 들어가는 것은 아니지만 다른 응용소프트웨어를 만드는 데 기반이 되는 기술들 거의 모두가 포함된다고 할 수 있을 것이다. 세부적으로는 high-performance networking, memory management, 기존 소프트웨어 시스템의 multi-core scaling, SSD와 같은 새로운 하드웨어를 위한 filesystem, debugging을 쉽게 하기 위한 구조 설계 등을 예로 들 수 있겠다. 요즘 뜨는 주제로는 cellphone (보통 사람들은 smartphone이라는 용어를 더 많이 쓰지만) 환경에서 동작하는 프로그램을 제작하기 위한 API나 밑단 시스템 설계 등도 있고, power management(전원 절약)나 data center 관리에 대한 이슈도 많다. 이미 desktop/server 가상화 기술은 어느 정도 전통적인 주제가 되었고, cellphone 가상화도 이미 1~2년 전에 관련 연구들이 발표되었다.
APSys 워크샵의 모델은 유럽 지역을 중심으로 하는 EuroSys 학회이다. 이름에서 알 수 있듯이 APSys는 아시아-태평양 지역을 중심으로 한다. 물론 그렇다고 유럽 사람들이 논문을 내지 못하게 막거나 하지는 않지만 워크샵 개최지가 주로 아시아 지역이라는 것 정도? 아시아 지역에서도 경제력, 교육열, 방대한 IT 인프라를 바탕으로 컴퓨터 시스템 연구가 많이 이뤄지고 있으므로 나중에는 워크샵을 학회로 발전시킬 수 있지 않을까 싶다.
이번 워크샵에 내가 발표한 논문 제목은 "The Power of Batching in the Click Modular Router"로, Click 라우터라는 네트워크 장비를 소프트웨어로 구현하기 위한 프레임워크를 multicore 시스템에서 어떤 테크닉들을 적용해야 그 성능을 끌어올릴 수 있을 것인가에 대한 연구다. 제목이 말해주듯이 batch processing (여러 개의 작은 데이터를 모아서 한꺼번에 일괄처리하는 것)이 가장 주된 포인트이고, 그 외에 최근의 10Gbps 이상급의 네트워크 카드들이 지원하는 multi-queue 지원이나 multi-processor 시스템을 위한 NUMA 아키텍처에 대한 고려 사항 등이 들어간다. 사실 그러한 성능 향상 아이디어들 자체는 다른 연구에서 소개된 것이기 때문에 새로 만들어낸 것은 Click의 packet processing element들에 batching을 적용한 것이 전부이다. 허나 내 연구의 의의는 Click의 성능을 좋게 하기 위해 이런저런 시도들이 있었지만, 현재의 multi-core PC hardware에서 Click의 성능을 끌어올리기 위해 필요한 것들을 집대성해서 정리했다는 점이다. 앞으로는 이러한 테크닉 적용 과정을 자동화하거나 아예 Click 프로젝트를 fork해서 기존 Click 기반 application들의 수정 없이 그대로 성능이 향상되게 만드는 것이 하나의 목표라 할 수 있겠다. (그리고 현재 진행 중인 GPU 기반 packet processing 프레임워크인 nShader와 합치는?!) 원래 석사 졸업논문으로 했던 내용이지만, 석사 논문은 워낙 급하게 번갯불에 콩 구워먹듯이 쓴 거라 writing이 영 아니기도 하고 교내 졸업논문 심사위원 3분을 제외하고 이 분야의 다른 대가들에 의한 review를 받지 않았기 때문에 중간 milestone을 찍는 의미로 워크샵 논문으로 발전시키게 된 것이다. 아직 ACM copyright transfer 문제가 마무리되지 않아서 논문을 일반에 공개할 수 없으나 공개가 가능해지면 링크를 걸 예정이다.
Staff로 일한 경험 또한 이번 워크샵에서 잊을 수 없는 일이다. 그만큼 힘들기도 했지만, 실제로 학회나 워크샵이 어떤 방식으로 운영되는지 가까이서 알 수 있었다는 점은 나름대로 연구자로서 의미 있는 일이었다. APSys 홈페이지 자체는 몇달 전부터 Django를 이용해 뚝딱 만들어놓은 상태였기 때문에, 원래 처음에는 정산 업무를 줄이고자 이틀 정도 시간을 투자해 결제시스템을 붙이고 VISA invitation letter 같은 것도 하루에 한 번 정도 모아서 처리하면 되겠지- 라는 생각에 큰 무리 없겠다 싶어 워크샵 등록 업무를 맡았다. 뭐 사실 연구실에서 도와줄 사람이 별로 없기도 했고. (시스템 팀으로 워크샵 기간까지 실질적으로 도움을 줄 수 있는 사람은 나밖에 없었고, 소셜네트워크 팀한테는 아무래도 관심분야의 워크샵이 아니니까...) 그러나 실제로 일을 해보니 여러가지 문제와 상황에 부딪히게 되었다. 이런 비슷한 업무를 이 글을 보는 사람 중에 누군가 할 일이 있을지는 모르겠으나, 개인적인 기록 차원에서 정리해보았다.
국제 워크샵인만큼 다양한 나라의 사람들이 오게 된다. 유럽이나 미국 국적의 사람이 한국에 일시 입국하는 경우는 대부분 비자가 필요 없기 때문에 신경쓸 게 없는데, 문제는 중국과 중동 출신 사람들이다. 중국인들의 경우 2012년 7월 현재 제주도의 관광목적 입국 시에만 한국 비자가 면제되고, 한국 본토에 입국할 때는 비자가 필요하다. 또한 중동 사람들도 비자가 필요하다. 이런 사람들이 학회참석을 목적으로 한국에 오려면 이른바 '초대장' (VISA invitation letter)를 받아야 하는데, 학회 주최측에서 다음과 같은 정보를 채워 담당자 싸인이나 직인을 찍어 직접 스캔해 보내주어야 한다. (간혹, 국제특급우편으로 원본을 부치는 걸 요구하는 경우도 있다)
처음에는 우리 연구실이 주최했었던 PAM 2009 학회에서 썼던 양식을 그대로 썼는데, 여행 비용 지원 기관에 대한 란이 없었다. 요즘 들어 비자 주는 게 더 까다로워졌는지 몇몇 사람들이 한국대사관에서 빠꾸를 먹는 바람에 다시 써주면서 이런 것도 필요하다는 것을 알게 되었다.
비자 심사와 발급에 다소 시간이 걸리기 때문에, VISA invitation letter는 적어도 입국 전 2주 전까지는 보내주는 것이 좋다. 이번에 중국에서 논문 저자 중 한명인 어떤 교수님은 결국 비자 심사가 통과가 안 되어 입국을 못하는 사태가 발생했고, travel grant 발표가 좀 늦게 나오는 바람에 인도에서 오는 어느 학생은 연구실과 내 개인 휴대전화번호까지 알아내어 빨리 처리해달라며 실시간으로 국제전화를 하기도 했다. 학회 전주 금요일 오후(현지시간으로 대사관 직원 퇴근하기 1시간 전쯤)에 인도대사관에서 전화가 걸려와서는 travel grant를 무슨 기준으로 뽑는 것인지 등등에 대해 상세히 설명해주어야 했다.;;
등록 개시를 학회 시작 6주 전쯤 시작했는데, 처음 4주 정도는 널널했으나 마지막 2주 정도는 끊임없는 메일 때문에 낮시간에는 연속적인 집중 시간확보가 불가능했다. 아래의 민원과 합쳐서, 학회 개최 직전까지 주고받는 메일이 쓰레드로는 200개, 개별 개수로는 600통쯤 되지 않았나 싶다. 준비하는 논문이 있는 대학원생이라면 등록 업무 맡지 않는 것이 가장 좋다. (애초에 대학원생이 할 일이 아니다--시간 여유가 된다면 한번쯤 학회가 어떻게 돌아가나 경험해보는 의미는 있다. 하지만 절대 연구에 도움이 되는 짓은 아님을 말해두고 싶다. 흠... 그래도 굳이 장점을 꼽는다면 chair들과 메일을 자주 주고받게 되므로 좀더 친해질 수 있다는 거?)
등록 업무 중에서도 가장 중요한 것은 역시 수금(收金)이랄 수 있겠다. 예전 PAM 2009 때는 온라인 해외결제가 불가능하여 외국인들을 일일이 카드번호를 FAX로 받아두었다가 나중에 현장에서 카드결제를 하는 방식을 이용했다. 하지만 등록과정이 불편하고, 개인정보에 민감한 사람들은 카드번호 제공을 거부하는 경우도 꽤 있다는 것이 문제다. 이번에는 정보과학회에서 온라인 결제 대행업체(이쪽 업계 용어로는 payment gateway의 약자로 PG社라고 주로 부르는 듯) 2곳과 계약이 되어있다고 하여 이를 이용하게 되었다. 각 업체의 특징은 아래와 같다.
A : Windows IE 기반의 ActiveX 플러그인만 제공하지만, 해외카드의 달러화 결제가 가능하다.
B : cross-browsing 결제를 지원하지만, 해외카드 결제를 지원하지 않는다. 우리쪽 서버에 SSL 연결이 지원되어야 한다.
해외등록자들의 결제 문제 해결이 주 목적이었으므로 A를 선택했다. 하지만 거기엔 많은 문제점이 도사리고 있었다. orz
*.kaist.ac.kr
도메인에 대한 SSL 인증서를 쓸 수 있음 좋겠다는 맥락과 마침 진행 중이던 연구실 서버 인증 통합 작업 맥락을 합쳐 썼던 내 트윗을 시발점으로 비공식적인(?) KAIST 내부 서버를 위한 SSL 인증서신청 서비스가 탄생하였다. (!)결론: 걍 다음부터는 (수수료 좀더 나오더라도) paypal 씁시다.
초반에는 VISA invitation letter 써주는 게 주를 이루지만, 후반으로 가면 별별 이메일이 다 날라온다. 대표적인 사례 몇 가지.
그래도 연구실 사무원님이 실제 장소·버스 등의 각종 예약업무와 지정 숙박장소와의 커뮤니케이션 등을 맡아 해주셔서 많은 도움이 되었지만, 현장 준비는 누군가 따로 챙겨야 했다. 학회 전주 중반이 다 지나도록 아무도 이야기를 안 꺼내길래 내가 준비목록 리스트를 부왘 적어서 메일로 보냈더니 그제사 급하게 사람들이 할당되어 움직이기 시작했다.