처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.06.21 39

Go에서 nil 체크 지옥, 사실 안 해도 됩니다

Hacker News 원문 보기

Go로 protobuf 같은 중첩 구조체를 다루다 보면 a != nil, a.B != nil, a.B.C != nil… 단계마다 nil 검사를 넣느라 코드가 지저분해지는 경험, 다들 있을 겁니다. 한 단계라도 빠뜨리면 런타임 패닉이니 방어적으로 쌓다 보면 본 로직보다 nil 체크가 더 길어지죠.

핵심 통찰은 의외로 단순합니다. Go에서는 nil 포인터에 대해서도 메서드 호출이 합법이라는 점입니다. 포인터 리시버 메서드 안에서 'if x == nil이면 제로값을 반환'하도록만 만들면, nil 안전한 게터가 됩니다. 실제로 protobuf 생성 코드의 GetX() 메서드가 바로 이 방식을 씁니다. 덕분에 a.GetB().GetC().GetD()처럼 체이닝해도 중간이 nil이면 패닉 없이 제로값을 돌려줍니다.

결론은, 직접 짠 구조체에도 이 패턴으로 게터를 정의하면 장황한 nil 검사를 걷어내고 가독성을 크게 끌어올릴 수 있다는 것. nil 리시버 호출이 패닉을 일으킨다는 흔한 오해만 풀면 Go 코드가 한결 깔끔해집니다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.