올들어 IT 업계뿐 아니라 금융권 전체를 뒤흔들고 있는 이슈는 인터넷전문은행의 공식 출범이다. 올해 초 케이뱅크, 중반기 카카오뱅크의 공식 런칭은 금융권 전체를 뒤흔들고 있다.
특히 카카오뱅크 출범 이후 급속도로 늘어나는 가입자 수와 그에 따른 다양한 이슈는 다른 금융권의 서비스 정책을 뒤흔들고 있다. 캐시카드의 캐시백 서비스를 더 늘린다던지 뭐 그런 다양한 서비스의 변화를 이끌고 있는 것이었다. 카카오뱅크보다 먼저 출범한 케이뱅크도 카카오뱅크만큼의 파괴력은 아니지만 그래도 조용하게 나름 영향력을 키우고 있는 중이라 생각이 든다. 나도 카카오뱅크를 이용하고 있는데 아직까지는 사용성 면에 있어서 무척이나 만족스럽게 사용하고 있는 중이다.
기존 금융권 시스템의 코어는 지금까지는 유닉스!
카카오뱅크의 출범이 금융권의 서비스의 변화만 이끌고 있는 것은 아니다. IT 산업, 특히 금융권에 적용되는 IT 서비스들이나 솔루션들, 시스템들의 변화도 이끌어낼 것이라고 많은 사람들이 얘기를 한다.
좀 지난 뉴스이기는 하지만 카카오뱅크의 메인 시스템이 유닉스(UNIX) 서버가 아닌 리눅스(LINUX) 서버를 쓰고 있다는 뉴스가 나왔다. 이 뉴스에 대해서 많은 사람들이 관심을 보였는데, 그동안의 금융권 서비스에 들어가는 시스템 중 코어 시스템은 거의 대부분 유닉스를 탑재한 유닉스 서버였기 때문이다. HP나 IBM, 오라클(Oracle) 등 유닉스 서버 밴더들이 생산하는 고가의 장비와 운영체제(OS)를 주로 사용했다.
이유는 바로 안정성 때문이다. 유닉스는 AIX나 HP-UX나 솔라리스(Solaris)나 역사가 오래되었고 그만큼 안정화가 많이 진행되었다. 금융권 서비스는 무엇보다도 안정성이 가장 중요하기 때문에 안정성이 많이 확보된 유닉스를 사용해왔고, 그것이 진리인 것으로 생각했던 것이다.
물론 몇몇 금융권에서는 리눅스나 윈도 서버(Windows Server)를 사용하기도 했는데 이른바 제 1 금융권에 속한, 아니 적어도 제 2 금융권 중에서도 규모가 큰 은행이나 카드사들은 대부분 유닉스를 사용했다. 리눅스나 윈도 서버도 사용하기는 했지만 핵심 시스템이 아닌 부가 서비스 시스템 등에서, 이른바 중요도가 상대적으로 떨어지는 시스템에 적용해서 사용하고 있었던 것이다. 금융권의 경영자 입장에서 서버 문제가 생기면 서비스에 문제가 생기고, 그러면 그것이 다 금액의 손해로 돌아오기 때문에 무조건 안정적인 시스템 운영이 우선시되었다. 그것이 지속적으로 유닉스를 선택하게 만드는 이유가 되었던 것이다.
그리고 OS를 동작시키는 서버 하드웨어 역시도 그랬다. 유닉스는 동작시키는 서버가 제한되어 있으며 고가이지만, 어쩔 수 없이 써야만 했기 때문에 고가의 OS와 함께 고가의 장비를 함께 운영할 수 밖에 없었다. 이는 금융권의 서비스 개선 등으로 인한 차세대 시스템 구축에 있어 소프트웨어 개발비보다 OS 및 데이터베이스(DB), 하드웨어 구입비가 더 많이 들어가는 현상을 가져왔다. 실제로 서비스를 운영하는 것은 다양한 어플리케이션들이지만 그것에 대한 개발비보다는 DB나 하드웨어 자체의 비용, 그리고 그 하드웨어를 운영하기 위한 OS 비용이 상대적으로 더 비쌌던 것이다. 그런데 이런 구조를 카카오뱅크가 깨버렸다.
기존 금융권 시스템의 구조를 깨버린 카카오뱅크의 리눅스 채택
카카오뱅크의 메인 시스템이 유닉스가 아닌 리눅스를 채택해서 만들어졌다는 얘기는 OS 및 그 OS를 운영하기 위한 하드웨어의 가격이 유닉스 시스템의 그것보다는 상대적으로 저렴하다는 얘기가 된다. OS 자체의 비용은 없을 테고(RHEL을 쓴다면 유료겠지만 그래도 유닉스보다는 쌀 테니) 하드웨어 역시 유닉스 전용 하드웨어보다는 상대적으로 저렴할 테니 말이다(물론 IBM이나 HP, 델 등의 유닉스 하드웨어 밴더들도 리눅스를 운영하기 위한 서버를 생산해서 판매한다. 그런데 AIX, HP-UX 등의 유닉스용 하드웨어보다 상대적으로 저렴하다).
여차하면 엔지니어가 직접 부품을 가져다가 조립해서 서버를 만들 수도 있다(실제로 구글의 경우 밴더에서 제공하는 서버를 쓰는 것이 아닌 자체적으로 조립해서 사용한다. 그래서 하드웨어 수급 비용을 낮추는 경우도 있다).
오랜 역사로 안정성이 우수한 유닉스, 하지만 리눅스도 이제는…
안정성 얘기가 나올 수 있다. 전통적으로 오랜 역사를 지닌 유닉스는 안정성에 있어서 이미 검증이 된 OS다. 그래서 사용한다.
하지만 리눅스 역시 1991년도에 나온 이후에 지금까지 무려 20년 이상 지내오면서 많은 발전이 있었다. 성능 면에서는 두말할 것도 없고 안정성도 유닉스의 그것에 못잖게 많이 올라온 것이 사실이다.
유닉스의 시스템 구조를 보통 닫힌 구조라고 이야기하고 리눅스의 시스템 구조를 열린 구조라고 이야기한다. 아마도 UNIX 시스템은 커널 소스가 공개되지 않았기 때문에(물론 솔라리스는 오픈 솔라리스라고 해서 오픈소스로 바꾸기는 했다. 하지만 HP-UX, AIX는 여전히 비공개되어있다) 내부의 정확한 구조를 벤더사 외에는 잘 파악하고 있지 못하지만, 리눅스 시스템은 오픈소스(Open Source)이기 때문에 커널(Kernel)이 공개되어 있다.
실제로 커널이 업데이트될 때마다 수많은 개발자들이 소스를 커스터마이징하고 그것을 리눅스 재단 등에 보낸다. 그러면 거기서 다양하게 테스트를 하고 검증한 후에 리눅스 커널에 반영을 하고 발표한다. 물론 소스가 공개되기 때문에 소스를 보고 구조를 파악하여 취약점을 발견, 공격할 수도 있다. 요즘은 윈도의 취약점 만큼이나 리눅스 취약점도 많이 발견되고 있는 상황이기도 하고 말이다. 하지만 그것에 대한 패치가 빨리 이뤄지고 있기 때문에 안정성 확보가 크게 문제가 되지 않는다고 얘기하는 것이다.
그리고 OS에 대한 지원은 유닉스의 경우 밴더사가 책임을 지고 지원하는 반면 리눅스의 경우에는 어떤 특정 밴더사가 책임을 지고 지원하는 구조는 아니다. 물론 레드헷의 RHEL의 경우에는 레드헷이 지원하지만 CentOS와 같인 오픈소스 리눅스의 경우에는 그런 밴더사의 지원을 받지는 못한다.
하지만 수많은 개발자들이 가입되어 활동하고 있는 오픈소스 커뮤니티 등에서 나름대로의 지원을 받을 수 있으며(물론 시스템을 잘 아는 엔지니어가 필요하고 그 엔지니어가 커뮤니티에 들어가서 질문을 하고 답변을 받아 적용하는 방식이 되겠지만) 생각보다 어렵지 않게 문제를 해결할 수 있는 환경이 구축되었다. 즉, 수고로움은 더할 수밖에 없지만 그래도 과거처럼 유닉스에 비해 리눅스의 안정성이 떨어진다고는 말할 수 있는 상황이 더이상은 아니라는 얘기다.
기존 금융권 시스템의 핵심 DB였던 오라클, 하지만 이제는 오픈소스 DB가 그 자리를…
유닉스를 많이 사용하게 된 이유 중 하나는 바로 앞서 잠깐 언급했던 DB 때문이 크다. 금융권 시스템의 핵심은 DB에 넣은 데이터를 얼마나 안정적으로 운영하는가에 달려 있는데, 그동안 금융권에서 많이 사용한, 또 지금도 사용하고 있는 오라클 DB가 유닉스 시스템에서는 무척이나 안정적으로 돌아가기 때문에 유닉스 시스템을 지속적으로 쓰고 있는 이유가 되기도 했다.
물론 오라클 DB는 리눅스용으로 나오기도 했다. 하지만 먼저 유닉스에 맞춰서 만들어졌기 때문에(맞춰서 만들어졌다기보다는 리눅스보다 유닉스가 먼저 나왔기 때문에 OS에 맞춰서 DB가 발전했다. 그래서 그런 모양새가 갖춰지게 되었다) 리눅스보다는 상대적으로 안정적으로 돌아가는 것은 사실이다.
하지만 리눅스용 오라클 DB 역시 지금은 유닉스용만큼이나 성능 및 안정성이 많이 올라온 상태다. 지금은 같은 오라클 DB를 사용하지만, OS를 유닉스 아닌 리눅스를 쓰는 경우도 종종 생기곤 한다. 카카오뱅크 역시 리눅스 위에 오라클 DB를 올려서 일부를 사용하는 것으로 알려지고 있다.
하지만 리눅스 서버에서 그동안 전통적으로 많이 사용해왔던 DB는 오라클 DB가 아닌 MySQL이라는 DB다. 오픈소스 DB로 지금은 오라클이 인수했지만 그래도 지금까지는 오픈소스로 제공되는 DB이기도 하다.
LAMP라는 단어가 있는데 리눅스(Linux)의 L, 아파치(Apache, 오픈소스 웹서버)의 A, MySQL DB의 M, 그리고 PHP(웹 프로그래밍 언어)의 P의 약자다. 모두 오픈소스로 된 솔루션을 합쳐서 서비스를 만드는 환경을 의미한다. 이 환경은 일반적으로 웹서비스를 만들기 위해 유료 솔루션을 이용하는 것이 아닌, 그 대안을 오픈소스에서 찾음으로써 상대적으로 유지비용을 낮추고 생산성을 높이는 작업을 의미하는 단어라고 보면 된다.
카카오뱅크는 웹 프로그래밍 언어를 PHP 외에도 다양한 언어를 써서 만들었다고 하더라도 LAMP처럼 OS와 DB, 그리고 웹 서버를 오픈소스를 이용해서 작업함으로 유료의 비싼 솔루션으로 인해 유지비용이 많이 들어가는 것을 상대적으로 줄이는 효과를 가져왔다. 참고로 카카오뱅크에서 사용한 웹서버는 아파치가 아닌 또 다른 오픈소스 웹 서버인 NginX라고 한다(요즘은 아파치보다는 NginX를 더 많이 사용하는 듯싶다. 울 회사에서는 웹 서버보다는 프락시 서버로 더 많이 사용하지만 말이지).
어찌 되었던 오라클 DB도 사용하지만 MySQL이라는 오픈소스 DB를 이용함으로 오라클 DB를 전량으로 다 사용할 때의 유지비용보다 상대적으로 저렴하고 운영할 수 있게 구축되어 있다고 한다.
물론 MySQL이 오라클 DB보다 성능적인 면이나 안정성 등에서 더 우수하다고 할 수는 없다(게다가 MySQL이 오라클에 인수된 이후에는 더더욱 성능적인 부분에 의문을 던지는 전문가들이 많다). 그래서 카카오뱅크가 모든 DB를 다 MySQL을 사용하지 않고 일부에서는 오라클 DB를 사용하는 것이 아닌가 싶다. 중요한 데이터를 관리할 때에는 오라클 DB를 이용하고 그 외의 데이터들은 MySQL을 이용하는 방법으로 나름대로의 데이터 중요성에 따른 DB 운영의 효율성을 따진 것이 아닐까 하는 생각도 든다.
물론 오라클 DB와 MySQL 외에도 이른바 빅데이터 시스템이라 불리는 하둡(Hadoop)도 들어갔고 빅데이터 DB인 HBase(하둡의 기본 빅데이터 DB)도 도입되어 적용되었다고 한다. 데이터의 종류, 성격, 중요도 등을 고려해서 다양한 DB를 도입함으로 도입비용 및 유지보수 비용에 대한 부담을 상대적으로 줄였다는 데 그 의미가 있다고 보여진다.
이제는 금융권 시스템 카르텔에 전면으로 도전하기 시작한 오픈소스 솔루션들
어찌 되었던 일반적으로 금융권 서비스에서는 오픈소스 솔루션이 거의 채택이 되지 않는 것이 일반적인데 카카오뱅크는 금융권, 그것도 제1 금융권에 속하면서도 오픈소스를 적극적으로 채택하여 사용함으로 기존 금융권 시스템의 보이지 않는 기득권, 카르텔을 깨버렸다는데 그 의미가 큰 것이 아닌가 생각이 든다.
카카오뱅크가 안정적으로 서비스 운영이 되면서 제대로 자리를 잡게 된다면 금융권에 있는 경영진들은 자신들의 시스템 고도화(차세대 시스템으로 만드는 작업)를 진행할 때 지금처럼 유닉스 시스템과 오라클 DB만을 고집할 필요가 없다는 것을 알게 될 것이다. 즉, 그동안 견고하게 구축한 그들만의 세계가 무너질 수 있다는 점이다. 유닉스와 오라클 DB가 그동안 금융권의 IT 세계에 구축한 견고한 영역은 너무 견고해서 무너지지 않을 것처럼 보였다.
하지만 카카오뱅크, 그리고 아마도 케이뱅크 역시도 비슷한 구조로 시스템을 구축하고 서비스를 만들어 운영할 텐데, 이런 인터넷전문은행들이 이런 시스템 구조로 서비스하고 자리를 잡는다면 그 견고한 영역은 한순간에 무너지게 될 것이다. 실제로 1980년대 국내외적으로 대형 서비스의 시스템으로 굳건히 자리를 잡았던 IBM의 메인 프레임이 유닉스 시스템에 그 자리를 어떻게 넘겨주었는지를 생각해 보면, 유닉스가 리눅스로 그 자리를 넘겨주는 과정도 어렵지 않을 것이라 생각이 든다. 역사는 돌고 도는 것이니까 말이다.
비싼 시스템이 아닌 저렴한 x86 시스템이 이제는 메인으로 들어가는데
앞서 언급했지만 유닉스 시스템은 보통 전문 밴더에서 만든 서버를 많이 사용한다. 유닉스는 우리가 흔히 많이 사용하는 x86 CPU를 사용하지 않고 별도의 CPU를 이용한다. 그러다 보니 메인보드부터 시작하여 메모리, 스토리지 등도 유닉스 시스템에 맞는 별도의 모듈을 사용할 수밖에 없고 그래서 가격이 높을 수밖에 없었다.
하지만 리눅스 시스템은 기본적으로 x86 CPU를 이용한다. 우리가 사용하는 일반 PC에서 사용하는 CPU를 그대로 사용한다는 얘기다. 여차하면 우리가 집에서 사용하는 데스크탑이 바로 리눅스 서버로 사용될 수도 있다는 얘기다(물론 이런 금융권에서 사용하는 시스템은 조금 더 좋아야 하겠지만서도). x86 시스템의 강점은 유닉스 전문 시스템보다 상대적으로 저렴하며 특정 밴더에 구애받지 않고 만들 수 있고 수급이 가능하다는 점이다.
유닉스 전문 밴더인 HP나 IBM, 후지쯔, 델 등도 x86 시스템을 함께 내놓고 있으며 가격은 상대적으로 저렴하다. 즉, 앞서 언급했던 것처럼 비용의 절감 측면에서도 훨씬 도움이 된다는 얘기다.
그리고 엔지니어 역시 유닉스 전문 시스템의 엔지니어보다 x86 시스템 엔지니어들이 더 많다(x86 시스템의 시스템 유지보수가 상대적으로 더 쉽다는 의미도 된다). 유닉스의 엔지니어링보다 리눅스의 엔지니어링이 상대적으로 더 쉽다는 것도 한몫하기도 하고 말이다. 실제로 유닉스 기반에서 어플리케이션을 만드는 것보다 리눅스 기반에서 어플리케이션을 만드는 것이 상대적으로 쉽고, 또 생산성이 우수하다. 물론 아직까지는 유닉스 기반의 어플리케이션의 안정성이 조금 더 높다는 평가도 있지만 말이다.
어찌 되었던 저렴하면서도 더 빨리 지원을 할 수 있다는 것이 리눅스와 x86 시스템의 특징이고 그것이 또 서비스의 경쟁력이 될 수도 있겠다는 생각이 들었다.
카카오뱅크의 리눅스 도입이 가져오게 될 금융권 IT 환경의 긍정적 변화는?
이것저것 두서없이 얘기했다. 일단 기존 은행 서비스나 카드사 서비스 등 일반 금융권에서 사용하는 서비스는 외부든 내부든 모두 유닉스 시스템에서 오라클 DB를 이용하여 만들었다. 이미 그것을 기반으로 구축되었기 때문에 시스템의 영속성을 지니기 위해 계속 채택해서 사용했던 것도 있었겠지만 안정성 등을 고려해서도 그것이 맞다고 생각되었기에 지금까지 금융권의 경영진들은 유닉스와 오라클 DB를 고수하고 있었으며, 그 생각의 견고함은 철옹성과 같다고 봤다.
그런데 케이뱅크나 카카오뱅크와 같은 이번에 서비스를 시작한 인터넷전문은행은 이런 기존 금융권의 시스템 구조와 달리 리눅스와 MySQL 등의 오픈소스를 적극 활용함으로 구축 및 유지보수의 비용을 절감하면서도 빠른 구축을 진행했다. 그리고 이 서비스들이 안정적으로 계속 유지된다면 유닉스와 오라클 DB가 아니더라도 오픈소스로 구축을 해도 충분히 안정성을 확보할 수 있을 것이라는 생각을 기존 금융권 경영진들이 갖게 될 것이며, 그것은 그 철옹성과 같은 선입견을 깨고 그들의 시스템을 변화시킬 수 있는 계기가 마련되지 않겠는가 하는 생각을 하게 되는 것이다.
금융권 시스템의 IT 환경의 지각변동이 시작될 수 있다는 생각이 든다. 이런 의미에서 카카오뱅크의 리눅스 시스템의 메인 시스템 도입은 매우 큰 의미를 지니고 있는 것이다.
원문: 학주니닷컴