응원 수익은
주인장에게 큰 힘이 됩니다 🥹

kakaopay QR kakaopay QR

이미지를 터치하면 카카오페이로 연결됩니다!

QR 코드를 카카오페이 앱에서 촬영해주세요!

 
프로필 로고 차니 기술 블로그
  • 홈
  • 일상
  • 취미
  • 회고
  • 방명록
  • Github
[Swift] @frozen 그리고 @unknown default, default 차이

[Swift] @frozen 그리고 @unknown default, default 차이

1. Frozen Enum과 Non-frozen Enumenum Menu { case chiken case pizza}위와 같은 열거형이 있다고 가정해 봅시다.열거형에 case를 계속해서 추가할 수 있는 열거형을 `Non-frozen Enumeration`(얼지 않은 열거형)라고 합니다.일반적으로 가장 많이 사용하는 유형이죠.@frozen enum Menu { case chiken case pizza}그렇다면 반대로 enum 선언 시 `@frozen` 키워드를 넣어 열거형을 정의하면 `Frozen Enumeration`(얼은 열거형)이 되어 더 이상 case가 추가되지 않을 것을 암시함과 더불어 컴파일 성능이 향상된다고 합니다. case가 더 이상 추가 되지 않을 것이 확실하다면 `..

  • format_list_bulleted App/iOS
  • · 2024. 8. 13.
  • textsms
[Swift] 순환(재귀) 열거형 - Recursive Enumerations

[Swift] 순환(재귀) 열거형 - Recursive Enumerations

오늘은 야곰님의 Swift 프로그래밍 책을 보며 처음 보는 열거형이 있어서 정리하는 글을 작성하려고 한다.1. 순환 열거형 이란?순환 열거형은 열거형 케이스의 연관 값이 열거형 자신의 값이고자 할 때 사용합니다. 재귀적으로 해당 열거형 케이스를 반복하게 되므로 `indirect` 키워드를 사용하여 명시하도록 한다.Swift에서 열거형은 n개의 case를 생성할 수 있고 그 case는 연관 값(parameter)를 가질 수 있다는 건 알고 있을 것이다.위 말을 풀어보면 case의 parmeter로 `자기 자신`이 사용된다는 의미이다.텍스트만 보면 이해가 잘 안될 수도 있는데(내가 그랬음) 예제를 하나하나 뜯어보면 쉽게 알 수 있다.2. 예제다음은 간단한 산술 표현식을 저장하는 열거형이다.이 열거형은 숫자,..

  • format_list_bulleted App/iOS
  • · 2024. 8. 8.
  • textsms
[Swift] Simulator를 이용한 위치 테스트 (feat. 지오펜싱)

[Swift] Simulator를 이용한 위치 테스트 (feat. 지오펜싱)

iOS에서 위치 테스트 시 번거로운 점 안드로이드와 달리 Fake GPS 사용이 불가하기 때문에 실제로 발품을 팔아야함 실시간 로그를 볼 수 없기 때문에 문제 발생 시 원인 파악이 어렵다 사소한 수정이 발생해도 빌드 후 다시 발품을 팔아야함 하여 실제 단말기에서는 방법은 없었지만 시뮬레이터에서 가상 위치로 테스트할 수 있는 방법을 공유드립니다. 하기 예제는 애플 공식 문서를 참고하여 지오펜싱(Geofencing : 지리와 울타리의 합성어)으로 준비하였습니다. 1. 위치 서비스 코드 작성 1-1. Project - Signing & Capabilities 위치 사용을 위해 Background Modes 추가 후 Location updates 항목을 체크해주세요. 1-2. Info.plist 위치 권한 팝업..

  • format_list_bulleted App/iOS
  • · 2021. 12. 27.
  • textsms

[Swift] Retain Cycle

1. Retain Cycle Retain Cycle이란 메모리가 해제되지 않고 유지되어 메모리 누수가 발생하는 현상을 말합니다. 클래스간 참조는 default로 강한(strong) 참조이기 때문에 각각의 클래스에서 참조가 발생한다면 강한 참조로 인해 메모리에서 해제되어야 할 상황에도 해제되지 않는 현상이 발생합니다. 이는 곧 메모리 누수(Memory Leak)로 이어집니다 2. Delegate 2-1. delegate를 weak var로 선언해야하는 이유 Retain Cycle이 발생하기 때문입니다. 이러한 상황을 방지하고자 하는 것이 delegate 참조 수준을 weak로 낮추는 방법입니다. 2-2. weak var 적용 적용 전 코드 import UIKit protocol CustomDelegate ..

  • format_list_bulleted App/iOS
  • · 2021. 12. 7.
  • textsms
[Swift] Delegate Pattern

[Swift] Delegate Pattern

오늘은 iOS 앱 개발을 한다면 꼭 알아야 할 Delegate Pattern에 대해 정리해보겠습니다. 1. Delegate란 무엇인가? Delegate의 사전적 의미를 보면 대리자, 위임자 정도로 해석이 가능합니다 '뭘 위임한다는 거지...?' 라는 의문이 들 텐데, Swift에서는 Delegate 패턴을 통해 특정 기능을 위임하는 것이 가능합니다 한 객체에서 모든 프로세스를 처리하기엔 가독성, 코드 재사용성 측면에서 많은 손해를 보기 때문입니다 2. 사용법 이제는 델리게이트가 뭔지도 알겠고 왜 쓰는지도 알겠는데 어떻게 쓰는 걸까? delegate를 제대로 사용하기 위해서는 아래 내용들을 이해하고 있어야 합니다 프로토콜 (Protocol) : 대리자가 수신자에게 전달할 내용의 약속(규칙)입니다 수신자 (..

  • format_list_bulleted App/iOS
  • · 2021. 11. 22.
  • textsms
[Swift] Custom Scheme으로 앱 실행하기; App to App

[Swift] Custom Scheme으로 앱 실행하기; App to App

1. 개요 Custom Scheme 형식 custom-scheme://?callback=appCalled&message=앱 호출하기 custom-scheme : 앱의 스키마명을 의미합니다. 해당 값에 대한 설정은 다음 단계에서 진행합니다. ?{key}={value} : 앱을 호출할 때 전달할 파라미터입니다. &로 연결되어 계속 추가할 수 있습니다. Android iOS Difference iOS는 host가 없다 안드로이드와 달리 특정 ViewController를 열수 없고 단순 앱 호출이라는 점입니다. 물론 구현 방식에 따라 안드로이드와 동일하게 동작하게끔 구현할 수도 있습니다. 2. Custom Scheme 설정 Project - Info 항목 최하단에 URL Types 항목이 있습니다. Identi..

  • format_list_bulleted App/iOS
  • · 2021. 11. 3.
  • textsms
[Swift] GCD - Dispatch Queue

[Swift] GCD - Dispatch Queue

1. 들어가기 전에 GCD를 공부하기 전에 우리는 Queue라는 자료구조를 알고있습니다. 먼저 들어온 놈이 먼저 처리된다.. 라는건데 매표소에 줄을 서서 티켓을 산다고 생각하시면 편합니다. 이걸 먼저 얘기하는 이유는 앞으로의 내용이 큐와 연관되어있기 때문입니다! 2. GCD와 Dispatch Queue GCD(Grand Central Dispatch)는 스레드에 대한 관리를 개발자가 아닌 OS에서 처리할 수 있도록 애플에서 개발한 것 입니다. GCD에선 Dispatch Queue를 통해 작업을 관리합니다. Dispatch Queue에는 크게 두 종류로 나뉘는데 아래에서 조금 더 살펴볼게요. 2-1. Serial Queue - Main Queue(main) Serial Queue 등록된 작업을 순차적으로 ..

  • format_list_bulleted App/iOS
  • · 2021. 10. 14.
  • textsms
[iOS] 자동 참조 카운팅 - Automatic Reference Counting(ARC)

[iOS] 자동 참조 카운팅 - Automatic Reference Counting(ARC)

안녕하세요 차니에요~~! Swift에서는 앱의 메모리 사용을 관리하기 위해 ARC(Automatic Reference Counting)을 사용합니다. 오늘은 ARC에 대해 알아보도록 하겠습니다. 1. ARC(Automatic Reference Counting) 인스턴스의 참조 횟수를 기준으로 ARC가 알아서 더이상 사용하지 않는 인스턴스를 메모리에서 해지합니다. 참조 횟수는 클래스 타입의 인스턴스에만 적용되고 값 타입인 구조체 열거형 등에는 적용되지 않습니다. 개발 용어는 대부분 한눈에 알수 있을 정도로 네이밍 된 경우가 많습니다. 하나 하나 뜯어보면.. Automatic - 자동적인 Reference - 참조 Counting - 계산 이걸 그럴싸하게 조합을 해보면 "자동 참조 카운팅(계산)" 정도로 해..

  • format_list_bulleted App/iOS
  • · 2021. 9. 28.
  • textsms

[Swift] 프로토콜 지향 프로그래밍(Protocol Oriented Programming, POP)

안녕하세요~ 차니에요! 오늘은 Swift 언어의 특징 중 하나인 POP에 대해 알아보겠습니다. 1. Protocol Oriented Programming(POP) 탄생 배경 일반적으로 OOP에서 클래스의 상속 개념을 통해 공통 기능들을 모듈화하여 사용할 수 있었으나, 구조체 혹은 열거형의 경우에는 상속이 불가하기에 같은 타입에 대해서 공통적인 기능 구현을 위해서는 다른 방법을 이용해야 합니다. 이를 해결하기 위한 방안이 Apple WWDC15(Swift 2)에서 Extension 발표되었습니다. Protocol(청사진)을 구현하고 Extension으로 해당 프로토콜의 기능을 확장하는 형태로 사용합니다. 이를 프로토콜 초기 구현(Protocol Default Implementation)이라고 표현합니다. ..

  • format_list_bulleted App/iOS
  • · 2021. 9. 27.
  • textsms
[Swift] 싱글톤 패턴(Singleton Pattern)

[Swift] 싱글톤 패턴(Singleton Pattern)

안녕하세요~ 차니에요! 오늘은 싱글톤 디자인 패턴에 대해 포스팅하겠습니다. 1. 싱글톤 패턴이란? 애플리케이션이 시작될 때 객체의 인스턴스를 최초 1회만 생성(static)하여 사용하는 디자인 패턴 2. 싱글톤 클래스 생성 방법 class SingletonClass { static let shared = SingletonClass() private init() {} } 스위프트에서는 static let으로 객체의 인스턴스를 할당해주면 끝입니다! 그리고 인스턴스가 추가로 생성되는 것을 방지하기위해 init() 함수의 접근 제어자를 private으로 선언합니다. 3. 싱글톤 사용 예제 class AppInfo { static let shared = AppInfo() private init() {} var m..

  • format_list_bulleted App/iOS
  • · 2021. 9. 1.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • navigate_next
전체 카테고리
  • ROOT (115)
    • App (43)
      • Android (3)
      • iOS (40)
      • React Native (0)
    • Dev (11)
      • Cordova (7)
      • Node.js (4)
    • DevOps (12)
    • Issues (4)
    • IDE & Tool (4)
    • CS (2)
      • 정보처리기사 (2)
    • 일상 (28)
      • 차니 일기 (7)
      • 단식 일기 (21)
    • 취미 (8)
      • 일본어 (5)
      • 수영 (3)
    • 회고 (3)
전체 방문자
오늘
어제
전체
최근 댓글
인기 글
최근 글
태그
  • #회고
  • #Swift
  • #일본어
  • #수영
  • #CodeCommit
  • #단식
  • #jlpt
  • #도커
  • #IOS
  • #안키
  • #AWS
  • #차니일기
  • #xcode
  • #SPM
  • #cordova
  • #Android
  • #anki
  • #다이어트
  • #first-class citizen
  • #보식
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바