은행 IT 시스템 구축은 단순한 개발 프로젝트가 아닙니다. 3년간 현장에서 부딪히며 얻은 경험을 바탕으로, 실제 업무에 바로 적용할 수 있는 핵심 포인트를 정리했습니다.
계정계와 정보계, 왜 이렇게까지 보수적으로 운영될까
은행 IT 시스템에서 가장 먼저 이해해야 할 것은 계정계와 정보계의 역할 차이입니다. 계정계는 고객의 실시간 거래 데이터를 처리하는 핵심 시스템입니다. 우리나라 은행 시스템의 기본 데이터는 1억 건이 가뿐히 넘고, 통장별 거래기록까지 포함하면 수백억 건에 달합니다. 이 데이터는 곧 돈과 거래 기록이기 때문에 시스템 장애가 발생하면 바로 금전적 피해로 이어집니다.
때문에 계정계는 데이터를 2중, 3중으로 백업하며 매우 보수적으로 운영됩니다. 반면 정보계는 계정계에서 발생한 거래 데이터를 기반으로 분석하고 보고서를 생성하는 시스템입니다. 데이터 웨어하우스(DW)나 비즈니스 인텔리전스(BI) 도구와 연동되어 대규모 데이터를 처리하며, 최근에는 빅데이터 기술도 많이 활용되고 있습니다.
신계약부터 운영계까지, 시스템 간 연결이 핵심이다
은행 IT 시스템은 크게 신계약, 계정계, 정보계로 나뉘며, 여기에 채널계, 대외계, 운영계, 기간계가 추가됩니다. 각 시스템의 역할을 간단히 정리하면 다음과 같습니다.
- 신계약 시스템: 고객이 예금, 대출, 보험 등 새로운 금융 상품을 신청하고 계약을 체결하는 과정을 관리
- 계정계: 모든 금융 거래가 기록되고 관리되는 중심 시스템, 실시간 처리와 높은 안정성·보안성 요구
- 정보계: 거래 데이터를 분석해 의사결정을 지원, 배치 처리 중심으로 운영
- 채널계: 인터넷 뱅킹, 모바일 뱅킹, ATM 등 고객 접점을 관리
- 대외계: 다른 은행 송금, 공공기관 연동 등 외부 기관과의 업무 처리
- 운영계: IT 인프라 전반을 관제하고 유지보수
- 기간계: 기존에 사용하던 레거시 시스템, 최신 기술로 전환 전까지 유지
이 시스템들은 독립적이면서도 서로 긴밀하게 연동됩니다. 예를 들어 신계약 시스템에서 계약이 체결되면 계정계와 연동되어 실제 거래가 발생할 수 있도록 지원하고, 이후 정보계와 연동되어 데이터를 분석하거나 통계 자료로 활용할 수 있습니다.
차세대 프로젝트, 왜 '헬 프로젝트'라고 불릴까
2000년대 들어 기존 시스템을 전반적으로 고도화할 필요가 생겼는데, 변경 범위가 너무 커서 차세대 프로젝트라고 부르기 시작했습니다. 문제는 IT 환경이 너무 빨리 변해서 프로젝트가 끝날 때쯤이면 다시 고도화의 필요성이 생긴다는 점입니다.
많은 차세대 프로젝트들이 실패했으며, 이 과정에서 개발자들에게 '헬 프로젝트'로 일컬어지기도 했습니다. 이유는 단순합니다. 사소한 변경이 큰 금전적 피해로 이어질 수 있기 때문에 영향도를 체크한 후에 움직이는 편이며, 가능하면 시스템 수정 자체를 기피하는 경향이 있습니다. 거래 쪽은 빠른 개발이나 배포보다는 안정적인 개발과 배포를 중요하게 생각합니다.
기술보다 비즈니스 이해가 먼저다
은행 IT 프로젝트에서 가장 중요한 역량은 기술이 아니라 은행 업무에 대한 이해입니다. 은행업무를 모르면 비즈니스 로직을 짤 수 없기 때문에, 경력자 채용 시 기술보다 업무 이해도가 중요한 기준이 됩니다.
- 계정계는 대부분 마스터테이블인 거대한 원장들이 있고, 다양한 업무를 처리하는 정형화된 트랜잭션이 존재
- 정보계는 데이터웨어하우스를 기반으로 수익관리, 고객관계관리, 성과관리, 위험관리 시스템 등으로 구성
- 대외계는 거래내역 기록 및 검증, 프로토콜 변환, 오류시 재전송 기능까지 매우 복잡한 구조
소수점 한 자리의 올림, 반올림에도 무척 예민하며 많은 고객의 거래(트랜잭션)들을 성공적으로 처리해야 한다는 보장(안정성)이 있어야 하기 때문에 보수적일 수밖에 없습니다.
Java Spring이 표준이 된 이유
은행 시스템에도 스크립트 언어가 사용되는 곳이 있습니다. 다만, 구현할 비즈니스 특성에 따라 언어가 달라집니다. 처음엔 C/C++을 사용했습니다. OS에서 직접 컴파일되는 시스템 언어로 CPU 성능을 100%까지 끌어낼 수 있기 때문입니다. 하지만 C는 OS가 달라지면 재컴파일해야 하고, 서로 다른 기종끼리 묶어 하나로 운영하기도 어렵습니다.
서버가 100대가 넘어가면 관리 상태나 노후 상태가 모두 다르고, 무거운 배치 처리와 가벼운 조회 트랜잭션이 섞일 수밖에 없습니다. 이런 엔터프라이즈 환경에서는 하드웨어 특성에 관계없이 서버가 운영될 필요가 생기는데, 이때 정답이 Java Spring입니다. 다만 하드웨어를 풀파워로 사용해야 하는 경우에는 여전히 C 언어를 사용하기도 합니다.
### Q. 은행 IT 프로젝트에서 가장 중요한 것은 무엇인가요?
은행 IT는 기본이 안정성입니다. 레거시(기존 시스템)를 걷어내기란 쉽지 않고 24시간 365일 무중단 운용성은 기본입니다. 신기술을 추구하며 도전적이고 창의적인 사람들에게는 따분하게 느껴질 수 있지만, 그만큼 안정성과 정확성이 생명인 분야입니다.
### Q. 증권사 IT와 은행 IT는 어떻게 다른가요?
증권사는 실시간으로 주문이 거래되기 때문에 실수가 없는 꼼꼼한 성향이 필요합니다. 어떤 증권사는 실수로 주문을 잘못해 손해를 보고 파산한 전례도 있습니다. 은행도 마찬가지로 거래 쪽 IT 직무는 빠른 개발이나 배포보다 안정적인 개발과 배포를 중요하게 생각합니다.
### Q. 금융권 IT에서 사용되는 주요 기술 스택은 무엇인가요?
프로그래밍 언어는 C, Java 등을 주로 사용하고 DB는 오라클(대형), MySQL, Sybase 등을 사용합니다. 증권사는 매우 보수적이고 안정적이어야 하며 사람들이 많이 사용된 검증된 시스템을 사용하는 편입니다. 서버 작업에는 Oracle과 Pro*C가 많이 사용 중이며, 계정계를 제외하고는 Java를 많이 도입하고 있습니다.