왼손잡이해방연대 아지트

사용자 확인중...

재밌는 게임과 대학원생 근황

왼손잡이해방연대,

63

4

오늘은 늦은 저녁을 먹고 식곤증에 몸을 맡겼더니 지금은 뱃속에 열감이 있는채로 잠이 오지 않는 상태가 됐다. 자정에 소리 지르며 게임하는 룸메이트는 덤....

그런고로 서울대학교 프로그래밍 언어 연구실의 명물인 "주간 두괄식 에쎄이 연습"에 냈던 글이나 정리하여 올릴까 하여 컴퓨터 앞에 앉았으나 안타깝게도 에쎄이는 노트북에만 있고 노트북은 연구실에 있으므로 그냥 컴퓨터 앞에 앉은 사람이 되었다.

게임

올리려고 했던 글은 자크트로닉스(Zachtronics)사의 게임 스페이스켐(SpaceChem)이라는 게임을 소개한다. 그리고 스페이스켐으로부터 시작된 자크류(zachlike)라는 게임 장르에 드러나는 특징들을 고찰한다. 자세한 이야기는 이후에 올라올지도 모르는 에쎄이 본문은 참고하길 바랄지도 모른다.

스페이스켐은 예전에 재밌게 했던 게임이다. 보통은 못 끝낸 게임이 많은 편이지만 스페이스켐은 메인 스테이지를 예전에 다 클리어해놓았다.

요즘 다시 열심히 하고 있는 게임은 트릭컬이다. 한동안 권태기에 빠져서 잘 안 들어가다가 유튜브에서 스토리 스포를 너무 당하고 있어서 밀린 스토리 볼겸하여 들어갔다. 보드라는 성장 시스템이 개편되면서 무료 초기화 이벤트가 열려서 기존에 대충 찍은 보드를 다 밀어버리고 다시 찍었다. 덕분에 예전에는 다소 빠듯했던 메인 스테이지도 잘 밀려서 페이스를 되찾은 것 같다. 권장 전투력에서 30만 정도 부족해도 잘 밀리는 거 보면 내가 짜놓은 덱이 나쁘지 않은 것 같다.

MetaOCaml

연구실에서는 이제 오랜 인턴 생활을 청산하고 마침내 대학원생이 되었다. 이름표만 바꿔달았지만 연구에 집중력이 좋아진 것 같다. 지난주에는 연구실에서 미팅 발표 준비를 하다가 탈출 셔틀을 놓치고 택시를 탔다. 연구 공간과 생활 공간을 철저하게 분리해냈다는 점에서 의의가 있지 않을까. 하지만 주말 동안에도 머릿속에서 연구를 떨쳐내지 못하고 새벽까지 OCaml LSP 레포를 들여다보고 있던 걸 생각하면 공간을 분리한다는 것의 정의를 잘 고쳐볼 필요가 있는 것 같다.

지금 들여다보고 있는 주제는 기존 분석기를 어떻게 잘 주물러서 새로운 언어의 분석기를 만들어내는 방법에 대한 것이다. 지가 알아서 잘 주무르는 기계를 만들 수 있다는 게 마법적인 부분이라 할 수 있다.

그걸 구현하는 개발 환경을 세팅하자면 MetaOCaml이라는 OCaml 언어의 방언을 써야 하는데 이것이 하나의 난점이다. 안 그래도 조그마한 OCaml 나라에서 더 작은 MetaOCaml 지방 방언을 써야하는 셈이다. OCaml의 구글 검색 결과는 140만건, MetaOCaml의 구글 검색 결과는 1만2천건으로 100분의 1이다. 깃허브에 OCaml 레포가 4만개니까 OCaml을 쓰는 사람은 1만명 정도라고 하면, 전세계에서 MetaOCaml을 쓰는 사람은 100명 정도로 추산할 수 있다.

이렇게 도구를 쓰는 사람이 얼마 없으면 여러가지 잠재적인 문제가 생기는데 이를테면 맥북 M1에 그 도구를 깔아보는 사람이 대단히 드물다는 것이다. 그 문제는 겉보기에 해결이 간단해보임에도 우선순위가 저 아래 심연으로 떨어져 있어 금방 해결되지 않는다.

구체적으로는 5월에 이미 MetaOCaml을 M1에서 쓸 수 있게 하는 PR이 열렸지만 6월 4일을 끝으로 대화가 이어지지 않고 있다.... 이것을 해결하기 위한 트릭을 주말동안 만들어냈다. 사실 저런 PR이 있는 줄 모르고 또 PR을 열었다가 나중에 황급히 닫은 것은 안 비밀이다.

내친 김에 MetaOCaml 개발 환경도 고쳐보기로 하면서 주말의 밤낮은 뒤집혔다. merlin, OCaml LSP, dune, MetaOCaml 컴파일러 코드를 동시에 띄워놓고 열심히 읽었다. MetaOCaml을 지원"했었던 것 같은" 설정이 여러 계층으로 이뤄진 OCaml 개발 환경에서 설정이 불가능해진다는 점이 애매했는데 결국엔 merlin을 MetaOCaml 전용으로 수정하는 것으로 가닥을 잡았다. 방법이 정해지니 고치는 일 자체는 수월했다. MetaOCaml 자체가 OCaml 컴파일러에 패치만 적용하면 되도록 만들어져있고, merlin에 들어있는 타입 검사기도 컴파일러 코드를 복사해놓고 고친 형태라서 내가 생각해야 할 부분은 거의 없었다.

돌아보면 꽤 유용한 뻘짓이었다. 부수효과로 OCaml 시스템과 도구들에 대한 이해가 높아졌다. 어제 vim-lsp 플러그인을 고칠 수 있게 된 것도 OCaml LSP의 이모저모를 열심히 들여다봐서가 아닐까. 이제 vim에서도 패턴 매칭과 타입 주석(annotation)을 자동으로 만들 수 있게 됐다. 다음으로 할만한 뻘짓은 'ocamlformat 고치기'와 'vim-lsp 고쳐서 단계적 값 짓기(value construction) 기능 쓰기'가 있다.

리눅스

또 한 가지 이정표는 연구실에 데스크탑을 세팅했다는 것이다. 연구실에서 놀고 있던 컴퓨터 한 대를 떼다가 리눅스를 깔았다. 예전에 씨름했던 입력기와 폰트 등의 문제를 다시 풀었다. 오늘은 키보드 보안프로그램을 깔아보려 했는데 역시나 잘 안 되었다. ... 생각보다 할 얘기는 많이 없는 것 같다. 사실 MetaOCaml이 맥북에서 쓰기 불편해서 리눅스를 세팅하기로 마음먹은 건데 MetaOCaml 문제가 다른 쪽에서 쉽게 해결되어버린 면이 있다.

지금 리눅스에 있는 문제로는 메일 설정이 안 되어있다는 것이다. 연구실 메일은 받을 수 있는데 학교 메일은 연동이 불가능하다. 지메일로 포워딩을 하든 해야할 것 같다.

바탕화면을 뭘로 할지도 고민중인데 트릭컬 바탕화면은 아무래도 좀 부끄러울 것 같아서 일단은 대충 인터넷에 있는 구름 사진을 깔아놨다.

마무리하며

마무리로 쓸 내용은 특별히 없지만 끝내기 아쉬워서 넣은 섹션이다.

이번 학기에는 여행 갈 일이 잦다. 부산 3박4일과 싱가포르 6박7일을 다녀올 예정... 둘 다 학회 일정이다. 학회란 연구자의 사회성을 시험받는 곳... 여름방학에 서울에서 열린 학회에서는 그 시험에 떨어진 것 같다. 모 교수님 왈, 그런 데 가면 스스로 '5명 이상과 대화하기' 같은 도전과제를 설정해야지 안 그러면 멀뚱멀뚱 눈팅만 하다 오게 된다고. 무슨 일을 하든 사회성은 잘 훈련해놓아야겠지.

이번주 두괄식 에쎄이 쓰기 훈련에서는 <21세기 한국소설의 이해> 수업에 관해 써볼까 한다. 모국어 및 동시대의 매력에 대해 쓸 수 있을 것이다.

오늘은 7시도 전에 일어났다. 어젯밤에 달리며 오른 열이 아침까지 이어졌다는 느낌이다. 오늘은 저녁식사가 늦어서 달리지 않았지만 다시 꾸준히 달려보려고 한다. 잘 달리려면 열 배출이 중요한 것 같다. 어제 머리를 묶고 달리니 훨씬 편한 느낌이었다. 머리도 한번 깎아야지 싶지만 너무 귀찮다. 사실 깎을 필요성을 크게 느끼지 않는다. 하지만 사회성을 기르려면 깎아야지.... 오늘은 아침에도 그렇고 지금도 그렇고 기묘하게 열이 난다. 내일 있을 데이터베이스 수업은... 듣기 힘든 것은 아니지만 대단히 재밌지도 않고 어차피 학교는 가야하니까 가는 겸 앉아있는 기분으로 듣게 될 것이다.

첨부파일


목록

고래고래소리지르는 룸메는 진짜 너무하네요

진짜 룸메이트 꿀밤 마렵네요..