Golang Error 처리를 위한 결정1. Error Wrapping으로 추가 정보를 포함한다.Wrapping 방법은 fmt.Errorf(”%w”, err)를 사용하여 에러를 추가하는 방식입니다.Go 1.13 이상 버전에서는 표준 라이브러리에 error 래핑 기능이 추가되어, 호출 스택이 필요 없는 경우에는 다음과 같이 간편하게 사용할 수 있습니다.func foo() error { return errors.New("foo error!!") } func bar() error { return fmt.Errorf("%s, %w", "bar", foo()) } func main() { err := fmt.Errorf("%s, %w", "main!!", bar()) fmt.Printf("%+v", err) } ..
배경현재 프로젝트에서 Error 처리를 일관적이지 못한 방법으로 하고 있다는 생각이 들어서 글을 쓰게 되었습니다.작년의 Golang 초기 사용 시점에는 모두 언어에 대한 이해도가 낮고 MVP 완성을 위해 빠르게 코드를 짰어야 해서 전체적으로 코드를 짠 사람의 코딩 Convention을 따라가게 되었습니다.그때의 Error handling 사용의 형태를 유사하게 활용해 오다 보니 현재까지 같은 문제를 가지고 있는 Error handling을 가져오게 된 것이죠. 그래서 우리의 Error handling은 같은 문제들을 가지고 있습니다. 현재 프로젝트의 에러 처리 방식의 문제점1. 에러 로그의 일관성이 부족합니다.어떤 에러 로그는 최상위 API 실행시에만 몰아서 출력되고,어떤 에러 로그는 최상위 API 실행..