Panic 2

Go 언어 에러 처리 방식 정리: error 인터페이스와 실전 패턴

인터페이스까지 이해했다면, 이제 Go를 Go답게 만드는 핵심 주제인에러 처리(error handling) 를 살펴볼 차례다.Go의 에러 처리는 종종 “번거롭다”, “코드가 길어진다”는 평가를 받는다.하지만 실제로 사용해보면, 이 방식이 에러를 숨기지 않고 드러내는 데 초점을 두고 있다는 걸 알게 된다.이 글에서는Go의 error 인터페이스 구조에러를 처리하는 기본 패턴실무에서 자주 쓰는 설계 방식을 중심으로 정리한다.Go에서 error는 인터페이스다Go에서 에러는 내장 타입이 아니라 인터페이스다.type error interface { Error() string}Error() 메서드를 구현하면 모두 error가 된다에러는 값(value)처럼 전달된다이 구조 덕분에,Go의 에러는 예외(exceptio..

backend 2026.01.15

Go 언어 defer 정리: 자원 관리와 실행 순서 이해하기

에러 처리까지 익혔다면, 이제 Go 코드에서 거의 항상 함께 등장하는defer 문을 정리할 차례다.defer는 문법 자체는 단순하지만,언제 실행되는지, 어떤 순서로 동작하는지를 정확히 이해하지 않으면의도와 다른 코드가 만들어지기 쉽다.이 글에서는defer의 기본 동작 방식자원 관리에서의 사용 패턴실제로 자주 실수하는 포인트를 중심으로 정리한다.defer란 무엇인가defer는 함수 종료 시점에 실행될 코드를 등록하는 키워드다.defer fmt.Println("end")fmt.Println("start")실행 결과는 다음과 같다.startenddefer로 등록된 코드는 현재 함수가 return되기 직전에 실행된다정상 종료든, 에러 반환이든 동일하게 실행된다이 특성 때문에, defer는 자원 정리에 매우 잘 ..

backend 2026.01.14