요약
앞에서 살펴본 것처럼 Go에서 오류 처리와 로깅은 다른 프로그래밍 언어에서와 달리 같지 않습니다. Go의 오류 처리 접근 방식은 단순합니다. if
조건을 사용하고, 호출 대상 함수가 여러 값을 반환하는 것입니다. 일반적으로 마지막으로 반환된 값이 오류입니다. 오류 변수가 nil
반환되면 오류가 없는 것입니다. 값이 nil
이 아니면 실패가 발생한 것입니다. 단순히 오류를 다시 반환함으로써 오류를 스택 위까지 전파할 수 있고, 원하는 경우 컨텍스트를 추가할 수 있습니다.
프로그램에서 자주 발생하는 오류 메시지의 반환 값으로 사용할 수 있는 오류 변수를 만들 수 있습니다.
어떤 경우에 패닉을 사용해야 할지도 알아야 합니다. panic
과 recover
가 작동하는 방식은 이미 살펴보았습니다. 이러한 함수는 프로그램을 명시적으로 중지해야 하는 경우에만 사용해야 합니다. 오류를 올바르게 처리해도 프로그램이 응답하지 않는 경우가 있을 수 있습니다. 하지만 이것은 규칙이 아닌 예외입니다.
마지막으로, Go에서 로깅이 작동하는 방식을 알아보고 표준 라이브러리를 사용하는 방법을 살펴보았습니다. 로그를 콘솔에 출력하는 것 외에도 파일로 보낼 수도 있습니다. 이렇게 하면 로그를 나중에 참고하고 일원화된 위치로 보낼 수 있습니다. 코드베이스의 규모가 늘어나면 로그 설정 수준, 여러 출력 구성과 같은 다른 작업을 수행해야 할 수 있습니다. 표준 라이브러리에서는 이러한 작업이 지원되지 않습니다. zerolog와 같은 로깅 프레임워크를 사용해야 합니다.
이 모듈은 길지 않지만 중요한 개념을 담고 있으니 잘 익혀 두세요. 프로그램에서 문제 해결을 진행해야 할 때 분명 도움이 될 것입니다.