학교, 연구소, 스타트업 창업, 회사 등 나름 다양한 환경을 겪어오면서 느낀 점. '생명정보학 인력'에 대한 정의와 기대 수준은 정말 천차만별 이라는 점. 오늘 이 혼란을 좀 정리해 보고자 한다.
크게 '생명정보학 인력'은 생명정보학 과학자와 생명정보학 엔지니어로 구분해 볼 수 있을 것 같다. 간략하게 정리해 보면, 아래와 같다. ( 각각의 기준에서의 최소 요건 )
생명정보학 과학자( Bioinformatics scientist )
생명정보학 엔지니어( Bioinformatics engineer )
생명정보학 엔지니어로서 역량의 필요성
학자로 생명 현상에 대한 연구를 하는 생명정보학 과학자라면 생명정보학 엔지니어로서 역량을 갖추지 못해도 괜찮다. 하지만, 시스템을 구축하고, 제품을 개발하는 역할이라면 생명정보학 엔지니어로서 역량이 필수적이다.
즉, 학교를 떠나 산업계에 종사하게 되는 순간, '생명정보학 엔지니어'로서 역량은 필수가 된다. 생명과학 계열 학과에서 급조한 생명정보학 프로그램이나 생명과학 연구랩에 소속되어 large scale data를 생산해 소프트웨어를 다루며 연구를 수행한 '생명정보학 user' 수준의 생명정보학자는 산업계에서 요구하는 생명정보학 엔지니어로서 역량을 충분히 갖추지 못했기 때문에, job 을 구하는데 있어 문제를 겪을 공산이 크다.
현재 속한 회사에서 생명정보학 인력 채용에 코딩테스트를 도입해 진행하고 있는데, 알고리즘 풀이도 아닌 수학으로 치자면 더하기 빼기 수준의 파일 입출력, 문자열에서 패턴 개수 세기 등의 문제 몇문제에 대한 통과율은 20% 정도. 생명정보학 석박사 학위를 받은 분들의 결과다.
개인적으로 회사에서 생명정보학 관련된 그룹의 관리자 급 이라면, '생명정보학 엔지니어'로서 역량을 충분히 갖추어야 한다고 본다. 관리자 급은 시스템 구축에서 부터 결정 권한을 가지는데 시스템에 대한 이해, 알고리즘에 대한 이해가 없이는 어떤 컴퓨터를 어떤 사양으로 ( 특히 메모리, HDD) 갖추어야 하는지에서 부터 그저 '비싸고 좋은 것'을 선택하는 수준을 벗어나지 못한다.
DB를 구축해서 쓸 시스템이라면, 전체 DB의 구조를 고려하고, 일상적인 query 의 time complexity를 고려할 수 있어야 하고, 이에 기반한 계산을 통해 용량과 cpu power 를 결정해야 효율적인 시스템을 구축할 수 있다.
Genome analysis pipeline을 구축했다면, 각 단계에서 time complexity를 꾸준히 개선해 내는 작업을 해야 한다. 그렇게 꾸준히 효율적인 시스템으로 update 하면서, 제품의 성능이 올라가고 경쟁력이 생긴다. 마치, 구글이 초기 pagerank 알고리즘을 cloud 기반의 거대 시스템으로 확장하며 효율을 올린 것 처럼. 그렇게 해서 어떻게 품질이 올라가느냐? 구글 검색 속도가 빨라지고, 검색 정확도가 높아졌고, 결과로 구글은 검색에서 경쟁력을 더욱 공고히 다질 수 있었다.
O(n2) 에 만족하지 않고 O(n), O(logN) 으로 개선하려는 노력을 꾸준히 해 나가야 한다. 그런 엔지니어가 생명정보학 연구/개발 팀 리더가 되어야 한다.
나는 생명정보학 과학자일까 생명정보학 엔지니어일까?
아래 항목들 중 yes 가 5-6 개 이상이라면 생명정보학 엔지니어 능력을 갖추었다고 할 수 있을 것 같다.
산업계에서 생명정보학 연구개발팀 리더라면 적어도 10개 이상은 yes 가 되어야 한다고 본다.
( 학교/연구소에서 생명정보학 연구 그룹 리더 마찬가지 )
P.S. 사실 생명정보학자나 엔지니어를 구분하지 않고 위의 요건들을 갖춘 사람을 '생명정보학 인력'으로 보는 것이 맞다고 생각함. 다만 국내에서 생명정보학 인력에 대한 기대 수준이 천차만별이다 보니, 최소 요건을 구분해 정리를 해 보고 싶어 '생명정보학 user'( 만들어진 소프트웨어를 활용해 생명과학 연구를 하는 연구자)를 생명정보학자로서 최소 기준으로 정리를 해 본 것. 원칙적으로 생명정보학에 몸담고 있는 사람이라면 위의 요건들은 '최소자격요건' 수준으로 보는 것이 맞다고 봄.
#3billion #운영 #인사이트 #스타트업 #마인드셋 #조언 #경험공유