home 허충길 (학사95 학번) 동문 / 서울대 컴퓨터공학부 부교수

허충길 (학사95 학번) 동문 / 서울대 컴퓨터공학부 부교수

[약력] KAIST 수리과학과 95학번 (전산학과 복수전공) /해커즈랩 프로그래머 /영국 캠브리지 대학교 전산학 박사(2010년) /독일 막스플랑크 연구소 연구원 /영국 Microsoft Research Cambridge 연구원 /IMO 동메달 수상.

학생기자=기, 동문=동

본 인터뷰는 허충길 동문이 캠브리지 대학 연구연가 중이라, 화상 인터뷰로 진행되었다.

기: 선배님 만나 뵙게 되어 반갑습니다.

동: 반갑습니다.

기: 선배님께서 수학과 전산 둘을 모두 공부하시게 된 계기나 동기에 대해 말씀 부탁드립니다.

동: 학부 당시 수학과 선배이던 현 수리과학과 엄상일 교수님의 영향이 있었습니다. 당시 학내에 BBS라고 Ara (주: KAIST에서 가장 오랜 역사를 지니고 있는 구성원들의 전자게시판)와 비슷한 인터넷 게시판이 많이 있었는데요, 그 시스템 개발도 하시며 학내에 잘 알려진 분이셨죠. 그 때, ‘아, 컴퓨터를 잘하면 현실에서도 폭넓게 소통도 할 수 있구나,’ 하고 느꼈습니다.

기: IT 보안업체에 병역특례 근무를 하셨는데, 당시의 전산학과 현재의 전산학에 대한 관점 차이는 무엇인가요?

동: 제가 보안 쪽 개발을 하던 2000년대 초반은 현재와 상황이 다릅니다. 그래서 그 시대와 지금의 비교보다는, 현재의 IT업계와 학계를 비교해야 공정하다고 생각합니다. 요즘에는, 개발을 제대로 하는 회사는 협업이 잘 됩니다. 기업에는 풀어야 할 현실적 문제가 꾸준히 있는데, 예를 들어 동시 사용자가 몇 배로 늘어나는 문제만 해도, 기존 시스템의 큰 개선이 필요해요. 이런 개선은 신속해야하고 협업이 필수입니다. 2000년대 초반에는 개발 자체가 우선이었지만, 이제는 개발 외 시스템의 유지, 보수, 검증도 상당히 중요합니다.

기: 학부시절 동기이신 저희 학과의 박 교수님 말씀에 따르면, 선배님은 수학 외 전산학과에서도 몇 번씩 밤을 새 프로젝트를 하고 잘 하셨다는데, 둘을 모두 잘하기 쉽지 않았음에도 그런 열정을 가지신 비결은 무엇인가요?

동: 성적에 연연하기 보다 프로젝트를 열심히 했을 뿐인데 좋은 성적들을 받게 되었을 뿐입니다. 대학 초반은 수학을 주로 했고 전산학은 대학 후반에 주로 했습니다. 프로젝트를 열심히 하게 된 것은, 수학과 학부에서는 현실 응용을 바로 배우는 일이 별로 없지만, 전산과의 프로젝트에서는 배운 이론을 코딩한 후 작동하는 것을 볼 수 있는 것이 흥미로웠기 때문입니다.

기: 영국 캠브리지대학에서 전산학 박사학위 때와 학위 후 이야기를 조금 부탁드립니다. 

동: 캠브리지 대학에서 박사를 받은 후, 박사 후 연구원으로 있었습니다. 박사학위 과정 자체는 제 적성에 맞지 않았던 것 같습니다. 하지만 박사를 마친 후 조금 더 중요한 연구를 할 수 있게 되었다고 생각합니다.

전산학에서 캠브리지 대학의 위상은 세계적으로 높습니다. 예를 들어 라즈베리파이, AWS의 전신이 된 어느 회사, Microsoft, ARM 등도 캠브리지 대학 연구소가 있습니다. 영국의 실리콘벨리 정도로 생각하시면 됩니다. 박사 후 근처 Microsoft 리서치 (이하 MSR)에서 인턴을 할 때 Coq를 사용하여 증명에 엄밀성을 부여하는 일을 했어요. 이론적이었지만 박사학위 때보다는 현실적 문제라 더 적성에 맞는 일을 하게 된 것 같아 열심히 일했습니다. 인턴시절의 인연으로, 2009년부터는 프랑스 파리 7대학의 PPS (증명, 프로그램, 시스템) 랩에서 1년 포닥을 했습니다. 좋은 논문도 쓸 수 있었고요, PPS를 거쳐 2010년부터 2년간, 독일 막스 플랑크 연구소에서 연구를 하였습니다.

기: 독일의 막스플랑크와 영국 MSR는 회사나 대학과는 어떤 차이가 있고, 어떤 종류의 연구를 하는 곳인지 말씀을 듣고 싶습니다.

동 : 막스플랑크 이야기를 주로 하겠습니다. 이곳이 다른 연구소와 가장 달랐던 점은 무엇보다 학문을 대하는 태도 인 것 같았습니다. 막스플랑크에 있는 동안 학자로서의 자세에 대해 많이 배웠습니다. 발표나 글 쓰는 것 등 기본적인 것에서부터 학자로써의 자세가 달랐습니다. 크게 배웠던 것은 ‘Devil’s advocate’, 즉, 어떤 방법을 택하면 왜 그것을 택하였는지를 반문하면서 연구를 진행하는 것이었습니다. 나는 왜 이것을 하는가, 이것을 그 방식으로 하는 이유는 무엇인가, 다른 방법은 어떤지 알아본 것인가 등을 끊임없이 고민하고 남들에게 충분히 설명할 수 있을 정도로 이해한 후 비로소 다음 단계로 넘어가는 습관 같은 것입니다. 이는 추후 연구 활동을 하는 것에 많은 도움이 되었습니다.

기: 현재 어떤 연구를 하시는지를 듣고 싶습니다. 

동: MSR에 있던 시절 확률 프로그래밍 언어에 대하여 연구하였는데, 이 중간에 서울대에 부임하여 처음에는 이 주제 연장에서 연구를 하여 AAAI (Association for Advancement of Artificial Intelligence; 인공지능발전학회)에 논문을 등재하였습니다. 그 이후에 진행한 중요한 연구는, 멀티코어 환경에서의 메모리의 간단한 모델을 만들어 낸 것이 있습니다. 그 이전에는 relaxed memory concurrency 같은 코어 상에서 여러 메모리가 같이 사용되는 환경을 명쾌하게 표현하는 모델이 미비하였습니다. 상당히 복잡해서, 탑 클래스급 프로그래머들도 고전을 하는 문제라, 프로그래밍 언어 분야에서 20년간 open problem으로 남아 있었습니다. 이 모델을 제시하고 Coq를 활용하여 증명해서 이 모델이 전산학자들에게 널리 받아들여졌습니다. 현재는 llvm 컴파일러 인프라구조 프로젝트에 참여하고 있습니다. llvm 컴파일러에 대해서는 최적화 여부에 대한 명확한 의미 기준이 미비한데, 여기에 기여하고 있습니다. Google이나 Microsoft에 있는 컴파일러 개발자와 소통하며 연구를 진행합니다. 현재까지 제 연구자 일생 중 지금 가장 이상적 연구를 하고 있다고 생각합니다. 연구 성과를 내면, 이를 기업의 동료 개발자들이 즉시 성능 개선에 활용하거든요. 캠브리지에서 카테고리 이론을 연구 할 때는 혼자 연구 하는 것 같았는데, 그 이후 다양한 사람을 만나며 대학과 기업의 훌륭한 동료들과 적성에 맞는 연구를 하게 되어 행복합니다.

기: 학창시절의 수학 공부가 그 이후의 전산학 관련 진로에 어떤 영향이나 도움을 주었는지 말씀을 듣고 싶습니다.

동: 수학적 사고가 도움이 많이 되었습니다. 연구에서는 문제에 답이 있을지 없을지도 잘 모르고, 답이 있더라도 어떻게 그 답을 찾을지 모르는 경우가 많습니다. 이런 면에서 수학적 사고가 큰 도움이 되었는데요, 예를들어 모든 가능성을 열어두고 서칭을 하고, 정말 확실하게 아닌 방법임을 알게 되면 이를 소거해 나가는 방법으로 가능성을 줄여 나갈 수 있습니다. 미해결 문제들은 남들이 써 보지 않은 방법을 시도해야 하는데, 이 부분에서 수학 배경이 큰 도움이 됩니다. 저는 문제를 파악한 후, 다른 연구자들의 진행상황을 찾아보는 작업을 하기 전, 우선 먼저 혼자서 충분히 시도하고 풀어보는 시간을 가집니다. 그렇게 해야만 방법들에 대한 선입견이 없어지고, 또 시도해 본 방법들이 있어야 다른 사람들의 연구 결과들을 읽을 때 그들의 결과를 명확하게 이해 할 수 있습니다. 직접 시도 해 보는 수학적 습관이, 제가 연구 활동을 해 나갈 수 있게 된 배경이 되었습니다.

기: 후배들에게 하고 싶은 말씀이 있으시면 자유롭게 부탁드립니다.

동: 우선은 자기 성향을 파악하는 것이 가장 중요하다 생각합니다. 저는 제가 하고 있는 일이 현실 문제에 곧장 적용되고 실현되는 것을 보는 것이 적성에 잘 맞다고 느낍니다만, 제 주변 친구들 중에는 다른 경우도 있습니다. 제가 보기에는 과연 저걸 어디에 쓸까, 저 이론을 언제 적용할 수 있는 날이 오기는 할까 싶은 것을 연구를 하는 친구도 있었습니다. 한번은 그런 친구에게, 그런 연구를 왜 하는지 물어보았는데, 돌아온 대답은 ‘바로 그렇기 때문에 자신이 그 연구를 한다‘라는 것이었습니다. 즉, 자기가 하지 않으면 인류의 다른 사람들이 안 할테니 문제에 책임감을 가지고 한다는 뜻이었습니다.

이렇듯, 사람마다 연구 동기는 천차만별이고, 결국 자신의 성향과 적성을 잘 알아서 자신이 하고 싶은 방향을 찾아야만, 하고 싶은 연구를 오래 할 수 있다고 생각합니다. 또, 한 번에 좋은 연구를 할 수 있을 것이라고 생각지 말면 좋겠습니다. 저도 처음에는 적성이 아닌 주제의 연구로 시작했지만, 경험이 쌓이고 제 성향을 파악하며 연구 방향을 제게 맞는 것으로 점진적 개선을 하니, 현재의 연구를 할 수 있었습니다. 시간을 충분히 두고, 학회를 다니고, 아이디어를 배우고, 교류를 해 가며 자신이 원하는 연구 주제를 찾고, 스스로에 대해 고민해 보는 것이 정말 큰 교육의 과정이라고 생각합니다.

기: 귀한 시간 내어 주셔서 감사드립니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.