NAVER D2
d2.naver.com
클로바노트 서버를 개발하고 있는 2년차 개발자 김준하님의 이야기입니다.
Golang으로 서버를 개발하면서 Error 핸들링에 대한 고민을 겪었다고 합니다.
Golang에는 try/catch 대신 'Don't panic' 원칙이 있어 Error를 반환하고 상위 함수에서 처리하는 방식입니다. Error 자체도 값으로 취급되어 변수에 할당하고 조작할 수 있죠.
기존 클로바노트 V1 코드에서는 서버별로 Error 핸들링 방식이 달랐고, Error 로깅 레벨도 모호한 경우가 많았다고 합니다. Error를 어디까지 올려야 하는지, 하위 레이어의 Error를 상위에서 어떻게 알 수 있을지 개선이 필요했습니다.
그래서 V2 개발에서 다음 3가지에 집중했다고 합니다.
Error를 어떻게 만들어냈는가?
Error를 어떻게 추적 가능하도록 올려보냈는가?
Error 핸들링을 어떻게 했는가?
Golang의 Error 핸들링은 만만치 않지만, 팀 내부에서 일관된 컨벤션을 정립하여 문제를 해결해나가고 있다네요. 구체적인 해결 방안은 다음 글에서 공유해주신다고 합니다.
저도 Golang으로 개발해본적이 있는데, error처리를 어디까지 해야할지가 고민이 되는 경우가 많더라구요. Golang시리즈를 관심있게 보고 있어야겠습니다.
https://d2.naver.com/helloworld/8588537
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 3월 28일 오전 7:40
안
... 더 보기이번에 우아한형제들 기술 블로그에 "타입 안전한 API 모킹으로 프론트엔드 생산성 높이기"라는 새 글을 발행하게 되었습니다.
... 더 보기이번 구글 I/O, 구글 여러분들 행사전에 입이 근질근질하셨겠네요. ㅎㅎ
내용은 다들 소개하셨으니 한줄평하자면, 구글이 처음으로 OpenAI에 비해 반발짝정도 앞서나간 이벤트인 것 같습니다.
더불어 출시한 모델과 서비스들을 보니.. 역시 AI는 돈빨이며 구글이 돈빨을 제대로 세웠.. 쿨럭..
지
... 더 보기