
사람들은 Swift 5.0에서 가장 중요한 점이 ABI Stability라고 하는데요,
말 그대로 ABI라는게 안정화 되었다는 건데 이게 뭐길래 그럴까요?
Application Binary Interface의 약자
흔히 들어본 API는 Application Programming Interface의 약자로 프로그래밍시 코드에서 사용하는 인터페이스입니다.
ABI는 Application Binary Interface의 약자로 바이너리 간 인터페이스입니다
즉, 이진값 0101을 이용해서 라이브러리 혹은 OS(Operating System)와 사용자에 의해서 실행되는 프로그램(App) 사이에 필요한 저수준 인터페이스를 정의합니다.

함수를 어떻게 호출할지, 메모리에 데이터를 어떻게 표현할지 등을 정의한게 ABI라고 할 수 있습니다.
이러한 ABI가 안정화 되었다는 것은 Swift 5.0과 그 이후의 버전이라면 컴파일된 앱과 라이브러리가 서로 다른 버전이어도 바이너리간 호환이 가능하다는 것입니다.

앞으로 이러한 ABI stability를 보장하기 위해서 Swift 표준 라이브러리에 새로운 타입이나 프로토콜, 함수 등을 추가하는 것이 제안된다고 합니다.
https://jusung.github.io/ABI-Stability/
https://sujinnaljin.medium.com/swift-abi%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-7b861d29ace6