Swift에서 Class와 Struct의 차이
개요 면접에서 자주 물어보는 질문 중 하나인 Class와 Struct의 차이점에 대해 딥다이브 해봤습니다. Class와 Struct의 차이 타입 Class는 참조 타입이고, Struct는 값 타입입니다. 클래스는 참조 타입이기 때문에 인스턴스를 변수나 상수에 할당하거나 함수에 전...
개요 면접에서 자주 물어보는 질문 중 하나인 Class와 Struct의 차이점에 대해 딥다이브 해봤습니다. Class와 Struct의 차이 타입 Class는 참조 타입이고, Struct는 값 타입입니다. 클래스는 참조 타입이기 때문에 인스턴스를 변수나 상수에 할당하거나 함수에 전...
개요 UIKit 환경에서 코드 베이스로 작업하려고 하다 궁금해서 찾아본 내용을 정리해봤습니다. UIScene, UIWindowScene, UIWindow func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.Conne...
개요 Pins 프로젝트에서 맵 어노테이션을 사용하면서 클러스터링을 구현해야 했는데, 이 과정에서 겪었던 문제와 해결 방법을 공유하려합니다. 문제 맵 어노테이션을 사용하면서 클러스터링을 구현하면서 겪었던 문제는 다음과 같습니다. 한 번 게시물을 클릭한 후 다시 맵으로 돌아오면 정상적으로 클러스터링이 되지 않는 문제가 있었습니다. 원인 기존...
들어가기에 앞서 해당 글은 Unit Testing for Code Performance 글을 번역한 글입니다. 최근 프로젝트에 유닛 테스트를 추가하면서, 관련 자료를 찾아보던 중 흥미로운 글을 발견하여 번역하게 되었습니다. 코드 성능을 위한 유닛 테스트 작성법 코드 성능을 테스트하기 위해 유닛 테스트를 작성하는 것이 가능하다는 것을 알고 계신가...
들어가기에 앞서 해당 글은 The importance of ‘final’ for security 글을 번역한 글입니다. 흥미로운 내용이 포함되어 있는 것 같아서 번역하게 되었습니다. 보안을 위한 final 키워드의 중요성 Swift에서 class나 actor을 만들 때, 만약 어떤 함수도 override하지 않기를 의도한다면 final 키워드를...
들어가기에 앞서 해당 글은 Concurrency and Multithreading in Swift iOS Development 글을 번역한 글입니다. 추가로 예제 코드를 작성하고, 저만의 생각을 덧붙였습니다. 개요 빠르게 변화하는 iOS 개발 환경에서, 매끄러운 유저 경험을 제공하기 위해 반응적이고 성능이 좋은 어플리케이션을 만드는 것은 중요합...
Accessibility An accessible app or game supports accessibility personalizations by design and helps everyone have a great experience, regardless of their capabilities or how they use their devi...
캐싱(Caching)이란? 캐싱은 자주 사용되는 데이터나 계산 결과를 빠르게 접근할 수 있는 메모리에 임시로 저장하는 기술입니다. 이렇게 하면 데이터를 다시 불러올 때 시간과 자원을 절약할 수 있죠. iOS에서는 이미지, API 응답, 데이터베이스 쿼리 결과 등 다양한 유형의 데이터를 캐시할 수 있습니다. 캐시 히트율(Cache Hit Rate)...
개요 기존에 DispatchQueue.main.sync를 사용하면 크래시가 발생한다는 것을 알고 있었는데, 그 이유가 궁금해서 한 번 정리해봤습니다. dispatchqueue.main.sync가 크래시나는 이유 기존 작업 실행 중 메인 스레드는 이미 실행 중인 작업(예: UI 업데이트, 이벤트 처리 등)을 처리하고 있습니다...
RunLoop란? RunLoop는 스레드와 관련된 기본 인프라의 일부입니다. RunLoop는 작업을 예약하고 들어오는 이벤트의 수신을 조정하는 데 사용하는 이벤트 처리 루프입니다. RunLoop의 목적은 할 일이 있을 때 스레드를 계속 바쁘게 유지하고, 할 일이 없을 때 스레드를 절전 모드로 전환하는 것입니다. RunLoop 관리는 완전히 자동으...