-[오픈테크넷2022] 카카오뱅크의 오픈소스 활용 핵심 컨셉 ‘쉬프트 레프트(Shift-left)’ 모델
[디지털데일리 이상일기자] 카카오뱅크가 지난 1월 국내 금융사 최초로 오픈소스 관련 국제 표준 인증을 획득했다.
카카오뱅크는 국제표준화기구(ISO)의 '오픈체인(Open Chain) 프로젝트'의 표준 준수 기업으로 오픈소스 컴플라이언스 인증(ISO/IEC 5230:2020)을 획득했다.
디지털데일리 웨비나 플랫폼 ‘DD튜브’에서 진행된 [오픈 테크넷 서밋 2022] 행사에서 카카오뱅크 하헌관 매니저는 “인증을 받았다고 끝나는 것이 아니라 이후에도 오픈소스 정책과 프로세스가 제대로 돌아갈 수 있도록 노력하고 있다”며 “오픈 소스는 라이선스뿐만 아니라 보안 취약점에 대해서도 굉장히 신경을 써야 한다. 우리는 개발 운영 보안이 제대로 이루어질 수 있도록 오픈 소스뿐만 아니라 개발 문화를 데브옵스로 구축하기 위해 노력하고 있다”고 설명했다.
카카오뱅크는 오픈소스 컴플라이언스 체계를 구축하면서 거버넌스를 좀 더 강화해야 겠다는 목표를 두고 오픈소스 국제표준인증인 ‘ISO 5230’에 대한 준비를 지난해 하반기부터 추진했다.
오픈소스 인증 준비를 위해서는 ▲조직 ▲정책 ▲도구 ▲교육 ▲프로세스 영역에서 셋업이 필한데 카카오뱅크는 카카오와 함께 인증을 준비하며 인증에 대한 준비를 같이 검토하고 부족한 부분을 피드백하면서 채워갔다.
어려운 점도 있었다. 허 매니저는 “인증에서 요구사항 대부분은 준비 할 수 있었는데 조직 셋업은 쉽지 않았다. 오픈소스 거버넌스 구축을 위해서는 OSRB라는 오픈소스 관련 협의체를 구성해야 하는데 이 협의체에는 오픈소스 프로그램 매니저와 법무담당, 인프라담당, 보안담당, 개발문화담당, 개발팀의 역할이 필요하다”고 밝혔다.
그는 “오픈소스 프로그램 매니저는 오픈소스 프로그램에 대한 총괄 책임을 담당하고 법무팀은 법적 위험의 완화를 위한 자문을 제공한다. 인프라 담당은 시스템을 구축해야 하고 보안팀은 오픈소스 보안취약점과 관련된 업무를 담당하게 된다. 개발문화담당은 사내 개발자들이 오픈소스를 적극적으로 사용하고 기여하는 문화를 조성하고 올바른 오픈소스 활용을 위해 오픈소스 정책 및 프로세스를 준수하는 개발팀이 있어야 한다. 다행히 각 팀에서 오픈소스 거버넌스 체계 구축에 대한 필요성을 이해해 줘 협의하에 협의체를 구성, 현재까지 잘 운영이 되고 있다”고 전했다.
한편 카카오뱅크의 오픈소스 활용 핵심 컨셉은 ‘쉬프트 레프트(Shift-left)’ 모델에 기반하고 있다.
하헌관 매니저는 “‘Shift-left’는 테스팅 영역에서 먼저 언급되었던 용어로 전통적인 품질 모델은 배포 하기전 QA, 인수테스트 등 개발 라이프 사이클 뒤에서 수행되지만 Shift-left 모델은 품질에 대한 관심을 개발 라이프 사이클 앞에서부터 시작하자는 개념”이라고 소개했다.
오픈소스에 있어 이러한 모델이 중요한 이유에 대해 그는 “개발 라이프 사이클 뒤로 갈수록 어떤 이슈가 발생했을 때 이를 고치는 비용이 많이 들게 된다. 오픈소스도 마찬가지로 회사 정책상 GPL 기반의 오픈소스를 사용 못하는 회사가 릴리즈를 하고 나서 GPL 기반 오픈소스를 사용한 것을 알게 되었다면 다시 개발부터 테스트 릴리즈 과정을 거쳐야 한다. 하지만 자동화로 개발단계에서 해당 오픈소스를 식별할 수 있었다거나, 개발자가 이미 오픈소스 라이선스에 대한 교육이 잘 되어 있다면 미리 리스크를 파악해서 비용, 시간낭비를 없앨 수 있다”고 강조했다.
때문에 카카오뱅크도 ‘쉬프트 레프트 컴플라이언스 체크(shift left compliance check)’에 많은 노력을 기울이고 있다는 설명이다. 이를 위해 오픈 소스 분석 도구로 ‘FOSSID’를 사용해 사내 임직원이라면 누구나 접속할 수 있도록 오픈했다. 이를 통해 누구나 오픈소스 라이선스나 보안 취약점에 대해서 분석 할 수 있다.
또한 카카오뱅크의 사내 개발자들은 오픈 소스 사용에 대한 기본적인 라이선스 지식과 리스크에 대한 교육이 되어 있으며 개발자들은 오픈소스를 사용하기 전에 별도의 오픈소스 전용 게시판에서 오픈소스 매니저들에게 문의를 하게 되어 있다.
허 매니저는 “특정 팀에서 랩토니카라는 오픈 소스를 사용하려고 했는데 해당 오픈 소스의 라이센스는 보안 취약점에 이슈가 있었다. 그래서 해당 오픈 소스에 대해서 보안팀에 문의를 했고 특정 버전부터는 취약점 이슈가 발견되지 않아서 해당 버전으로 업그레이드해 사용하도록 가이드를 하는 등 도구와 프로세스의 도움으로 사전에 리스크를 식별할 수 있게 됐다”고 전했다.
카카오뱅크는 오픈 소스 리스크를 최소화하기 위해 FOSSID와 더불어 카카오에서 개발한 오픈소스 분석 도구인 올리브 사용도 병행하고 있다. 오픈소스 활용과 그에 따른 리스크를 줄이기 위해서는 툴의 사용보다 중요한 것이 '문화'라는 지적이다.
그는 “개인적으로 도구 사용과 자동화도 중요하지만 무엇보다 사내 구성원들에게 오픈소스에 대한 교육이 가장 중요하다. 도구로 자동화하더라도 커버할 수 있는 부분은 한계가 있기 때문에 개발자가 미리 오픈 소스 사용에 대한 지식과 리스크를 인식하고 있는 것이 가장 중요하다”고 강조했다.
이를 위해 카카오뱅크는 별도의 위키 페이지를 통해 오픈 소스 가이드 페이지도 오픈한 상태다. 이 페이지에서 카카오뱅크의 오픈소스 정책과 사용 기여 공개 가이드를 바로 확인할 수 있다.