On this page
안녕하세요! 오늘은 MacOS Silicon(M1/M2) 환경에서 Netty를 사용하는 Spring Boot 애플리케이션을 실행할 때 발생할 수 있는 DNS 문제를 해결하는 방법을 공유하려고 합니다. 이 문제를 겪으면서 시간을 꽤 많이 보냈는데, 저와 같은 문제를 겪고 계신 분들께 도움이 되길 바랍니다.
문제 상황
Spring Boot 애플리케이션을 실행하려고 할 때, 다음과 같은 에러 메시지를 보셨을 거예요:
io.netty.resolver.dns.DnsNameResolverException: Search domain query failed. Original hostname: 'example.com' failed to resolve 'example.com' after 2 queries
이 에러는 Netty가 MacOS의 기본 DNS 해석기를 찾지 못할 때 발생합니다. 특히 MacOS Silicon 환경에서는 이 문제가 자주 발생합니다.
해결 방법
이 문제를 해결하려면 netty-resolver-dns-native-macos
라이브러리를 추가하면 됩니다. build.gradle
파일에 다음 줄을 추가하세요:
runtimeOnly 'io.netty:netty-resolver-dns-native-macos:4.1.104.Final:osx-aarch_64' // MacOS Silicon 라이브러리 누락 문제
이 라이브러리는 MacOS Silicon(M1/M2) 아키텍처에 맞는 네이티브 DNS 해석기를 제공해서 Netty가 정상적으로 DNS를 해석할 수 있게 해줍니다. 이 줄을 추가한 후에 프로젝트를 리프레시하고 애플리케이션을 다시 실행해 보세요. 문제가 해결될 겁니다!
전체 예제
다음은 build.gradle
파일의 예제입니다:
plugins {
id 'org.springframework.boot' version '2.6.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'io.netty:netty-resolver-dns-native-macos:4.1.104.Final:osx-aarch_64' // MacOS Silicon 라이브러리 누락 문제
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
트러블 슈팅 페이지
이 페이지는 MacOS Silicon 환경에서 발생할 수 있는 Netty 관련 문제를 지속적으로 업데이트하고 해결 방법을 공유하는 공간입니다. 새로운 문제나 해결 방법이 있을 때마다 이 페이지를 업데이트할 예정입니다.
최신 업데이트
- 2024-05-15:
netty-resolver-dns-native-macos
라이브러리를 추가하여 MacOS Silicon 환경에서 발생하는 Netty DNS 문제를 해결했습니다.
앞으로도 MacOS Silicon 환경에서 발생할 수 있는 다양한 문제와 해결 방법을 공유할게요. 질문이나 추가적인 도움이 필요하시면 언제든지 댓글로 남겨주세요!