: Processes 또는 Goroutine들 간의 통신과 동기화를 통해 병렬 처리를 추상화하는 방법
Goroutine : 경량화 된 실행 단위
- 함수 호출과 유사한 형태로 생성되며, 일반적으로 더 가볍고 빠르게 생성 및 관리된다
- 별도의 실행 스레드가 아닌 경량화된 스레드이다
- 여러 Goroutine이 동시에 실행될 수 있다
- 서로 메시지를 보내고 받는 방식으로 상호 작용한다
채널 : Goroutine들 사이의 통신을 위한 수단
- 채널을 통해 데이터를 주고받을 수 있다
- Goroutine 간에 동기화 및 데이터 공유를 가능하게 한다
- make 함수를 사용하여 생성하며, 타입은 주고받을 데이터의 타입에 따라 지정된다
select 문 : 여러 채널 간의 통신을 조작하는데 사용된다
- 각 case마다 특정 채널의 데이터 수신을 대기하며, 먼저 준비된 채널에 응답한다