전체 글 10

[UIKit] Migrating to the UIKit scene-based life cycle

Scene-based lifey cycle(Scene Delegate 도입)을 채택 하지 않은 프로젝트에서 경고가 떴었다.하지만 iOS 26, iPadOS 26, Mac Catalyst 26, tvOS 26, visionOS 26 에서 부터는 UIScene Life Cycle을 무조건 채택해야만 하게 되었다. 공식 문서에 따르면 앱이 제대로 실행되지 않을 것이라고 경고했다. In the next major release following iOS 26, UIScene lifecycle will be required when building with the latest SDK; otherwise, your app won’t launch. TN3187: Migrating to the UIKit scene-ba..

iOS/UIKit 2026.02.03

[Swift] 통합 로그 시스템: Logger / OSLog

개요개발을 진행하다 보면 디버깅을 위해 실제로 어떻게 동작하는지 로그를 확인할 필요가 있다.대개 간단하게 print()를 사용하는데 print문을 통해 특정 메서드의 실행 여부, 실행 순서, 데이터 확인 등을 확인하기에는 충분하지만 치명적이게 아쉬운 점이 있다.Xcode에서 앱을 실행하는 환경. Xcode 콘솔을 통해서만 확인이 가능하다는 점이다.앱 개발을 하면서 개발 환경말고 QA환경, 또는 Release 환경 등 다양한 사람, 다양한 환경에서 사용하다가 발생하는 흔치 않은 이슈가 발생할 때가 있는데 이런 문제를 디버깅해야할 때에도 로그를 확인할 수 있었으면 좋겠다라는 생각이 들곤 한다.이럴 때 유용한 것이 통합 로깅 시스템이다. 장점 (통합 로깅 시스템의 사용 이유)통합 로깅 시스템에 대해서 톺아보기..

iOS/Swift 2025.12.16

[Python][백준]7569 - 토마토 문제 풀이 회고

문제https://www.acmicpc.net/problem/7569철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이..

[Swift]Subscripts 공식문서 읽어보기 + String Subscript 구현

Swift를 가지고 코딩테스트를 준비하면 치명적인 Swift의 단점을 발견할 수 있다. 바로 다른 언어들에서 지원하는 String의 Index를 통한 접근이 기본적으로 지원하지 않는 다는 것인데, 이를 해결하기 위해서는 Subscripts를 통해 직접 구현해야한다. SubScripts에 대해 알아보자 Subscripts 콜렉션의 요소에 접근하는 방식 클래스, 구조체, 열거형은 콜렉션, 리스트, 또는 시퀀스의 멤버 요소에 접근할 수 있는 단축키(ShortCuts)인 서브 스크립트(subscripts)를 정의할 수 있다. 설정과 검색을 별도의 메서드 없이 인덱스로 값으로 구현하기 위해 서브 스크립트를 사용한다. 단순 텍스트로만 보면 이해하기가 쉽지 않을 수 있으나 코드로 보면 이해하기가 쉽다. var som..

iOS/Swift 2024.04.22

[UIKit]UIViewController LifeCycle: 공식 문서에 따른 이해

UIKit에서 View를 띄워주기 위해서 보통 UIViewController를 사용한다. 이 ViewController간의 전환이 일어나면서 뷰의 상태에 따라 일련의 과정이 있는데, 이 과정에 따라 메서드들이 호출되게 된다. 이를 우리는 보통 UIViewController의 생명주기라고 한다. 매우 기초적인 내용이지만 의외로 제대로 파헤쳐 보지 않은 상태로 개발을 진행하기도 한다. 필자도 그중 한명이라 취준중인 지금 시기에 정리를 해볼까 한다. 아마 블로그를 탐색하다 보면 해당 프로세스가 많이 보인다. 공식 문서에 올라와 있던 내용인 것으로 알고 있는데 필자가 글을 작성하는 시점에는 찾지 못했다. 필자가 공식 문서에서 찾은 View LifeCycle에 대한 정리는 다음과 같다. (일단은 loadView와..

iOS/UIKit 2024.04.11

[TroubleShooting][RxSwift]TextField의 중복 값 해결: distinctUntilChanged

⚠️발생 문제 회원가입에서 이메일 중복 검사, 비밀번호 유효성 검사, 비밀번호 재확인 검사, 닉네임 글자수 확인등의 조건을 확인하고 서버로 API요청을 하는 로직을 개발하던 중, 이메일 중복 검사를 확인했음에도 다시 확인하라는 메시지가 나오는 문제가 발생했다. 👀원인 inputEmail .filter({ !$0.isEmpty }) .debug() .drive(with: self) { owner, email in emailIsUsable.onNext(false) checkBtnActive.onNext(true) emailRequestable.onNext(owner.isValidEmail(email)) //유효성 검사를 통한 request가능 여부 } .disposed(by: disposeBag) 텍스트 필..

iOS/TroubleShooting 2024.01.11

[Swift] 전화번호 "-" 자동 삽입되는 로직 구현하기

개발을 하다보면 유저의 핸드폰 번호를 입력받을 일이 잦다. 그러다 보면 사용자가 "-"를 쓰지 않아도 자동으로 "-"를 넣는 로직을 구현하고 싶을 때가 많은데 이 로직을 처리하는 방법중 하나에 대해서 작성해볼까 한다. ⚠️알고리즘 적으로 흠이 많은 로직일 수도 있습니다. 검색을 통해 오신 분들은 참고 정도로 봐주시면 감사하겠습니다. 💡아이디어 사용자의 입력 발생 사용자의 입력 또는 이미 입력되어 있는(텍스트 필드에 존재하는) 값중 숫자만 filter 현재까지 입력된 텍스트 필드에 있는 값 또한 "-" 가 포함되어 있으므로 이를 제거 하여 숫자만 뽑아내는 작업이 필요함 사용자가 현재까지 입력한 값에 대한 배열 / 적용할 패턴에 대한 배열 / 패턴이 적용된 최종 출력 배열 생성 패턴 배열 앞자리부터 숫자가 ..

iOS/Swift 2024.01.08

[Swift][WWDC] Meet async/await in Swift(WWDC21) 정리 해보자

Meet async/await in Swift - WWDC21 - Videos - Apple Developer Swift now supports asynchronous functions — a pattern commonly known as async/await. Discover how the new syntax can make your code... developer.apple.com ⚠️ 해당 글은 필자가 WWDC를 보면서 공부할 목적으로 정리한 글입니다. 잘못된 번역 및 잘못된 해석이 있을 수 있으니, 잘 못된 부분이 있다면 지적해주시면 감사하겠습니다. - 필자가 이해 및 해석하여 추가 설명을 한 경우는 괄호 및 Italic로 표시 하였으니, 참고 바랍니다. 동기와 비동기의 차이 preparingTh..

iOS/Swift 2023.12.27

[Swift][UIKit] Static Cells, Dynamic prototypes와 뭐가 다르지? - UITableView

TableView를 스토리보드로 다루다 보면 Content를 설정할 수 있다. 많은 경우에 Dynamic Prototypes로 설정해서 TableView를 구성한다. 필자도 그렇고 아마 모두가 그럴 것이다. 하지만 클릭해보면 다음과 같이 Static Cells이 있다. Static Cells로 설정하면 크게 달라지는게 없어 보인다. 단순히 ProtoType Cells 자리에 Sections로 바뀌고 스토리보드 파일에 있는 TableView가 Prototype Content 글씨가 사라지고 별 변경은 없어보인다. 그럼 두가지가 무슨 차이가 있을까 문득 궁금해졌다. 그 차이를 한번 알아보자 Static Cells 사실 Static Cells를 알아보기도 쉽지 않았다. 검색했을때 자료도 거의 나오지 않았고 공..

iOS/UIKit 2023.08.16

[Swift] 옵셔널(Optional)을 알아보자

프로젝트를 진행하면서 코드를 작성하거나 Swift로 작성된 코드를 보다보면 뜬금 없는 ? 라던지 ! 라던지 이러한 Optional을 정말 많이 접하게 된다. 이러한 Optional 개념 때문에 컴파일 오류가 뜨는 경험을 아주 많이 했었다. 그럴 때마다 그냥 인터넷 검색해서 어떻게든 해결하면 이번엔 런타임 오류... 그래서 차라리 이럴바에 다른 언어처럼 런타임 오류만 나게 해주면 안되나... 이런 생각을 하기도 했었다. 공부를 했으면 됐을 것을...ㅎㅎ; 이렇게 필자를 아주 귀찮게 했던 옵셔널(Optional)에 대해서 알아보자. 옵셔널의 개요 Swift는 안전성을 굉장히 강조하는 언어다. 옵셔널은 그 안전성을 높이기 위해 도입된 스위프트만의 새로운 개념이다. 당장 구글에 Swift라고 쳐서 나오는 애플 ..

iOS/Swift 2023.08.01