Golang, 그대들은 어떻게 할 것인가

클로바노트 서버를 개발하고 있는 2년차 개발자 김준하님의 이야기입니다.


Golang으로 서버를 개발하면서 Error 핸들링에 대한 고민을 겪었다고 합니다.

Golang에는 try/catch 대신 'Don't panic' 원칙이 있어 Error를 반환하고 상위 함수에서 처리하는 방식입니다. Error 자체도 값으로 취급되어 변수에 할당하고 조작할 수 있죠.


기존 클로바노트 V1 코드에서는 서버별로 Error 핸들링 방식이 달랐고, Error 로깅 레벨도 모호한 경우가 많았다고 합니다. Error를 어디까지 올려야 하는지, 하위 레이어의 Error를 상위에서 어떻게 알 수 있을지 개선이 필요했습니다.


그래서 V2 개발에서 다음 3가지에 집중했다고 합니다.

  1. Error를 어떻게 만들어냈는가?

  2. Error를 어떻게 추적 가능하도록 올려보냈는가?

  3. Error 핸들링을 어떻게 했는가?


Golang의 Error 핸들링은 만만치 않지만, 팀 내부에서 일관된 컨벤션을 정립하여 문제를 해결해나가고 있다네요. 구체적인 해결 방안은 다음 글에서 공유해주신다고 합니다.


저도 Golang으로 개발해본적이 있는데, error처리를 어디까지 해야할지가 고민이 되는 경우가 많더라구요. Golang시리즈를 관심있게 보고 있어야겠습니다.


https://d2.naver.com/helloworld/8588537

NAVER D2

d2.naver.com

NAVER D2

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 3월 28일 오전 7:40

 • 

저장 12조회 2,392

댓글 0