brunch

You can make anything
by writing

C.S.Lewis

by 조영국 Aug 02. 2016

금융IT 인프라를 이루는 기술#2

365일 24시간 고객의 거래를 지키는 기술들

 핀테크를 설명하는 여러 책을 보면 전통적인 지점 중심 은행의 위기를 지적한다. 금융서비스를 이용하는 고객의 접점이 "무슨무슨"페이로 이동하고 있기 때문이다. 은행을 비롯한 금융서비스를 제공하는 회사에서 가장 가치 있는 것은 고객의 정보이다. 이 정보를 가질 수 있다는 것은 경쟁에서 그만큼 우위에 있다는 뜻이다. 예를 들면 당신이 그토록 원하던 맥북의 새 모델이 출시될 때 은행은 이를 놓치지 않고 당신에게 한정 기간 동안 맥북을 살 경우 할인을 해주는 쿠폰을 발송한다. 이 얼마나 매력적인 서비스인가? (카드 결제일 전까지는...)

 이런 서비스는 금융서비스를 제공하는 회사에서 당신의 소비 패턴과 같은 정보를 가지고 있어야 가능하다. 심지어 여러 핀테크 회사들은 고객의 동의를 얻어 SNS 데이터도 사업 모델에 이용하려고 한다. 이런 고객의 접점을 담당하는 인프라 기술이 Web 서버와 WAS(Web Application Server)이다.



 -  Web 서버와 WAS

 Web 서버는 무엇이고, WAS(Web Application Server)는 무엇인가요? 후배들에게 많이 듣는 질문이다. 이에 대한 설명으로 Server-client 모델부터 3-tier 구조 등을 장황하게 설명하면서 이제는 잊혀진 "CGI라는 것이 있었어"로 시작하는 1시간 일장 연설은 나만의 만족으로 끝난다는 것을 잘 알고 있다. 아래 1장의 그림을 보여주고 각 컴포넌트가 처리하는 Contents를 설명하는 것이 훨씬 도움이 된다.


 금융권의 서비스는 대부분 Business Logic과 Presentation 영역을 분리하여 운영한다. Business Logic 영역은 쉽게 말해 연산을 처리하는 부분이다. 당신의 계좌에 얼마가 있는지 확인하거나, 이체를 할 경우 당신의 계좌에서 이체한 금액만큼 잔액을 감소시키는 일을 한다. 단순하게 들리지만 금융서비스라는 측면에서 단순하지 않다. 학교 때 배운 ACID를 보장해야 하기 때문이다.

※ ACID - 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)

금융권에서는 이를 보장하기 위해 TP-Monitor 제품군(트랜잭션 관리 미들웨어)을 사용한다. 여기서 TP-Monitor를 설명하는 것은 자칫 장황해질 수 있으니 다음 포스트에 양보한다.


 Web / WAS는 Presentation 영역을 담당한다. 고객이 금융서비스를 요청할 때 처음으로 맞아주는 것이 Web 서버이다. 그럼 Web 서버와 WAS는 어떻게 다른 것일까? 여러 면에서 다른 점이 있을 수 있지만 가장 큰 부분이 서비스하는 Contents이다. Web 서버는 정적 Contents를, WAS는 동적 Contents를 서비스한다. 당신이 XX은행의 홈페이지에 접속하여 로그인을 했다. 그 홈페이지에는 은행의 로고, 각 종 은행 서비스를 설명하는 Image, 그 페이지를 이루는 html 파일, 글씨체와 크기 색 등을 정의한 CSS 파일 등 누가 봐도 다르지 않을 Contents가 정적 Contents이다. 반면에 당신의 계좌의 잔고 부분을 보자. 이처럼 변화무쌍하기도 힘들다. 급여가 들어왔을 때의 위풍당당한 모습은 "퍼가요" 몇 번에 의기소침해진다. 이런 잔액은 고정되어 있는 것이 아니라 로긴 할 때마다 "원장"이라 불리는 코어뱅킹의 DB에서 조회해온다. 이렇게 Business 영역에 조회를 통해 가져온 Data를 표시하는 부분이 동적 Contents이다.


Web 서버 - 정적 Contents 서비스 - html, 이미지, CSS 등
WAS         - 동적 Contents 서비스 - jsp, xml 등



 -  Web 서버, 어떤 것을 사용할까?

 

 일반적으로 Web 서버라 하면 Apache와 Nginx를 떠올릴 것이다. 하지만 대한민국 금융권에서 유독 점유율이 높은 Web 서버가 있다. tmax 사의 WebtoB이다. WebtoB는 tmax사의 WAS인 JEUS와 함께 공급된다. 일종의 궁합처럼 JEUS를 사용하면 WebtoB를 사용하는 식이다. WAS로 JEUS를 사용하면서 굳이 Web 서버로 Apache를 사용할 일은 없다고 보는 것이 맞을 것이다.

 Apache는 훌륭한 Web 서버이다. Nginx에 비해 무겁다는 평이 있지만 안정성 측면에서는 높은 점수를 주고 싶다. 실제로 내가 운영하는 서비스도 Apache로 별다른 장애 없이 안정적으로 운영하고 있다. 국내 금융권에서 가장 선호하는 Web 서버라 생각한다.

 Nginx 아직은 잘 모르겠다. 여러 훌륭한 벤치마크 결과를 보고 있지만 오랜 시간 검증한 현재의 Web서버를 바꿀 만큼의 장점은 모르겠다. 실제로 Apache를 잘 설정하면 Nginx만큼의 성능이 나온다는 자료도 많다. 새로운 Web 서비스라면 적용해보고 싶다.


금융권에서 많이 사용하는 Web 서버 - Apache, WebtoB



 -  Was, 어떤 것을 사용할까?

 Was는 Java EE의 Spec에 따라 구현한 솔루션이다. Java EE(Enterprise Edition)이란 Java의 서버 측 개발 플랫폼이다. 여기에는 Servlet 엔진, JSP, EJB, RMI, JTA, JDBC, JMS, JMX, JNDI 등 다양하고 유용한 서버 측 기술 등이 정의되어 있다. 이 Spec은 실제 구현체가 아니라 "Java EE 6 Spec을 만족하려면 마땅히 이 기능이 구현되어 있어야 해"라는 요건이 정의되어 있다. 이 요건을 만족하도록 구현한 솔루션이 WAS이다.

 현재는 조금씩 무너지고 있지만 금융권은 상용 제품을 선호한다. 안정성과 유지보수 측면에서 상용 제품이 우수하다는 판단 때문이다. 저렴한 도입 비용으로 채택된 솔루션이 장애를 유발한다면 절약한 도입비용보다 몇 배의 손실을 가져올지 모른다. 덤으로 고객의 무너진 신뢰는 몇 배의 노력을 해야 회복할 수 있다. 상용 제품이 모두 안정적이고 우수한 것은 아니지만 유지보수까지 고려한다면 금융권에서는 좋은 선택이다.  상용 WAS 제품은 크게 3가지가 있다. Oracle의 WebLogic, Tmax의 JEUS, IBM의 WebSphere이다. 모두 Java EE Spec을 만족하도록 구현한 솔루션이어서 기능은 비슷하다. JEUS의 경우 7버전에 와서는 WebLogic과 너무도 비슷해져 당황스러울 정도였다. 금융권에서는 WebLogic과 JEUS를 많이 사용하는 것으로 보인다.


금융권에서 많이 사용하는 WAS - WebLogic, JEUS



 이번 포스트에서는 금융서비스에서 고객의 접점을 담당하는 Web/WAS를 정리했다. 항상 포스트를 계획할 때 거창한 마음은 없어지고, 부족한 내용에 의기소침해지지만 꾸준히 글을 올리는 것이 중요하다 생각한다.


덧1 : "나는 프로그래머다"의 정개발님의 링크 공유 한 번으로 조회수가 수직 상승했습니다. ^^

         정개발님께 감사드립니다.

덧2 : 핀테크를 다룬 좋은 책 추천#1  "핀테크 전쟁 | 브렛 킹 저"

        핀테크를 다룬 좋은 책 추천#2  "핀테크 : IT와 금융이 만나는 새로운 세상  | 강창호, 이정훈 공저"      

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari