본문 바로가기

전체 글131

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.
CodingKey에 관하여 CodingKey -애플의 정의에 따르면 "A type that can be used as a key for encoding and decoding." 인코딩 및 디코딩을 위한 키로 사용할 수 있는 타입 Codable, CodingKey 프로토콜을 채택하면 인코딩 및 디코딩 프로세스 중 사용되는 키 이름을 사용자 정의할 수 있다. Post 구조체의 id가 바로 Key를 말하며 저 Key의 이름을 내 맘대로 커스텀해서 쓸 수 있다는 말씀이다. 우리 Swift에서는 변수나 상수의 이름을 소문자 카멜케이스를 사용해서 정의한다. 하지만 우리가 변환할 API 문서 형식(예 - JSON)은 다른 형태로 Key의 이름을 가지고 있을 때가 있다. 이런 경우에 원칙대로 Key 이름을 정의하지 못하는 단점을 CodingK.. 2023. 3. 31.
HTTP에 관하여 HTTP(Hyper Text Transfer Protocol) -웹 상에서 클라이언트와 서버 간 통신을 위한 프로토콜이다. -요청(request)과 응답(response)으로 구성되어 있으며, 기본적으로 80번 port(각 프로토콜의 데이터가 오고가는 통로)를 사용한다. -예를 들어 클라이언트(웹 브라우저)가 HTTP를 통해 서버에 정보를 요청하면, 서버는 클라이언트에게 맞는 정보를 보내줌. iOS 개발자가 HTTP를 알아야 하는 이유 1. 웹 서비스 및 API와의 통신 대부분의 앱들이 웹 서비스 또는 API를 사용하여 원격 서버에서 데이터를 가져오거나 서버로 데이터를 전송하는 작업들을 하고 있다. HTTP를 이해하면 개발자가 적절한 HTTP 요청을 실행해서 서버에서 리소스를 만들고, 읽고, 업데이트하고.. 2023. 3. 30.