장애상황에 대처하는 신입의 자세

수달·2023년 2월 26일
2

생애 첫 큰 업무를 맡다.

입사 한지 3주 쯤 되었을 때, 사수님께서 새로운 과제를 주셨다. 기존에 잘 동작하고 있는 카드 결제 배치 프로그램에 관련된 업무였는데, 해당 코드에 리팩터링 업무를 주셨다.

이 코드는 프로젝트 전반적으로 자리잡고 있는 코드였고, 파일 changes 가 무려 100개 가까이 되는 엄청난 크기의 리팩터링이었다.

정말 내가 할 수 있을까 ? 망설임도 잠시 의욕이 넘치는 신입답게 리팩터링을 시작했다.


다른 사람의 코드를 변경한다는 건.

리팩터링을 할 때 가장 큰 문제는 레거시처럼 느껴지는 코드가 왜 이렇게 되었는지 비하인드를 모른다는 사실이다.

모든 코드에는 이유가 있다고 하는데 어떤 이유 때문에 이렇게 된건지 알 수가 없었다. 😭 게다가 카드결제 도메인은 처음이라서, 어떤 방식으로 해당 작업이 이뤄지는지 파악하는게 급선무였다.

히스토리를 물어보고 싶었지만, 이 코드를 작업한 분은 이미 이직을 한 뒤였고, 우리 팀원분들은 굉장히 바빠보여서 질문하기도 죄송한 상황이라 최대한 스스로 하려고 했다. (다시 돌아간다면 폭풍 질문을 할거다..)


안정감을 느끼며 리팩터링하기

리팩터링이란 기능에 변경없이 코드를 개선하는 일 이다. 그런데 기존 기능에 엣지 케이스나 이런 것들이 전부 파악이 안되어 있는 상태인데, 테스트 코드까지 없다면 ? 정말 코드 하나 하나 변경하기가 무섭다.

그래서 리팩터링을 하면서 최대한 작은 단위로 테스트를 짜고자 했다.

내가 했던 작업은 테스트가 어려워서 로컬에서는 어려운 작업이었다. (외부 서버와 하나의 묶음으로 테스트가 필요했기도 하고, 실 서비스 되는 서버 자체가 인터넷이 안되는 서버라서 ..)

그래서 단위 테스트라도 꼼꼼하게 작성하자고 생각했다.


짜여진 테스트를 전적으로 신뢰하지 말기.

여기서 문제가 발생했다. 테스트 네이밍만 보고, 해당 테스트가 꼼꼼하게 적절한 데이터로 테스트가 되고 있다고 생각했는데, 예외 케이스가 있는 테스트였고, 해당 예외를 잡지 못해서 배포 후 장애를 겪었다. 😭

장애 상황이 생각보다 심각해서 팀원분들이 새벽 같이 장애 대응을 해주셨다...


코드 리뷰를 받는 다는건 책임을 나누는 일이다.

장애 때문에 팀원 분들에게 피해를 끼쳤다는 사실, 또 기업적 손해를 입을 뻔 했다는 것 때문에 식은 땀이 엄청나고, 죄송한 마음에 하루종일 심란했다...

사수님들은 입을 모아 코드리뷰를 거쳤고, 그렇기 때문에 버그를 발생시킬 수 있는 포인트를 잡지 못한 부분에 대해서 공동 책임이라며, 위로를 해주셨다.

예전에 책에서 장애 상황일 때는 공동의 책임임으로 질타하거나, 책임을 묻게 되면 실수를 숨기는 조직 문화가 형성된다는 것을 읽은 적이 있다.

그래서 좋은 팀 분위기 덕분에 오히려 위로를 받게 됐는데, 그게 더 마음을 불편하게 하기도 했던 것 같다.

나는 신입이 들어와서 이런 큰 실수를 저지르면 우리 사수님들처럼 품어줄 수 있을까? 싶기도 하고, 만감이 교차했다.

장애 상황에 대처하는 신입의 자세 🥲

  • 정신 똑바로 차리고, 장애가 난 원인 파악.
    장애 상황은 사수님들의 발빠른 대처 덕분에 해결이 되었다. 그러나 장애를 낸 코드를 작성한 것은 나이기 때문에, 내가 코드를 작성하며 어떤 부분을 간과했는지 정확하게 파악하고, 이런 일이 두번 다시 일어나지 않도록 회고 작업을 해야한다.

  • 팀원분들께 감사함과 죄송함 표현
    혼자 정신이 없어서 죄송하다고 표현을 못할 뻔 했었다. 팀 전체가 나의 실수로 인해서 고생하고 있다는 사실을 인지 했다면 바로 감사함과 죄송함을 표현하자.

  • 장애에 일희일비 하지않기
    존경하는 사수님께서, 개발자가 장애를 내지 않는다는 건 말이 안되는 일이라고 하셨다. 배포 한번 나갈 때마다 불안함에 떤다면 어떻게 일을 할 수 있을까 ? 함께하는 동료들과 나를 믿고 실수가 반복되지 않도록 점점 더 나은 나를 만들어가자.
profile
짜장면 쟁이

1개의 댓글

comment-user-thumbnail
2023년 5월 12일

우테코 밖 현업 세상은 어떤가요? 잘 지내고 있죠? 저도 비슷한 경험을 했던 부분이 있어서 그런지 수달의 상황이 이해가 가네요! 💪 앞으로의 파이팅~~

답글 달기