목차

Today I Lived/Humanscape - 2025

25.02 - 대형사고

장 상 현 2025. 2. 15.

목차

타임스톤 없나?

 

시간을 되돌리게

 

14,309 개의 초음파 영상 데이터가 사라졌다

 

아, 말은 똑바로 해야지

 

사라진 게 아니라, 내가 지웠다

 

실수로 지워졌다?

 

그럴 리가

 

한국에 등록되어 있던 예비 장비 일부를 해외 지사로 보내야 하는 상황이라

 

장비를 삭제해 달라는 요청이었고

 

해당하는 장비를 범위로 지정해 삭제 쿼리를 날렸다

 

장비는 영상, 병원, 병실이 외래 키로 사용하기에, 함께 삭제를 했다

 

당연히 실제 사용되는 장비인지 확인했고

 

나름 운영 디비라고 개발 디비에서 선행 테스트 후

 

트랜잭션 쿼리까지 써 가며 조심히 다룬다고 생각했다

 

"나는 조심스럽게 잘하고 있다"

 

...

 

잘하고 있다?

 

오만방자한 그때, 사고를 친다

 

오만방자하면서 사고도 안 치면 그게 진짜 고수일까?

 

아무튼 나는 고수가 아니었다

 

"범위" 가 문제였다

 

순차적인 범위의 장비를 삭제하는 쿼리였는데

 

장비의 시퀀스는 순차적이지 않았기에...

 

 

문제를 바로 인지한 건 아니었다

 

쿼리를 실행시키고 싱글벙글 다음 작업을 하던 중이었으니

 

30분이 채 안되었을까?

 

CX 팀에 문의가 인입되기 시작했다

 

영상이 안 보인단다

 

바로 등골이 오싹해지며 인지했다

 

사고 쳤다

 

하지만 자책할 시간조차 아깝다

 

수습부터 해야지

 

다행히도 자동 스냅샷이 정오였다

 

해야 할 일은 명확하다

 

동료 개발자들에게 문제를 전파하고 문제를 해결해야 한다

 

바로 리드이자 사수인 마크에게 허들을 요청하고, 상황을 전달했다

 

홀로 설 수 있다는 자신감이 붙어가던 요즘이었지만

 

이럴 때 경력과 실력을 겸비한 리드 개발자는 듬직하기 그지없다

 

비슷한 답을 내더라도, 답을 찾는 시간과 행동은 신속하다

 

바로 역할을 나눴다

 

스냅샷을 기반으로 한 데이터 복구는 마크가 즉시 처리

 

나는 스냅샷과 쿼리 실행 사이에 생성된 데이터들을

 

S3 영상의 메타데이터를 보며 수동으로 복구한다

25.02 - 대형사고 - undefined -

 

여섯 시간쯤 걸려 모든 데이터를 수동으로 복구했다

25.02 - 대형사고 - undefined -

이제 반성의 시간이니

 

상황을 복기하고, 문제를 정의해서 두 번 다시 이런 일이 없도록 공부한다

 

로 끝난 줄 알았지?

25.02 - 대형사고 - undefined -

 

로이의 질문으로 2차전이 시작된다

 

앱 디비에 박스 디비의 영상 시퀀스가 매핑되어 있는데

 

그게 틀어졌으니 앱 쪽도 전부 다시 맞춰야 하는...

 

다행히? 데이터가 없으면 자동으로 싱크 하는 배치가 있었고

 

문제가 있었던 장비 목록을 추려 전달드리고, 관련한 데이터 삭제 처리를 해 주셨다

 

휴가 중이던 팀 매니저가 자정에

 

유구무언

 

...

 

이번 일로 마음 쓰지 말라는 격려의 톡도 받았다

 

좋은 사람이다

 

권한과 자유를 주고, 책임은 같이 진다

 

내가 되고자 하는 리더상이 여기 둘이나 있네

 

사고 쳐놓고 와중에 좋은 사람들과 함께 일 하고 있어서 행복하다고 생각했다

 

다시 되뇌자

 

열심히 말고, 잘하자

 

박제해서 두고두고 곱씹는다

댓글