
Channels
Channels, buffered vs unbuffered, close, select, channels에 대한 range, nil channels
22 면접 질문·
Junior
1Go에서 channel이란 무엇입니까?
1
Go에서 channel이란 무엇입니까?
답변
channel은 goroutine 간의 통신과 동기화를 가능하게 하는 데이터 타입입니다. 타입이 지정된 통로 역할을 하여 thread-safe한 방식으로 값을 송수신할 수 있게 합니다. 메모리를 직접 공유하는 대신 goroutine 간에 데이터를 공유하려면 channel을 사용하세요.
2Go에서 정수형 unbuffered channel을 어떻게 생성합니까?
2
Go에서 정수형 unbuffered channel을 어떻게 생성합니까?
답변
unbuffered channel은 용량을 지정하지 않고 make(chan T)로 생성합니다. 수신자가 준비될 때까지 송신자를 차단하여 엄격한 동기화를 보장합니다. 명시적 동기화가 필요한 일대일 통신에는 unbuffered channel을 사용하세요.
3buffered channel과 unbuffered channel의 주요 차이점은 무엇입니까?
3
buffered channel과 unbuffered channel의 주요 차이점은 무엇입니까?
답변
unbuffered channel은 수신자가 준비될 때까지 송신자를 차단합니다(엄격한 동기화). 반면 buffered channel은 용량에 도달할 때까지 값을 저장한 후 차단합니다. buffered channel은 goroutine을 분리하고 일부 경우 성능을 향상시키지만 동시성 문제를 가릴 수 있습니다. 동기화에는 unbuffered를, 처리량에는 buffered를 사용하세요.
4
용량이 10인 buffered channel을 어떻게 생성합니까?
5
channel에 값을 어떻게 보냅니까?
+19 면접 질문
기타 Go 면접 주제
Go 기초
Junior
25개 질문Go 데이터 구조
Junior
20개 질문Go 인터페이스
Junior
18개 질문에러 처리
Junior
20개 질문Goroutine 기초
Junior
20개 질문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개 질문고급 Go
Senior
20개 질문CLI 개발
Senior
20개 질문