닫히지 않은 파일, SQL 행, HTTP 응답 본문 및 기타 리소스 등, io.Closer를 구현하고 명시적 종료가 필요한 잠재적 리소스 누수를 보고합니다

예:


func readFile() ([]byte, error) {
    f, err := os.Open("data.txt") // 리소스 누수: 모든 경로에서 닫히지 않음
    if err != nil {
        return nil, err
    }

    data, err := io.ReadAll(f)
    if err != nil {
        return nil, err // 여기서 'f'가 닫히지 않음
    }

    f.Close()
    return data, nil
}