동시성 코드를 순차 코드처럼 작성하게 해주는 async/await는 언어마다 실행 의미가 달라, 같은 백그라운드 로그 예제가 7개 런타임에서 4가지 출력을 만듦 차이는 단순한 성능 문제가 아니라 관찰 가능한 동작을 바꾸는 설계 선택에서 발생하며, 연구는 이를 태스크의 시작·종료·취소에 걸친 9개 설계 차원으로 분류함 Swift와 Python+Trio는 태스크가 생성된 함수보다 오래 살지 못하게 하지만, 함수 종료 시 Swift는 태스크를 취소하고 Trio는 완료를 기다려 각각 AC와 ABC를 출력함 작은 비동기 프로그램도 정확히 이해하려면 호출의 즉시 실행 여부뿐 아니라 await의 중단 보장, 태스크 수명과 참조 강도, 예외 전파, 취소 방식까지 알아야 함 각 설계에는 성능·메모리·사용 편의성·실행 의미의 절충이 있어 유일한 정답은 없으며, 형식 의미론과 실행 추적으로 런타임별 결과가 갈리는 지점을 확인할 수 있음 순차 코드처럼 보이지만 실행 의미는 다른 async/await Python, Rust, Swift의 async/await는 공통적으로 동시성 프로그램을 순차 코드처럼 작성하도록 설계됨 이벤트 루프나 콜백을 사용하는 방식과 구별해 이 패러다임을 순차형 비동기성(straight-line asynchrony) 이라 부름 관련 언어 설계는 15년 이상 발전해 왔으며, 「A Design Space Exploration of Async/Await」 연구는 언어별 공통점과 차이를 탐색함 백그라운드 로그 하나가 만드는 네 가지 결과 예제의 write_to_log 는 A를 출력하고 await sleep(2)로 느린 로그 쓰기를 흉내 낸 뒤 B를 출력함 fire_and_forget은 spawn write_to_log()로 태스크를 만들고, 해당 태스크를 기다리지 않은 채 반환함 main은 fire_and_forget()을 기다린 뒤 await sleep(1)을 실행하고 C를 출력함 이 예제는 7개 런타임에서 4가지 출력을 만듦 Asyncio, C#, Tokio, Swift의 출력은 AC임 JavaScript는 ACB, Smol은 C, Trio는 ABC를 출력함 같은 프로그램의 세 가지 변형까지 비교하면, 7개 런타임 가운데 출력이 모두 같은 쌍은 하나도 없음 태스크 시작: 호출 시 실행과 await의 중단 보장 설계 차원은 순수한 성능 차이가 아니라 프로그램 실행의 관찰 가능한 의미를 바꾸는 선택임 즉시성(Eager...
Related
OpenAI가 또 다른 중요한 증명을 도용했을 가능성
1 hour ago
0
DeepSeek v4.1 Flash
2 hours ago
2
Automattic 이사회, CEO Matt Mullenweg의 반대에도 유급 휴직 의결
3 hours ago
2
Read the Docs를 겨냥한 최근 DDoS 공격 분석
4 hours ago
1
Show HN: 빛의 속도가 시속 5km라면 어떨까?
4 hours ago
3
브라우저에서 실행하는 GNU Radio
5 hours ago
2
우리의 경제적 미래는 어떤 모습일까?
6 hours ago
1
불법스팸 발송자와 방치 사업자에 관련 매출액 최대 6% 과징금, 10월 시행 예정
6 hours ago
2
Tips
click
Popular
[팟캐스트] OAuth, 제대로 이해하고 쓰고 있나요?
2 weeks ago
84
고철
2 weeks ago
79
연상호, 토론토영화제서 고레에다 감독과 대담
2 weeks ago
70
‘붉은사막’, 게임스컴 어워드 에픽·최고의 PC 게임 후보작 올라
2 weeks ago
65
잔나비, 첫 아시아 투어 곳곳서 떼창 물결…"기적같은 일"
2 weeks ago
63
김재윤 통산 220세이브…삼성, 2연패 탈출
2 weeks ago
63
취준생 목소리에 귀기울인 '라이너 라이트'..."자소서 기능 이용자 수 13배 늘...
2 weeks ago
62
LinkedIn CringeBot 3000
4 weeks ago
60
© Clint IT 2026. All rights are reserved

3 hours ago
3







English (US) ·