iOS

·iOS/Swift
안녕하세요, 루피입니다. 오늘은 저번 시간에 이어 DispatchQueue에 대해 공부해 보도록 하겠습니다. 만약에 이해가 잘 가지 않는다면, 저번 글 을참고하시면 좋을 거 같습니다! 바로 시작하겠습니다.DispatchQueue란?DispatchQueue가 무엇인지에 대해 작성하기에 앞서 저번 글에 있던 내용을 상기시켜 보도록 하겠습니다.GCD(Grand Central Dispatch)는 멀티코어 하드웨어의 자원을 효율적으로 활용할 수 있게 도와주는 시스템 수준의 기술입니다. 간단하게 말해, GCD를 사용하면 여러 코어에 걸쳐 작업을 병렬 처리할 수 있습니다. 우리는 GCD 덕분에 Thread 관리나 스케줄링에 대한 고민을 줄이고 DispatchQueue에 작업을 할당하면 GCD가 알아서 동시성 프로그..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 GCD에 대해 공부해 보겠습니다. 바로 시작합니다.GCD가 무엇인가?GCD(Grand Central Dispatch)는 멀티코어 하드웨어의 자원을 효율적으로 활용할 수 있게 도와주는 시스템 수준의 기술입니다. 간단하게 말해, GCD를 사용하면 여러 코어에 걸쳐 작업을 병렬 처리할 수 있습니다. 많은 분들이 GCD와 Dispatch라는 용어를 같은 맥락으로 이해하는데, 공식 문서에서도 그렇게 설명하고 있네요.GCD를 우리는 왜 알아야 하는가?만약 우리가 오직 메인 스레드만을 이용해 앱을 만든다면 어떨까요? 간단한 앱에서는 큰 문제가 없을 수 있지만, 네트워크 통신이나 여러 Task를 동시에 처리해야 하는 복잡한 앱에서는 상황이 달라지게 되는데요!메인 스레드가 모든 업무를 ..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 DispatchObject에 대해 공부 해보도록 하겠습니다. 바로 시작합니다.DispatchObjectDispatch Type의 가장 기본적인 Class 입니다. 설명에 따르면 DispatchQueue, DispatchGroup 그리고 DispatchSource를 포함하여 많은 Dispatch Object 타입이 있다고 합니다. 또한, 이 기본 Dispatch Object 인터페이스들은 iOS 앱 개발 시, 실제 작업의 흐름과 리소스 관리를 보다 세밀하게 제어할 수 있도록 도와준다고 하는데요. 예를 들면, 메모리 관리는 물론, 작업 실행을 일시 중지하고 재개하는 기능, 객체에 관련된 추가 정보를 설정하는 기능, 작업 중 발생한 데이터를 로깅하는 등의 다양한 작업을 수행..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다! 오늘은 Swift 프로토콜에 대해 정리해 보도록 하겠습니다. 바로 시작합니다.1. 프로토콜이란?특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. 쉽게 생각하면 프로토콜이란 일종의 약속입니다. 프로토콜은 직접 구현하지 않고 약속만 합니다.너는 나를 채택하면 이런 변수를 가지고 있어야!너는 나를 채택하면 이런 메서드를 가지고 있어야 해!라고 약속을 하는 건데요. 이때 약속에 대한 직접 구현은 구조체, 클래스, 열거형 등을 통해 이루어져야 합니다.  즉, 프로토콜은 정의를 하고 제시를 할 뿐이지 스스로 기능을 구현하지는 않습니다!!! 우선 프로토콜을 사용하는 방식에 대해서 먼저 살펴 보도록 하겠습니다.1)  프로토콜 선언protocol..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다! 오늘은 Swift 공식문서를 바탕으로 Where 에 대해 공부해 보겠습니다. 바로 시작합니다.Where 절 이란?where 절은 특정 패턴과 경합하여 조건을 추가하는 역할을 합니다. 우리는 특히 크게 두 가지 용도로 사용할 수 있습니다.패턴과 결합하여 조건 추가타입에 대한 제약 추가쉽게 말해 특정 패턴에 Bool 타입 조건을 지정하거나 어떤 타입의 특정 프로토콜 준수 조건을 추가하는 등의 기능이 있습니다.예제 코드로 알아보기글을 적는 거보다 아무래도 코드 몇 줄 적어보는게 더 이해가 빠르지 않을까요??? 바로 코드로 알아보겠습니다.1. 값 바인딩에서let tuples: [(Int, Int)] = [(1, 2), (1, -1), (1, 0), (0, 2)]for t..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다! 오늘은 Swift 공식문서를 바탕으로 제네릭에 대해 공부해 보겠습니다. 바로 시작합니다.제네릭이란?제네릭은 쉽게 말해 모든 타입에 동작할 수 있는 유연하고 재사용 가능한 함수와 타입을 작성할 수 있도록 돕는 Swift의 강력한 도구입니다. Swift 표준 라이브러리 대부분은 제네릭 코드로 되어 있다고 합니다. 예를 들어, 우리가 자주 사용하는 Array, Dictionary, Set 등의 타입은 모두 제네릭 컬렉션입니다. 우리가 Int 나 String 타입의 요소를 갖는 배열을 갖는다고 해서 그에 맞게 컬렉션을 새롭게 만드는 게 아니라 우리는 타입만 정해주면 되지 않나요?? 이게 제네릭이 가져다 주는 강력함입니다! 코드를 통해 보겠습니다.func swapTwoIn..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 Swift 메모리 관리의 핵심인 ARC에 대해 정리해보겠습니다. Swift 공식 문서를 바탕으로 ARC의 기본 동작 원리부터, 메모리 누수의 주범인 강한 참조 사이클이 왜 발생하는지, 그리고 weak와 unowned를 사용해 이를 어떻게 해결하는지 총정리해 보겠습니다. 바로 시작합니다.1. ARC란? ARC는 Automatic Reference Counting(자동 참조 카운팅)의 약자로, Swift가 앱의 메모리를 추적하고 관리하는 핵심 메커니즘입니다. 클래스 인스턴스처럼 참조 타입 데이터는 Heap이라는 메모리 영역에 저장되는데, ARC는 이 인스턴스가 더는 필요 없을 때 자동으로 메모리에서 해제해주는 역할을 합니다.잠깐 그러면 struct 나 enum 같은 값타입은 ..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다. 저번 시간에는 공식문서를 의역해보고 정리해 봤다면, 오늘은 Delegate 패턴을 직접 구현해 사용해 보고 정리하는 시간을 가져보려 합니다. 바로 시작하겠습니다.Delegate 패턴을 왜 사용하는가?Delegate 패턴을 왜 사용할까요? 일단 Delegate 패턴이 무엇인가? 에 대한 답변을 먼저 찾아보겠습니다!Delegate 패턴 쉽게 위임자 패턴입니다. 무슨 말이냐고요?? 조금 더 쉽게 말해 보겠습니다!! 내가 해야 하는 일이 있어요 ㅠㅠ 아 근데 내가 하기 너무 귀찮단 말입니다. 그러던 중 한 녀석이 보이는 거죠. 그러고 저는 말합니다. 아니 외칩니다. 야 너가 해!! 그냥 깡패가 따로 없나요??? ㅋㅋㅋㅋㅋㅋㅋ 이런 식으로 다른 객체에게 역할을 위임한다고 ..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다. 오늘은 Delegate 패턴 공식문서를 의역하고 정리해보겠습니다. 바로 시작하겠습니다.이벤트를 Delegate를 통해 처리하기Overview앱에서 발생하는 이벤트를 Cocoa 객체와 상호작용하여 처리할 때, Delegate를 사용할 수 있습니다.Delegate 프로토콜 채택하기Cocoa API는 종종 Delegate 메서드가 포함된 프로토콜을 제공합니다. 예를 들어 사용자가 창 크기를 조정하는 이벤트를 발생하면, 해당 이벤트를 감지한 클래스(위임자)가 지정된 대리자의 메서드를 호출합니다. 이를 통해 앱이 이벤트에 어떻게 반응할지 커스텀할 수 있습니다. 예제는 NSWindowDelegate 프로토콜을 채택하고, 그 중 하나인 window(_:willUseFullSc..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다. 오늘은 공식문서를 바탕으로 KVO(Key-Value Observing) 디자인 패턴에 대해 정리해 보겠습니다. 바로 시작하겠습니다.한 객체의 속성 변경 사항을 다른 객체들에게 알립니다.  공식문서 제일 상단에 쓰여있는 문구입니다.다른 객체의 속성을 지켜보고 있다가. "어 바뀌었네?" 하고 다른 객체에게 "야!! 저기 바뀌었어"라고 말해주는 거 같습니다. RxSwift로 프로젝트를 진행하면서, 배운 구독하고 있다가 변화가 감지되면 반응한다는 개념과 유사한 거 같은데요?? 맞습니다. KVO 는 코코아 프레임 워크에서 제공하는 기본적인 관찰 메커니즘으로, Objective-C 런타임을 기반으로 동작합니다. 따라서 이와 유사하게 옵저버 디자인 패턴 방식을 채택해 써드 파..
kimsangjunzzang
'iOS' 카테고리의 글 목록 (4 Page)