본문 바로가기

전체 글133

타입으로서 프로토콜에 관하여 타입으로서 프로토콜 일급객체 프로토콜 -Swift에서 프로토콜은 일급 객체다. 일급 객체란 특정 타입이 다음과 같은 특성을 가지고 있을 때를 말한다. 1) 변수나 데이터 구조에 저장 가능 2) 함수의 매개변수로 전달 가능 3) 함수의 반환값으로 사용 가능 4) 런타임에 생성 가능 따라서 프로토콜을 변수, 상수, 배열, 딕셔너리 등의 값으로 사용하거나, 함수의 매개변수나 반환값으로 사용할 수 있다는 것을 의미한다. 프로토콜의 일급 객체 특성은 프로토콜을 유연하게 사용할 수 있도록 한다. 프로토콜을 변수나 상수로 사용하기 protocol Describable { func describe() -> String } class Dog: Describable { func describe() -> String { r.. 2023. 6. 5.
WWDC2021 - ARC in Swift - Basics and beyond 에 관하여. ARC에 대한 개념을 정리하던 중, ARC에 대한 깊은 이해를 위해 WWDC의 ARC 관련 세션을 보고 정리해본다. Object lifetimes and ARC -객체의 수명주기와 ARC에 대해서 알아보자. 객체의 수명주기는 init() 초기화에서 시작되고, 마지막 사용에서 종료된다. ARC는 수명주기가 종료된 객체를 메모리에서 해제시킨다. ARC는 참조 카운트를 통해 객체의 수명주기를 추적한다. Swift의 컴파일러가 retain/release 작업을 주입한다. Swift의 런타임에 'retain' 은 참조 카운트를 증가시키고, 'release' 는 참조 카운트를 감소시킨다. 참조 카운트가 0이 되면 객체는 메모리에서 할당 해제된다. 이 작업들이 어떻게 작동되는지 예시를 통해 알아보자. 우리가 여행 앱.. 2023. 5. 31.
Swifty한 Swift 코드에 관하여 소개 Swift다운 코드란 무엇일까요? Swift 언어를 배우고 사용하면서, Swift의 기본 문법에 대해 이해하고, 어떻게 사용하는지 알아가며 경험을 쌓아왔습니다. 하지만 문득 이런 생각이 들었습니다. "내가 작성하는 코드는 좋은 코드인가?", "내가 Swift를 정확히, 효율적으로 사용하고 있는 것일까?" 좋은 코드라는 것은 여러 방면에서 광범위한 의미를 가질 수 있습니다. 하지만 우리가 사용하는 언어는 Swift이고, Swift는 Apple이 특정한 설계 원칙과 의도를 가지고 만든 언어입니다. 그러므로, 그 의도에 맞게 언어를 사용하는 것이 좋은 코드를 작성하는 가장 기본적인 목표가 될 것이라 생각합니다. 또한 어떤 강의에서 감명 깊게들은 말이 있습니다. "개발자의 기능 구현은 당연한 것이고, 이 .. 2023. 5. 30.
Kingfisher 라이브러리에 관하여 Kingfisher란? -Swift로 작성된 이미지 캐싱 라이브러리로, 웹 상의 이미지를 비동기적으로 다운로드하고 캐시하는데 사용된다. 이미지 다운로드 작업, 캐싱 작업 등을 쉽게 처리해주기 때문에 개발자에게 편리한 라이브러리다. Kingfisher의 주요 기능 1. 비동기 이미지 다운로드 -Kingfisher는 이미지 다운로드 작업을 비동기적으로 수행한다. 이로 인해 UI가 멈추거나 지연되는 일 없이 원활하게 작동한다. 2. 이미지 캐싱 -이미지는 한 번 다운로드 된 후에는 디스크와 메모리에 캐시된다. 이로 인해 같은 URL로부터 이미지를 여러 번 요청하더라도, 캐시된 이미지를 사용하기 때문에 앱의 반응성이 향상된다. 3. 이미지 처리 -Kingfisher는 다양한 이미지 처리 기능을 제공한다. 예를 .. 2023. 5. 28.
앱으로 문제 해결하는 순서와 방법(강의 정리) 이 내용은 "https://www.youtube.com/watch?v=BVdkEAarEn4" 강의 내용을 정리한 것입니다. 문제 상황 -본인이 구매하고 싶은 물품이 있고, 공동구매 할 사람을 찾고 있다고 상황을 가정해보자. 오픈 채팅방, 커뮤니티 등에서 공동구매를 할 사람들을 구해보지만, 공동구매를 하는 과정에 힘듦을 느낀다. 그래서 공동구매 플랫폼 앱을 직접 만들어 본다. 앱을 완성했지만, 공동구매를 구하는 중이라는 앱을 다시 오픈채팅방과 커뮤니티에 홍보한다. 분명 공동구매를 하는 작업을 편리하게 할 수 있도록 앱을 만들었지만, 결국 문제를 해결하지 못하고 같은 문제에 직면하게 된다. 문제가 무엇? -우리가 가진 문제가 무엇이었을까? 공구 플랫폼이 없던 것이 우리의 문제였을까? "공동구매 플랫폼이 없다.. 2023. 5. 27.
디자인 패턴 - MVC 패턴에 관하여 디자인 패턴 -간단하게 말하면 소프트웨어 개발방법을 공식화 한 것이다. 소프트웨어를 개발할 때 자주 발생하는 문제들이 있었고, 이를 해결하기 위해 사용되는 패턴, 구조를 공식화 한 것이다. -디자인 패턴은 소프트웨어를 개발할 때, 발생하는 다양한 문제에 대한 재사용 가능한 템플릿 해결방법이다. -디자인 패턴은 문제 해결에 대해 표준화된 접근 방식을 제공하여 개발자가 복잡한 설계 개념을 더 쉽게 이해하고 전달할 수 있도록 한다. 디자인 패턴의 장점 1. 반복되는 문제 해결 개발 중에 직면하는 문제들에 대해서 이미 입증된 해결책을 가지고 있는 패턴이기 때문에 효과적으로 문제를 해결할 수 있다. 2. 향상된 커뮤니케이션 개발자 간 커뮤니케이션에서 "우리는 State 패턴을 사용하고 있어요", "여기서는 Sin.. 2023. 4. 4.