compiler-driven development

원하는 API를 먼저 쓰고, 에러가 가리키는 빈칸을 채운다

스레드 풀 구현은 큰 설계를 한 번에 완성하기보다 컴파일러 피드백을 따라 타입, 생성자, 저장소, 실행 경로를 차례로 갖춥니다.

ThreadPool::new(4) 타입이 필요함

ThreadPool 구조체와 생성자 위치를 정합니다.

workers: Vec<Worker> 스레드 저장소가 필요함

고정된 수의 작업자 스레드를 보관할 필드를 만듭니다.

pool.execute(job) 작업 전달이 필요함

요청 처리 클로저를 큐로 보내는 메서드를 구현합니다.

recv().unwrap() 작업 수행이 필요함

작업자가 큐에서 일을 받아 실제 연결 처리를 실행합니다.

핵심 전환: 요청마다 스레드를 만드는 코드가, 고정된 작업자에게 일을 맡기는 구조로 바뀝니다.