Swift
2 posts
[Swift] Array와 Set의 속도차이

개요 알고리즘 문제를 풀던 도중.. Array와 Set을 사용했을때 많은 시간차이가 발생하는 것을 발견했다. 그 이유는 무엇일까. 간단한 실험을 통해서 얼마나 속도가 차이나는지 알아보고 이유 또한 알아보자. 실험 우선 실험에 사용할 유용한 조수를 소개한다. 코드를 클로저로 받아서 사용할 수 있는 아주 좋은 녀석이다. 코드는 이곳에서 가져왔다. 그 다음 Array와 Set에 원소 추가, 순회, 삭제를 테스트했다. 1만번 기준 속도의 차이는 다음과 같다. 순회가 속도 차이는 가장 크지만, 기준 속도의 차이 떄문에 추가가 값의 차이가 가장 많이난다. 실로 어마어마한 차이이다.. 왜 이런 차이가 나는 것일까? 이유 우선 Array와 Set의 가장 큰 차이는 이다. 코드를 보자. 보다시피 Array와 Set에 똑같은 순서로 삽입을 했지만, Array는 순차적으로 제거된 반면 Set은 랜덤하게 삭제되었다. 이러한 차이의 이유를 Array와 Set의 원소 추가, 순회, 삭제 메소드에서 살펴보자…

February 17, 2023
Swift
[Swift-뜯어보기] xcode 에디터로 뜯어볼 준비하기

들어가면서 Swift 는 open source 입니다. 아주 접근이 쉬운 혜자 언어죠. 이 오픈소스 코드를 웹상에서 뜯어보려면.. 정말 엄청 힘들고 사실상 불가능에 가깝다. 특정한 자료구조, 기능이 궁금한데 하나의 메소드 안에서 다른 여러 메소들이 중첩으로 사용되고 있고.. 여러 프로토콜을 준수하고.. 프로토콜 메소드도 사용하고.. 이걸 정말 하나하나 웹상에서 찾아가면서 혹은 로컬에서 해당 swift 파일을 열어서 뜯어보기란 불가능하다. 그래서 이번 포스트에서 Swift 를 빌드하여 xcode로 열어 뜯어볼 수 있는 방법을 소개하고자 한다. Swift 빌드 macOS 기준 셋팅 방법임! 다른 OS 는 이곳 가이드를 참조해야함. Swift 는 여러 OS, Architecture 를 지원하고 있다. 그리고 여러 환경에 맞춰 빌드를 할 수 있도록 빌드 스크립트를 제공해준다. 다만 빌드에 필요한 Swift의 Dependency와 컴파일 툴은 직접 설치해야한다. 하나씩 해보자! 준비물 …

February 06, 2023
Swift