무슨 일이 있었나?
: 특수 단가를 저장하는 시스템이 제대로 작동하지 않아서, 계속 기본 단가로 저장되고 있었다. 오픈 이후부터니까 약 1달 정도 되었다.
원인이 무엇인가?
: 프론트 코드가 잘못되어 있었다. inputFields에서 unitPrice를 제거해야 했는데, addInputFields에서 제거하고 있었다.
장애를 복구하기 위해서 어떤 액션을 취했나? (내가 한 일 뿐만 아니라 팀 단위로)
: 우선 코드를 수정하여 빠르게 staging에 배포하였다. 몇 시간 후 운영에 배포될 예정이다. 팀 단위 대응은 회의 시간에 논의할 것이다.
이 장애를 사전에 어떻게 예방할 수 있었을까?
- 팀의 업무 프로세스의 빈틈을 점검한다.
: 오픈할 때부터 있던 결함이다. 테스트를 확실하게 했어야 했는데 그러질 못했다. 프로세스를 하나하나 적어서, 확실하게 했어야 했다.
- 내가 한 부주의는 어쩌다가 일어났는가?
: 개발 일정이 바빠서 테스트에 소홀한 면이 있었다. 에러가 발생하지 않아서 당연히 데이터도 잘 저장되고 있다고 생각한 면도 크다. 너무 핵심적이고 중요한 기능이었다. 서버로 데이터를 넘기는 부분은 정말 너무너무 중요하기에, 반드시 데이터 확인을 해봐야 했다.
- 어떻게 이런 실수를 개인적으로, 시스템적으로 막을 수 있을까?
: 내가 어떤 기능을 개발한 것인지 확실하게 이해하고 그에 따라 테스트를 작성해서 실행해야 한다. 상황을 설정하고, 테스트 시나리오를 철저히 만들어 테스트해야 한다.
나/팀이 어떻게 하면 더 빠르고 효율적으로 장애에 대응할 수 있을까?
- 시스템 보완이 필요한 점이 있는가?