Swift에 자료구조, 알고리즘 추가하기(feat. SPM)
스위프트에 힙, 덱 없어서 슬프셨쬬?
Swift-Collections 잡수세요~
자매품 Swift-Algorithm과 Swift-Numeric이 있습니다.,..~
사실 반(half) 낚시임
쓸 수 있는데요, 라이브러리 추가해서 써야돼요. SPM으로 위에 있는 친구들 추가해서…
사실 알고리즘 문제 풀다가 힙 없는거 조금 열받아서 왜 없을까 찾아보다가 스위프트 API에 덱(Deque)이 있는거 보고 눈 돌아서 바아로 써보려다가 박구먹음.
엥 뭐야 라이브러리 추가해서 써야되는거였잖ㅇ ㅏ ㅠㅜㅠ하고 반 낚인 마음으로 왜 스위프트에 정식으로 넣어주지 않는지 이유를 알아보았다.
눈물 닦고 알아보자
왜 standard library에 넣어주지 않은겁니까?
한 줄 요약: Swift5부터 ABI-stabled라 이제 쭉 뭐 바뀔 일 없을거야~ 응 다 SPM으로 넣어서 써~
ABI-stabled
첫인상: ㅋㅋㅋㅋ ABI? API 잘못 쓴 거 아님?ㅋㅋㅋㅋㅋ
검색후: ….. ༼ಢ_ಢ༽
ABI(Application Binary Interface)는 응용 프로그램과 운영 체제 혹은 라이브러리 간에서 사용되는 낮은 수준의 인터페이스라고 한다. 위키백과
이렇게만 보면 모르겠어서 위키백과에 추가돼있는 스택 오버플로우 글을 참고했다.
우리가 잘 알고 있는 API
의 컴파일된 버전이라고 한다. 조금 더 컴퓨터와 가까운 로우레벨의 API라고 생각하면 될 것 같다.
Swift를 버전에 관계 없이 자유롭게 컴파일 할 수 있도록(Swift 버전이 새로 나올때마다 마이그레이션 할 필요 없도록) Swift를 ABI 안정적으로 만들었다고 한다. Swift 도큐먼트에 ABI Stability Manifesto(ㅋㅋ…) 문서가 따로 있다. 이 글에 보다 더 자세한 이점들이 (영어로) 적혀 있다.
왜?
2014, 2015.. 등등 과거 스택 오버플로우 글들을 보며 왜 Swift2, 3, 4 코드를 따로 명시해서 써놓을까 의문이 든 적이 있었는데, ABI-stabled 되기 전 스위프트는 프로그래머들에게 상당히 고통스러웠을 것 같다.
이런 불편을 고치고 OS단에서 언어의 안정성을 유지할 만한 시기가 됐다고 생각한거 아닐까?
아니 그럼 그 전에 추가해주지 그랬어요
???: ㅋㅋ 늦었는데 ㅇㅓ캄;; (원본 글을 찾을 수 없어서 포럼 인용으로 대체)
나보다 더 똑똑한 개발자들이 머리 맞대서 짜놓은 코드 라이브러리만 추가하면 쓸 수 있게 해준 것만으로도 감사하자.
애초에 눈물을 흘릴 처지가 아니었다.
나는 고작 코딩테스트 쉽게 보자고 힙 넣어줘요 엉엉 이러고 앉아있었는데,, 불과 몇 년 전만 해도 사람들은 스위프트 새 버전이 나올 때마다 마이그레이션 실패할까봐 엉덩이를 들썩이고 있었다,…
이러고도 내가 개발자 할 ..!!어? 자격이 있는걸까!@!??
^u^ ㅋㅋ
댓글남기기