
고급 Go
컴파일러 내부, runtime, scheduler, cgo, unsafe 패키지, assembly, build tags
20 면접 질문·
Senior
1컴파일러가 생성한 assembly 코드를 검사할 수 있는 Go 툴체인 도구는 무엇입니까?
1
컴파일러가 생성한 assembly 코드를 검사할 수 있는 Go 툴체인 도구는 무엇입니까?
답변
go tool compile -S 명령은 Go 컴파일러가 생성한 assembly 코드를 표시합니다. 이 도구는 컴파일러 최적화를 이해하고 성능이 중요한 코드를 분석하는 데 필수적입니다. 표준 빌드 중에 동일한 결과를 얻기 위해 go build -gcflags=-S를 사용할 수도 있습니다.
2Go에서 unsafe 패키지의 주요 목적은 무엇입니까?
2
Go에서 unsafe 패키지의 주요 목적은 무엇입니까?
답변
unsafe 패키지를 사용하면 Go의 타입 시스템을 우회하여 저수준 메모리 작업을 수행할 수 있습니다. Pointer, Sizeof, Alignof, Offsetof와 같은 함수를 노출하여 메모리 주소를 직접 조작할 수 있습니다. C 코드와의 상호 운용이나 중요한 최적화와 같은 특정 경우를 제외하고는 사용이 권장되지 않습니다.
3Go scheduler(GPM)는 goroutine 실행을 어떻게 구성합니까?
3
Go scheduler(GPM)는 goroutine 실행을 어떻게 구성합니까?
답변
Go scheduler는 GPM 모델을 사용합니다. G는 goroutine, P는 논리 프로세서(GOMAXPROCS), M은 시스템 스레드를 나타냅니다. 각 P는 goroutine의 로컬 run queue를 가집니다. M이 syscall에서 차단되면 P는 분리되어 다른 M에 연결되어 goroutine 실행을 계속할 수 있습니다. 이 설계는 최소한의 context switch로 효율적인 스케줄링을 가능하게 합니다.
4
cgo란 무엇이며 어떤 상황에서 사용해야 합니까?
5
대상 OS 또는 아키텍처에 따라 코드를 조건부로 컴파일할 수 있는 지시어는 무엇입니까?
+17 면접 질문
기타 Go 면접 주제
Go 기초
Junior
25개 질문Go 데이터 구조
Junior
20개 질문Go 인터페이스
Junior
18개 질문에러 처리
Junior
20개 질문Goroutine 기초
Junior
20개 질문Channels
Junior
22개 질문Go Modules
Mid-Level
18개 질문HTTP 서버
Mid-Level
24개 질문HTTP 클라이언트
Mid-Level
18개 질문JSON 인코딩
Mid-Level
20개 질문Database/SQL
Mid-Level
22개 질문context 패키지
Mid-Level
20개 질문Testing
Mid-Level
22개 질문동시성 패턴
Mid-Level
24개 질문동기화 프리미티브
Mid-Level
22개 질문Go 웹 프레임워크
Mid-Level
20개 질문REST API 설계
Mid-Level
20개 질문gRPC
Mid-Level
22개 질문Reflection
Senior
20개 질문메모리 관리
Senior
24개 질문성능 최적화
Senior
22개 질문Generics
Senior
20개 질문Go Design Patterns
Senior
24개 질문Microservices
Senior
24개 질문보안 및 인증
Senior
24개 질문Docker & Containerization
Senior
20개 질문Kubernetes Basics
Senior
22개 질문CLI 개발
Senior
20개 질문