일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 아이폰
- SWIFT
- delegation
- View Life Cycle
- Info.plist
- Failed to register bundle identifier
- contentInset
- Modality
- 독서후기
- Navigation
- 책후기
- Codegen
- SWIFTUI
- 야곰아카데미
- NumberFormatter
- 스위프트
- viewcontroller
- Mock
- Structures and Classes
- NotificationCenter
- 스타트업주니어로살아남기
- 부트캠프
- 독후감
- mvvm
- @available
- IOS
- human interface guidelines
- xcode
- UIResponder
- roundingMode
- Today
- Total
목록Software Engineering/Swift (21)
호댕의 iOS 개발

왜 고차함수를 사용해야 할까? 디바이스의 성능이 향상되면서 기기의 성능이 좋아지면서 동시에 여러가지 일을 처리할 수 있게 됐다. 하지만 여기서도 문제가 발생한다. 하나의 객체에 동시에 여기저기서 접근하는 동시성 문제가 발생하게 되는 것이다. 이를 해결하기 위해선 2가지 방법이 존재한다. 동시에 접근하더라도 차례대로 접근할 수 있도록 제어를 한다. 객체를 불변의 상태로 만들어서 언제나 복사해도 무방한 형태로 복사해서 사용을 한다. 첫 번째 방법의 경우 연산이 너무 길어지는 단점이 존재한다. 따라서 성능 상으로 좋은 해결책은 아니라고 판단했다. 다음 해결책을 수행하기 위해선 객체 별로 프로퍼티(상태)를 갖고 있는 객체 지향 프로그래밍이 오히려 단점으로 작용한다. 따라서 이 경우를 위해 순수 함수를 사용하는 ..

reverse()와 reversed() 메서드 모두 배열을 뒤집는 메서드들이다. 🤷🏻♂️ 그렇다면 이 둘은 어떤 차이가 있을까? # reverse 먼저 Apple Developer 문서를 살펴보자! reverse()에 대한 문서를 보면 이렇게 나와 있다. Reverses the elements of the collection in place. collection의 요소를 그 자리에서 뒤집는다는 것이다. 공식문서에선 reverse()의 시간 복잡도를 이렇게 말하고 있다. Complexity: O(n), where n is the number of elements in the collection. 그렇다면 왜 O(n)의 시간 복잡도를 갖는 것일까?? reverse() 가 어떻게 배열을 뒤집는지 그림을 보면..

해당 글은 [Swift 공식문서 - Structures and Classes]를 읽고 작성한 내용입니다. Class와 Structure는 코드의 building block이 되는 유연한 범용 구조이다. 상수, 변수, 함수를 선언하는 것과 동일한 방법으로 구조체와 클래스를 정의할 수 있다. 그렇다면 Class와 Structure의 공통점과 차이점은 무엇일까? Class와 Structure의 공통점 값을 저장하는 프로퍼티를 정의할 수 있다. 기능을 제공하는 메소드를 정의할 수 있다. Subscript 구문을 사용해서 값에 접근할 수 있도록 Subscript를 정의할 수 있다. Initializer를 정의할 수 있다. 기본 기능 이상으로 기능을 확장할 수 있다. 특정 종류의 기능을 제공하는 프로토콜을 준수한다..

평소 Optional 값은 풀기 귀찮은 값 정도로 생각하고 있었다. 왜 Optional 값을 사용해야 하는지 깊은 고민을 해보지 못했다. 그래서 이런 Optional 값에 대해 조금 더 이해를 해보고자 Swift Programming Language와 Apple Developer Document에서 Optional 관련 내용을 찾아봤다. Swift Programming Language를 보면 optional을 다음과 같은 경우에 사용한다고 말해주고 있다. “You use optionals in situations where a value may be absent.” The Basics — The Swift Programming Language (Swift 5.5) The Basics Swift is a ..
야곰 아카데미에 들어가기 전... 먼저 나는 코딩에 대해 한 번도 배워본 적이 없다. 부동산학과를 나와 코딩 비슷한 것도 해본 적이 없다. 하지만 프로그래밍을 배워보고 싶다는 생각은 2년 전부터 했던 것 같다. 부동산학과 수업을 들으면서 다양한 프롭테크 기업을 접하게 되었고 스스로 이런 서비스를 만들 수 있는 개발에 관심이 갔다. 하지만 주변에 컴공 친구도 없었고, 개발에 대해 알지 못했기 때문에 쉽사리 도전을 못했다. 이후로 지금까지 했던 경험과 전공에 맞춰 취업 준비를 하다가 IT 기업에서 Recruiting 관련 업무를 하게 됐다. 업무를 하면서 정말 많은 개발자들의 이력서를 볼 수 있었다. 특히 신입 개발자들의 이력서를 많이 볼 수 있었다. 그렇게 보다보니 어떻게 준비하면 개발자로 커리어 전환을 ..