[Go] WaitGroup vs ErrGroup 비교
·
Language/Go
우선 간단하게 내용만 정리하고 나중에 뼈와 살을 보충 예정입니다. 요약특징sync.WaitGrouperrgroup.Group목적여러 고루틴이 완료될때까지 기다리기여러 고루틴이 완료될때까지 기다리되, 오류 처리와 작업 취소를 통합 관리오류 처리내장 기능 없음.오류를 전달하려면 별도의 채널(channel) 등을 직접 구현 필요내장 기능 있음.Wait() 메서드가 가장 먼저 발생한 error를 반환작업 취소내장 기능 없음.context.Context를 직접 전달하고 관리해야함.errgroup.WithContext를 통해 자동 취소 기능 제공코드 복잡성단순하지만, 오류/취소 처리를 추가하면 코드가 복잡해짐기능이 많지만, 오히려 코드는 더 간결하고 명확해짐패키지 위치syncgolang.org/x/sync/errg..
Go 서버 악마 퇴치기 2탄 - goroutine과 channel의 무서움
·
Error Handling
(최초 작성일: 2024.12 ...ㅎ...)프로젝트를 진행하면서 전체 코드 마무리를 내가 맡았는데, 데이터를 꼼꼼히 다시 재검토하면서 데이터가 기존과 상이한 것을 발견했다.대충 코드를 훑어보면 아무 문제가 없어 보였기 때문에 대체 왜!!! 왜!!! 데이터가 제대로 쌓이지 않는지 내 소중하 머리털을 쥐어 뜯으며 삽질에 삽질을 더했다.다른 이슈들도 병행했기 때문에 원인 발견에만 이틀 정도가 소요되었다!! 해결하지 못하면 어떡하지 싶은 아찔한 기분도 느꼈었다.원인을 알아내니 다행히 해결은 차근차근 빠르게 진행할 수 있었다. 나는 이 에러들을 'Go 서버의 악마들'이라고 감히 말하고 싶다!평소에는 Go 언어의 장점으로 개발자들에게 편의성을 제공하는걸로 알려져 있지만 잘못 사용하게 된다면 그야말로 악마로 탈변하..