brunch

반드시 원칙만 고수할 필요는 없다.

by 고요지안

요란스러운 휴대폰의 진동이 책상을 흔들기 시작했다.

무슨 소리지. 그리고 여긴 어디지. 순간 나는 일찍 귀가해 잠을 자고 있었음을 깨달았다.

시계를 보니 00시 15분이었다.


이 시간에 걸려온 전화는 회사 시스템에 장애가 발생했다는 것을 의미한다.

오늘은 또 무슨 문제가 발생한 것일까.

이미 휴대폰에는 오류를 알리는 문자가 수십 개나 와 있었다.

순간 식은땀이 나기 시작했지만 애써 침착한 척 차분한 목소리로 전화를 받았다.

예상대로 장애가 발생했고 담당자는 상황을 알리기 위해 다급하게 연락을 했던 것이다.

이미 그의 목소리에는 답답한 상황에 대한 푸념 어린 자조가 배어 있었다.


하지만 지금은 원인 분석과 조치를 신속히 해야 하는 순간이다.

이 시간의 문제는 분명히 '일자 전환' 과정에서 발생했을 것이다.

'일자 전환'은 매일 자정 무렵 수행되는 핵심 배치(Batch, 일괄 작업) 프로세스 중 하나다.

하루 동안 처리된 모든 거래를 마감하고 시스템의 영업일(기준일)을 다음 일자로 변경하는 작업인데,

이 때문에 통상적으로 23시 50분 ~ 익일 00시 10분 전후에는 금융거래가 불가하다.

이는 원장의 정합성을 확보하기 위해 거래를 통제하기 때문이다.


문제는 이 배치(Batch) 절차가 영업일만 변경하는 단순한 작업은 아니라는 거다.

원장을 마감하고, 일별 데이터를 복제하고, 익일 사용될 각종 코드도 초기화한다.

이런 일련의 절차를 모두 수행한 후 거래를 재개하는 것이다.

만약 이 과정에서 문제가 발생하게 되면 익일의 모든 거래는 중지가 되는 것이다.




"일자 전환에 문제가 있는 거 같습니다.

BCV(Business Continuation Volume, 시점 데이터를 미러링 형태로 복제한 백업 데이터) 작업 과정에서 DB 마운트(기동이 되어 연결이 된 상태)에 문제가 있는 거 같습니다."


그의 목소리에는 원인은 알겠지만 우리가 해결할 수는 없음을 강조하는 듯했다.

그랬다. 이 부분은 시스템 영역이긴 했다.(내부통제에 따라 담당자에게만 접근과 처리 권한이 부여된다)


"시스템팀에서 상황을 인지하고 지금 조치 중에 있습니다.

기다리면 해결이 될 거 같습니다."


모두들 각자 맡은 바 업무를 위해 분주하게 움직이고 있었다.

하지만 생각해 보면 지난번에도 비슷한 문제가 있지 않았던가.

우리는 해당 사안이 관리 범위 밖이라는 점과 향후에는 문제없을 것이라는 그들의 의견에 중요도를 낮춰 보았던 것이다. 왜 지난번에 이 부분을 섬세히 점검하고 조치하지 않았을까 후회가 되었다.


"현재 일자 전환 프로세스 단계에서 업무와 관련된 부분은 모두 마무리된 거죠?

DB 마운트가 업무 개시에 영향도는 없어 보입니다.

강제로 업무 개시를 하시죠."


그랬다. BCV는 결국 그날의 백업본으로 재해복구나 마감 데이터를 위해 존재하는 것이 아닌가.

지금 업무를 개시하더라도 영향도는 없다고 판단되었다. 당장은 온라인 서비스가 우선이기 때문이다.

잠시 후 거래 데이터가 쌓이기 시작했고, 정상적인 서비스를 확인할 수 있었다.


발생할 수 있는 모든 일들을 예측해서 막을 수는 없는 만큼, 우리 팀은 일자 전환 프로세스에서 BCV DB 마운트 확인 절차를 과감히 제외했다. 향후에 같은 문제가 발생해도 오늘과 같은 문제가 없도록 회피하는 관리체계를 마련했던 것이다.


문제 해결에 있어 원칙적인 방식으로 대응하는 태도는 매우 중요하다.

그러나 우리는 종종 현실적 제약이나 긴급한 상황에서 우회적인 방식을 택해야 하는 현실을 접하기도 한다.

상황에 따라서 이런 선택이 이슈를 빠르게 해결하고 더 큰 잠재적인 문제를 막는다는 사실은 부정할 수 없다.

그래서 때로는 단순한 원칙 적용을 넘어, 결과도 함께 따져보는 합리적인 대안 선택이 필요한 것이 아닐까 생각해 보았다.




keyword