Data Engineer

[회고] 석사과정 2년차

한해를 마무리 해가며, 내가 무엇을 하였고 어떤 것을 느꼈는지에 관해 정리해본다. 올 한해 여러가지 일이 있었지만, 전부 서술하기에는 오랜 시간이 걸릴듯하여 내게 가장 중요한 석사과정 졸업에 대해서만 서술한다.


1학기

올해 초, 석사과정 2학년 3학기에 들어가며, 연구실 생활에는 바뀐 것이 크지 않았으나 내 개인적인 연구에는 큰 변화가 있었다. 나의 졸업 논문 주제를 선정해야 했다.

나의 졸업 논문 주제에 관해 얘기를 해보자면.. 나는 작년부터 그래프 구조 데이터의 처리/분석에 관한 연구에 관심이 있었고, 세부적으로는 동적 그래프에서의 점진적 질의처리에 관한 연구에 관심이 있었다.

나는 그 중에서도 Durable Subgraph Matching이라는 질의를 다룬 논문을 타겟논문으로 선정하였다. 해당 논문을 타겟논문으로 선정한 이유는 여러가지가 있지만 몇 가지만 서술해보자면..

첫째. 해당 연구를 하는 연구자가 전세계적으로도 별로 없었고 국내에서는 아예 존재하지 않았다. 따라서 Durable Subgraph Matching를 국문으로는 어떻게 번역해야 할지 조차도 잘 몰랐다.

나는 나중에 “지속 가능한 서브 그래프 매칭”으로 번역하였다. 이 연구가 아예 존재하지 않거나, 과거의 논문만 존재한다면 다시 생각해봤겠지만, 16년부터 23년도까지도 논문이 출간되고있었고 이 주제로 연구를 하는 그룹이 전 세계에 두 그룹뿐이여서 유니크한 연구 주제라고 생각하였다.

둘째. 여러 분야에 활용할 수 있을 것이라 생각하였다. 지속 가능한 서브 그래프 매칭이란, 스냅샷으로 이루어진 시간 그래프 혹은 이력 그래프(Temporal Graph or Evolving Graph)에서 서브 그래프 매칭에 제약조건을 건 것이다. 예를들어 레이블 A-B-C로 이루어진 쿼리 그래프를 통한 서브 그래프 매칭에, 연속된 3개 이상의 스냅샷에서 해당 서브 그래프가 나타난 경우에만 결과에 반영하겠다는, “연속된 3개 이상의 스냅샷에서 발생한 서브 그래프” 라는 제약조건을 건 서브 그래프 매칭이다.

나는 이것을 금융 분야의 트랜잭션 패턴 파악이나, SNS에서 친분 관계를 확인하는 것에 활용할 수 있을 것이라 생각했다.

따라서 나는 해당 주제로 졸업 논문을 작성하기로 하였고, 관련된 논문을 읽고 나의 아이디어를 구체화하며 학술대회에도 참석하고 성능평가가 빨리 나온다면 저널에도 논문을 제출하면서 졸업 논문을 작성할 생각이었지만 한해가 끝나는 시점에서 저널에 제출하지는 못했다.

처음에는 주제도 빨리 정했고, 유니크한 연구 주제를 잘 선정했으니 논문을 쓰기도 쉽고 졸업논문까지도 순탄하게 작성할 수 있겠구나 생각했다.

하지만 이는 큰 착각이었다. 해당 주제가 활발한 주제가 아니다보니 레퍼런스가 적은게 첫번째 문제였고, 논문을 구현한 코드를 저자들이 공개하지 않거나 다른 언어로 작성했다는 것이 두번째 문제였다. 그리스 대학의 연구팀은 자바 언어로 작성한 코드를 공개해두었다. 그리고 중국 대학의 연구팀은 코드를 공개하지 않았고, 성능평가에서는 본인들의 코드도 그렇고, 그리스 대학 연구팀의 논문을 C++로 구현했다고 한다.

중국 대학의 연구팀의 논문이 나의 타겟 논문이었다. 따라서 코드를 공개해주거나 보내줄 수 있냐고 메일을 6, 7, 9월에 세 번 모든 저자에게 보냈으나 아직까지 아무도 읽어보지도 않았다. 7월에 메일을 보내며 직접 코드 구현을 시작하며 한 학기가 마무리되었다.

지금 와서 생각해보면, 중간에 주제와 타겟논문을 바꿀까 하는 생각도 했으나 지금와서는 결국 성공적으로 잘 구현하였기 때문에 바꾸지 않은 것이 참 잘한 것이다라는 생각과, 잘 찾아보고 선정할걸 하는 아쉬움이 공존한다.

2학기

대학원도 수업을 들어야하고 학점을 채워야 졸업할 수 있다는 것을 알고 있는가?

나는 당연히 학점을 다 채운줄 알았는데, 특정 과목 하나에 대해 학점 인정을 해줄 수 없다고 학교측에서 연락을 받았다. 마지막 학기에는 수업 안들으려고 지금까지 계속 학점 꽉꽉 채워서 들었는데.. 참 아쉽게 됐다.

1학기에 시작한 타겟 논문 구현을 계속해서 하다가 성공하였고, 이제 타겟 논문의 성능평가를 할 수 있게 되었다. 나는 처음에 타겟 논문의 성능평가만 되면 여유롭게 졸업 논문을 작성할 수 있을 줄 알았으나 이는 큰 착각이었다.

아이디어를 내는 족족 선배들 선에서 컷당하거나, 선배들이 이거 좋다라고 해도 교수님에게 컷당하는 일이 과장 좀 많이 보태면 1주일마다 반복됐다. 이런 일이 일어날때마다 선배들이 위로해주고 공감해주긴 했는데 말로는 아무 느낌 없다 괜찮다 하지만 속으로는 좀 많이… 여러 복잡한 감정이 들었다.

10월 말 쯤이 되어서야 아이디어를 확정내고 졸업 논문을 작성하며 성능 평가를 본격적으로 시작할 수 있었다. 결과는 좋아서 참 다행이라는 생각이 들었다. 기존 방법보다 최소 약 40%, 최대 약 300%까지 개선된 처리 속도를 확인하였다. 메모리 사용량은 기존과 동일하였다. 아. 드디어 끝나는구나.. 라고 생각했다.

11월이 되고 느낀 것인데, 드디어 끝나는구나.. 라는 생각도 큰 착각이었다. 졸업 논문을 쓰는게 생각보다 어렵더라. 인용할 논문을 찾아야하고, 읽어보고, 졸업 논문에 반영하고, 학술 대회에도 참여하고, 논문 심사도 받아야하고, 하던 과제 연구도 계속해야하고.. “아 박사과정은 못하겠다.” 라는 생각이 들었지만 아무 회사로 도피하고 싶지는 않았다. 그래서 두 개의 회사만 지원을 해보고 떨어지면 박사과정을 하겠다고 생각하였다. 석사 전문연구요원이 가능한 중견 방산업체 한 곳과 중소 소프트웨어 개발 검증 업체를 지원하고자 했다. 그 결과 방산업체는 서류탈락, 중소 소프트웨어 업체는 교수님께서 거기 지원하지말고, 흔들리지 말고, 박사까지 따자는 말씀에 지원조차 하지 않고, 11월이 빠르게 지나갔다.

12월에는 내 졸업 논문을 주제로 국제 학술대회에 참여가 예정이 되어있었다. 그래서 성능 평가의 일부를 실어 논문을 제출했고, 베트남 다낭에서 구두 발표를 하였다. 내가 들어간 세션에서 나 빼고 전부 다 AI와 관련된 주제더라. 좌장분께서도 내 발표를 이해하지 못했고, 다른 청중들 또한 마찬가지였다. 해당 학술대회는 융복합분야기 때문에 내가 기초부터 설명을 했어야 하는데 나의 실수라고 생각한다.

한국정보과학회의 학술대회나 IEEE/ACM의 학술대회와 같은 곳에서는 기초부터 설명을 하지 않아도 괜찮다. 하지만, 융복합분야는 과장 좀 보태서 말하면 고등학교 학생들에게 발표하는 것이라고 생각하며 발표 자료를 만들었어야 하는데 실수했다. 뭐 그래도 내가 준비한 발표는 잘 하였다. 이거면 된 것 같다. 그리고 이제 내가 이 글을 쓰고 있는 시점까지도 아직 졸업 논문이 완성되지 않았다. 다음달 중순까지 졸업 논문을 잘 작성하여 졸업을 마무리해야겠다.

내년 ?

내년은 내가 박사과정에 진입하는 해다. 박사과정에 진입하며 내 연구주제를 내가 바꿀수도 있고 유지할 수도 있을 것이다.

근데 어떻게 된다고 하더라도, 긴 기간동안 내가 연구할 것에 대해 조금 더 자세히 알아보고, 조금 더 신중한 결정을 하는 내가 되길 기대해본다.