Go 반복자: 순수성과 불순성 사이

2025-05-31

Go 1.23은 클로저로 사용할 수 있는 강력한 함수인 표준화된 반복자를 도입했습니다. 그러나 공식 문서의 반복자 분류는 모호합니다. 저자는 "순수" 반복자와 "불순" 반복자를 더 명확하게 구분할 것을 제안합니다. "순수" 반복자는 호출될 때마다 처음부터 시작하는 반면, "불순" 반복자는 상태를 유지할 수 있습니다. 이 글에서는 다양한 반복자 유형과 성능 및 일관성 간의 절충점을 살펴보고, Go 반복자 환경은 여전히 발전 중이며 관례와 용어를 더욱 다듬어야 한다는 결론을 내립니다.

더 보기
개발 반복자

Go에서 panic/recover 남용으로 인한 성능 비용

2025-03-04

본 문서는 Go의 `panic`과 `recover`를 사용한 배열 반복과 전통적인 루프를 사용한 배열 반복의 성능 차이를 벤치마킹합니다. 결과는 작은 데이터셋에서 제어 흐름에 `panic`/`recover`를 남용하면 성능에 큰 패널티가 발생함을 보여줍니다. 이는 인라인화 및 경계 검사 제거와 같은 컴파일러 최적화가 저해되기 때문입니다. `panic`/`recover`는 내부 에러 처리에서 효율성 향상을 가져올 수 있지만, 저자는 남용을 경계하고 이러한 메커니즘을 패키지 내부로 제한하고 공개 API에서는 멀리하는 것이 중요하다고 강조합니다.

더 보기
개발