본문 바로가기

전체 글

(39)
Swift - In-Out 파라미터 https://docs.swift.org/swift-book/documentation/the-swift-programming-language/declarations#In-Out-ParametersDocumentationdocs.swift.org inout 파라미터 기본 동작Swift에서는 기본적으로 함수 인자는 value로 전달한다. 함수 내에서 이뤄진 변경 사항은 호출부에서 확인할 수 없고, 변경을 원한다면 inout 파라미터를 적용해야 한다. inout 파라미터를 포함하는 함수를 호출할 때, inout 인자는 &를 사용하여 전달한다. 이를 통해 함수 내부에서 변경된 값이 함수 외부에도 반영이 된다.func someFunction(a: inout Int) { a += 1 } var x = 7 someF..
Swift 공식문서 5. Control Flow https://docs.swift.org/swift-book/documentation/the-swift-programming-language/controlflow Documentation docs.swift.org Swift 공식 문서 보면서 내 맘대로 정리 Swift는 다양한 제어흐름 문장을 제공한다.반복을 위한 while조건 분기를 위한 if, guard, switch코드 흐름을 다른 지점으로 전환하는 break, continue배열, 딕셔너리, Range, 문자열 등 시퀀스 반복을 돕는 for-in현재 스코프를 벗어날 때 실행하는 deferFor-In LoopsSequence를 반복하여 처리하고 싶을 때 for-in 루프를 사용items in an arrayranges of numberscharac..
Swift - Strideable Protocol https://developer.apple.com/documentation/swift/strideable Strideable | Apple Developer DocumentationA type representing continuous, one-dimensional values that can be offset and measured.developer.apple.com   Definition Strideable은 연속적인 1차원 값을 나타내며, offset(차이)을 계산하고 측정(거리 계산)할 수 있는 타입을 정의한다. 즉, 어떤 값이 Strideable 프로토콜을 채택하면, 그 값 사이의 거리를 측정하거나, 일정 간격으로 값을 증분시킬 수 있다는 의미이다. protocol Strideable : Com..
자료구조 - Heap (2) 정렬 C언어로 쉽게 풀어쓴 자료구조를 읽으며 정리Heap sort힙 자료구조를 이용한 정렬 방법에는 두 가지가 존재한다.정렬 대상인 데이터들을 힙에 넣었다가 꺼내는 방법기존의 배열을 heapify를 거쳐 꺼내는 방법[정렬 대상인 데이터들을 힙에 넣었다가 꺼내는 방법]정렬해야 할 n개의 요소들로 힙을 초기화한다.그다음으로 한 번에 하나씩 요소를 힙에서 꺼내 배열의 뒤부터 저장하면 된다.시간 복잡도 : 요소의 개수가 n개이므로 전체적으로 O(nlog2n)의 시간이 걸린다.공간 복잡도 : 추가적인 O(n) 만큼의 공간이 필요하다// Heap 구현은 https://liam777.tistory.com/37 참고 extension Array where Element: Comparable { mutating func so..
Concurrency (7) Concurrent Code With TaskGroup 이전글 - Concurrency(6) Testing Asynchronous Code Modern Concurrency in Swift를 읽고 간단 정리 현재 챕터까지 진행하면서 아래 내용을 학습하였다.async/await를 사용한 코드 설계Asynchronous Sequence 생성async let 바인딩을 통한 Task 병렬 실행 특히 asnyc let 바인딩은 일부 태스크를 병렬로 실행하면서 (Task3, Task4) 다른 태스크는 서로 의존하며 순차적으로 실행해야 할 때(Task1, Task2, Task5) 비동기 흐름을 설계하는 강력한 메커니즘을 지원한다.   async let 구문은 여러 비동기 태스크를 병렬로 실행하는데 유용하지만, 이는 고정된 개수의 태스크를 다룰 때 적합하다.병렬로 실행해야..
Swift 공식문서 4. Collection Types https://docs.swift.org/swift-book/documentation/the-swift-programming-language/collectiontypes Documentation docs.swift.org Swift 공식 문서 보면서 내 맘대로 정리Swift에서 제공하는 Collection TypeArraySetDictionary모든 Collection 들은 변경 가능하다.var로 선언하면 값을 추가, 삭제, 변경 가능하다. (mutable)let으로 선언하면 추가, 제거, 변경 불가능 하다. (immutable)ArrayArray는 같은 타입의 값들을 순서대로 저장중복된 값이 여러 장소에 존재할 수 있다.빈 Array 생성var someInts = [Int]()Array의 모든 값을 동..
Concurrency (6) Testing Asynchronous Code 이전글 - Concurrency(5) Intermediate async/await & Checked Continuation Modern Concurrency in Swift 를 읽고 간단 정리  Apple에서 XCTest로 비동기 코드를 테스트하는 것은 역사적으로 복잡했었다.XCTWaiter, expectations 같은 방법을 사용해야 했고, 코드가 완료될 때 까지 기다렸다가 그 출력 값을 검증해야 한다.    Swift의 동시성 모델에서는 더 간단하다.비동기 테스트를 위한 메서드에 async를 선언await 키워드를 만나면 실행을 중단하고, 완료된 후 재개비동기 코드를 동기 코드처럼 자연스럽게 작성할 수 있음보다 복잡한 비동기 동작, 시퀀스 및 스트림과 관련된 경우에는 직접 테스트 인프라를 구축 필요..
Xcode - 알면 좋은 꿀팁 [WWDC24] Xcode Essentials를 보고 기억해두면 좋을 만한 것 정리 Xcode essentials - WWDC24 - Videos - Apple DeveloperEdit, debug, commit, repeat. Explore the suite of tools in Xcode that help you iterate quickly when developing apps. Discover tips and...developer.apple.comFilter Navigator파일명 별로 필터링하고 싶을 때, 하단 Filter Navigator 사용 타겟 범위 지정 가능 맨 오른쪽 아이콘 클릭하면 git 상태를 기준으로 파일 필터링 Find Navigatorshortcut : cmd + shift +..