더북(TheBook)

우리는 지그로 만들었다

이 글의 도입부를 읽은 분이라면 우리가 최첨단 기술에 관심이 많음을 이미 알고 있을 것이다. 최근 주목받는 지그는 C 언어의 경쟁 프로그래밍 언어로 오픈 소스 커뮤니티의 광범위한 지원 아래 역동적으로 발전하는 중이다. 우리 마이그레이션 도구를 작성하기에 완벽한 후보였다. 도구의 상당 부분은 지그만으로 작성한 PostgreSQL 확장 기능이었다. 나머지 부분은 필요한 데이터를 HTTP를 통해 내보냈다. 완벽하게 최적화된 방식은 아니었음을 인정한다. 하지만 이렇게 하면 디버깅, 로드 밸런싱 등 작업이 훨씬 더 수월하다. 가짜DB가 HTTP 트래픽을 받아들일 수 있었으므로 이 정도면 마이그레이션을 수행하는 데 필요한 모든 것을 갖춘 셈이었다.

 

좋은 점

지그는 C 언어 상호 운용성을 핵심 기능으로 내세우며, 실제로도 잘 작동한다. C 언어의 헤더를 지그 프로그램으로 바로 ‘임포트(import)’해서 마치 지그에서 네이티브로 작성한 모듈처럼 사용하는 일은 정말 마법처럼 느껴진다. 컴파일러는 헤더를 지그로 트랜스파일(다른 언어로 컴파일)하고 이를 개발자 친화적인 방식으로 제공한다. 우리는 PostgreSQL의 공식 C 헤더를 사용하여 확장 기능을 지그로 구현할 수 있었다. 정말 놀라웠다!