강연을 들은 계기

이 건은 좀 길다. 나는 세상에 이유 없는 행동은 없다고 생각한다. 그게 그대로 코드에도 적용되어서 작성자의 의도가 없는, 그냥 짠 코드는 없다고 생각한다. 그래서 나는 다른 사람의 코드를 볼 때, 왜 이렇게 짰는지에 중점을 둬서 본다. 실제로 내가 동료 평가를 가서 많이 하는 말 중 하나가 “그래서 이렇게 짜셨구나.” 이다. 그렇게 하면 이 사람이 어떤 걸 고려해서 코드를 짠 건지, 그 상황에서 더 나은 방법은 없었는지를 생각할 수 있다(천성 SM).

나는 지금 집현전에서 백엔드 개발팀에 속해있는데, 가끔 코드를 볼 때마다 “이 코드의 의도는 뭘까? 어떤 과정을 통해 이런 형식의 구조를 갖게 되었을까?” 하는 생각이 든다. 대부분은 내부에서 비하인드를 들으며 풀렸는데, 그 중에 에러 핸들링에 대해서는 얘기를 들은 적이 없었다.

마침 집현전에서 개발하면서 에러 핸들링에 대해 겪은 것들을 설명하는 강연이 아젠다에 있어서 바로 등록했다.

추가로 강연이 진행되면서 “이런 것도 해보면 어때요?” 하는 청중 카뎃의 제안을 기대했는데, 없었다.

Happy Error Handling

최대한 종속을 피하자

  • 기존: 42 인트라 로그인만 존재
  • 현재: 42 인트라 로그인 말고도 기본 로그인도 가능하게 함

에러를 빨리 잡자

백엔드

에러 분리

  • 에러 코드를 기능 별로 분리
    • ex) 0번대 - Common Error, 100번대 - Auth Error…
  • 에러 핸들링
    • try - catch문
    • errorConverter에서 시크릿 키값 관련 오류를 커스텀된 에러 코드로 반환
      • 기존에는 UNKNOWN_ERROR로 반환됐었음
    • errorHandler에서 에러 처리
      • 커스텀한 에러가 아닌 에러가 나오면 커스텀된 에러인 UNKNOWN_ERROR로 반환
  • 에러 로깅

프론트엔드

  • sentry 사용

댓글남기기