본문 바로가기

프로젝트

개발 장애 대응에 대한 절차

개요

사이드 프로젝트 인생퍼즐 개발을 진행하면서, 이번에 몇몇 버그를 마주하게 되었다. 이번에 발생한 버그들은 배포된 앱이 정상적으로 동작하지 않도록 만든 케이스였다. 

프리티어 만료로 인하여 AWS에 구성해둔 서버를 옮기게 되었는데, 이 때도 서버 이전 도중 문제가 발생하여 배포된 앱이 API를 호출하는 데에 문제가 발생해 앱 동작이 멈추었다.

이런 과정을 겪고나니, 장애가 발생했을 때 어떻게 대응하는 것이지 알아보고 사이드 프로젝트에 적용할 수 있는 것은 해보기로 했다.

 

장애란?

장애는 일시적으로나 영구적으로 시스템, 서비스, 또는 기능이 제대로 작동하지 않는 상황으로 기술적인 결함으로 하드웨어 또는 소프트웨어의 오류, 인프라, 네트워크, 보안 문제 등 다양한 요인에 의해 발생한다.

 

장애 대응 절차가 필요한 이유

장애를 잘 대처할수록 서비스를 이용하는 고객의 만족도 및 신뢰성을 얻을 수 있습니다. 이것은 조직의 손실 방지로 이어지게 됩니다.  

 

장애 대응 절차

장애 대응은 5가지 절차로 이루어진다.

 

장애 탐지

고객의 CS문의를 통해 서비스에서 발생하는 장애를 확인할 수 있다. 하지만 이 경우 고객에게 서비스 사용하는 데에 불편함을 줄 수 있기 때문에 운영하는 쪽에서 미리 파악을 할 수 있으면 좋다. 모니터링 시스템을 구축하고 이를 통해 장애를 빠르게 탐지할 수 있다.

 

장애 전파

서비스 장애와 관련되어 있는 팀에게 빠른 전파를 해야 한다. 정보의 전달이 빠르게 이루어져야 CS팀은 고객에게 적절한 대응을 할 수 있으며, 개발팀은 서비스의 복구가 가능해진다. 

장애 전파는 한 번으로 끝나는 것이 아닌, 장애가 해결이 될 때까지 주기적으로 정보를 공유해줘야 한다. 정보 공유를 통해 각 팀에서도 적절한 대응을 계속해 나갈 수 있기 때문이다.

 

장애 해결

개발팀은 원인 파악보다 빠른 복구를 우선시 해야하기 때문에 롤백, 서버 재기동, 장애 메뉴얼을 통한 수정 등 방법을 사용하여 서비스 장애를 해결해야 한다. 그리고 이를 혼자 해결하려고 하면 안됩니다. 이는 장애 해결을 더디게 할 수 있는 요소입니다. 함께 일하는 동료에게 공유를 한다면 다양한 인사이트를 통해서 빠른 장애 해결을 할 수 있습니다.

 

장애 보고

장애를 해결한 다음에는 이후에 발생할 수 있는 장애 예방 및 해결에 도움을 주기 위해 보고서를 작성해야 합니다. 보고서(지식)가 쌓이면 더 빠른 장애 해결을 할 수 있으며, 고객에게 서비스의 만족도를 앉겨줄 수 있습니다.

장애 보고서는 장애 등급, 장애 현상, 장애 영향 범위, 장애 원인, 장애 처리 타임라인별 행동, 장애 해결 방안 등 항목이 포함이 되어야 합니다. 정해진 규격은 없으며, 조직 내에서 협의를 하여 필요한 항목들을 정하면 됩니다.

 

장애 회고

장애 해결에서 빠른 복구를 우선시 했기 때문에 아직 정확한 원인 파악 및 개선이 이루어지지 않았습니다. 그래서 팀 내, 개발자 전체 회고를 통해서 장애 원인을 파악하고 발생하지 않도록 예방하는 방법에 대해 논의하고 결정합니다. 그리고 장애 대응하는 과정에서 부족함이 있었다면 개선 사항에 대해서도 이야기하고 발전시켜나가야 합니다.