Pinning의 세 가지 문제

ko생성일: 2025. 9. 24.갱신일: 2025. 9. 25.

Pin API는 원래 저수준 구현자만 다루도록 설계되었지만, 실제로는 고수준 코드에도 종종 스며듭니다. 이 글은 그 현상이 나타나는 세 가지 경우(루프에서의 선택, Stream::next 호출, 포인터 뒤의 Future 대기)를 짚고, AsyncIterator 기반의 merge! 매크로, for await 구문, first 같은 조합기 등으로 대부분을 완화하는 방안을 제안합니다. 아울러 Box가 항상 Unpin인 설계 선택이 불러온 근본적 제약도 지적합니다.