동기(sync)와 비동기(async) / Blocking와 NonBlocking
코어, 쓰레드, 동시적 처리 동기와 비동기를 이해하기에 앞서 하드웨어적인 부분을 먼저 알아야 한다. 멀티 쓰레드 기술이 적용되어 4코어 8쓰레드, 6코어 12쓰레드 등이 가능한 것은 컴퓨터 부품에 관심이 있다면 알 것이다. 아이폰 11 Pro의 경우에도 CPU를 쓰는 것은 마찬가지여서 6코어를 가지고 있고 쓰레드는 정확히 밝혀지지는 않았으나 12개의 쓰레드를 가지고 있다고 한다. 이 여러 개의 쓰레드가 있음에도 한 쓰레드에만 일을 몰아주면 비효율적일 것이다. 일을 다른 쓰레드에 보내서 분산 처리를 하는 것이 더 효율적일 것이다. 정확한 용어로 표현하자면 '동시적 처리'를 하고 싶을 것이다. 이와 같은 속성을 동시성(concurrency)이라 한다. 참고로 Go는 동시성을 좀 더 잘 지원하도록 설계되어 있..