목차
🧩 M4 Mac에서 gRPC 빌드 오류 해결기
protoc 실행 문제부터 Rosetta 설치까지
🏁 개요
Mac 환경에서 gRPC를 테스트하고 빌드하던 중 여러 오류가 발생했습니다.
이 글에서는 protoc 실행 오류와 CPU 아키텍처 문제를 해결한 과정을 정리합니다.
🚨 1. 오류 발생
gRPC를 설정하고 빌드하는 과정에서 다음과 같은 오류가 발생했습니다.
protoc-gen-grpc-java-1.65.0-osx-aarch_64.exe: program not found or is not executable 문제의 원인은 protoc가 Windows용 .exe 형식으로 설치되어 Mac에서 실행되지 않은 것이었습니다.
🔍 2. 원인 및 해결 과정
검색 결과, grpc-java 공식 이슈 트래커에서 동일한 사례를 발견했습니다.
문제의 핵심은 protoc를 불러올 때 운영체제(OS)와 아키텍처(classifier)가 명시되지 않아
잘못된 바이너리가 다운로드된 것이었습니다.
✅ 해결 방법
Gradle 설정에서 classifier를 명시해 Mac용 바이너리를 다운로드하도록 수정합니다.
protobuf { protoc { artifact = 'com.google.protobuf:protoc:3.14.0:osx-x86_64' } } 이 설정을 적용하면 Mac 환경에 맞는 protoc 파일이 다운로드되며,
이전의 “program not found” 오류가 해결됩니다.
⚠️ 3. 추가 문제 — Bad CPU type in executable
빌드 오류는 사라졌지만, 다음과 같은 새로운 오류가 발생했습니다.
error=86, Bad CPU type in executable 이 오류는 인텔(x86_64)용 바이너리를 ARM(M계열) 기반 Mac에서 실행할 때 발생합니다.
즉, osx-x86_64 바이너리를 M4 Mac에서 실행할 수 없다는 뜻입니다.
🧠 4. 최종 해결 — Rosetta 설치
ARM Mac에서 인텔용 실행 파일을 구동하려면 Rosetta 2가 필요합니다.
아래 명령어로 간단히 설치할 수 있습니다.
softwareupdate --install-rosetta 설치 후 다시 빌드를 실행하면 정상적으로 동작합니다 ✅
🧾 정리
| 구분 | 내용 | 
|---|---|
| 문제 원인 | 잘못된 플랫폼용 protoc바이너리 다운로드 | 
| 해결 방법 | Gradle 설정에서 classifier명시 (osx-x86_64,osx-aarch_64등) | 
| 추가 문제 | ARM 기반 Mac에서 인텔 바이너리 실행 불가 | 
| 최종 해결 | Rosetta 2 설치 후 재빌드 성공 | 
💡 팁
- M계열 Mac 사용자는 :osx-aarch_64classifier를 사용해야 합니다.
- protoc버전은- grpc-java버전에 맞춰 관리하는 것이 좋습니다.
- 관련 공식 문서: gRPC Java GitHub Issues
📘 요약
protoc실행 오류 → classifier 명시로 해결
CPU 타입 오류 → Rosetta 설치로 해결
참조문서
