감자주먹밥
close
프로필 배경
프로필 로고

감자주먹밥

  • 분류 전체보기 (83)
    • IOS (1)
      • Swift (14)
      • RxSwift (2)
      • UIKit (31)
      • SwiftUI (9)
      • Test (4)
    • 코퉤엣 (12)
    • Git (2)
    • Android (8)
  • 홈
  • 태그
  • iOS
  • Github
  • 방명록
[Swift] weak self 를 언제 쓰는게 좋을까?

[Swift] weak self 를 언제 쓰는게 좋을까?

지금까지 순환참조는 안돼~ 메모리 릭 안돼~ 하면서 무작정 사용했던 weak self.하지만 유튜버의 이 질문에 대한 영상을 보고 다 같아 붙일게 아니라, weak self 역시 어떻게 사용할지 고려하고 작성해야한다는걸 알았다. 그 내용을 정리해보자이 유튜버의 영상을 보고 정리했습니다. 먼저 예제 코드.class ViewModel { func format(_ value: Int) -> String { return "number: \(value)"} var handler: ((Int) -> Void)? = nil func code() { // 1. let formatted = [1, 2, 3].map { [weak self] item in ..

  • format_list_bulleted Swift
  • · 2025. 3. 10.
  • textsms
KeyPath 알아보기 + KVC/KVO

KeyPath 알아보기 + KVC/KVO

KeyPathSwiftUI 에서 List에서 사용해보고, Combine에서도 assign 메서드에서 사용을 했었던 KeyPath를 알아보자Swift4!! 에 도입된 기능!!객체의 프로퍼티나 서브스크립트에 대한 경로를 type-safe하게 참조하는 기능컴파일 타임에 프로퍼티에 접근하거나 수정할 수있고, 코드 안전성과 가독성을 높여준다.\\.KeyPath는 역슬래쉬 타입이름.프로퍼티 와 같은 형태로 사용된다.struct A { var value: Int = 10 }class Person { var name: String = "NAME"}let a1 = A()print(a1[keyPath: \\.value])let a2 = A()let path = \\A.value print(a2[keyPath:..

  • format_list_bulleted Swift
  • · 2025. 2. 23.
  • textsms

Swift 고차함수 정리 - map, flatMap, compactMap / filter, reduce, forEach

고차함수 (High order function)다른 함수를 매개변수로 받거나 반환하는 함수를 의미한다.클로저와는 다르다 (클로저는 이름이 없는 익명함수) 고차함수가 매개변수로 받는 함수가 클로저일때가 많아서 헷갈릴수는 있지만, 고차함수 안에서 클로저를 자주 사용하는 것 뿐 같은 개념은 아니다.특징가독성함수형 프로그래밍 스타일재사용성 높음maplet numbers = [1, 2, 3, 4, 5]let twoTimesNumbers = numbers.map{ $0*2 }//[2, 4, 6, 8, 10]각 요소에 동일한 연산을 적용해 새로운 배열을 반환한다.for-in문과 비교했을 때 차이는 없지만, 속도면에서 차이가 있다. (요소가 많을수록 차이 남)flatMaplet numbers = [[1, nil], [..

  • format_list_bulleted Swift
  • · 2025. 2. 1.
  • textsms
Swift 정규표현식 사용하기 (Regex Builder, NSRegularExpression, NSPredicate)

Swift 정규표현식 사용하기 (Regex Builder, NSRegularExpression, NSPredicate)

정규 표현식(정규식) 은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어로 문자열 검색, 치환에 많이 사용된다.대표적인 예시로, 전화번호, 이메일 등의 형식으로 입력을 받았을 때 그 형식이 맞는지를 확인하는 방식으로 자주 사용된다.Swift도 역시 정규식을 사용할 수 있다.정규식 문법정규식 문법은 외우고 있으면 신기할정도다. 자주 쓰지 않고 필요할때만 문법을 찾아서 조합해 사용하다보니 자주 까먹게된다.자주 사용하는 것들은 예제로 알아보고자세한 문법은 https://regexr.com 에서 RegEx Reference 를 참고하면서 만들면 된다.테스트도 가능하기 때문에 유용한 사이트다정규식 문법은 드림코딩 유튜브에서 잘 설명되어있으니 참고하기. 패턴설명.임의의 한 문자와 일치합니다. (..

  • format_list_bulleted Swift
  • · 2025. 1. 31.
  • textsms
Swift 특징 프로토콜 지향 프로그래밍 (POP) + 프로토콜

Swift 특징 프로토콜 지향 프로그래밍 (POP) + 프로토콜

Swift의 프로토콜은 무엇인가, 어떻게 활용하나- 프로토콜의 요구사항은 무엇인가- 프로토콜 확장(Protocol Extension)을 사용하는 이유는?- 프로토콜 지향 프로그래밍(Protocol-Oriented Programming)의 장점은?- 상속(Inheritance)과 프로토콜(Protocol)의 차이점은?- 클래스 상속을 사용할 때의 장단점은?- 다중 상속(Multiple Inheritance)이 불가능한 이유는?- 프로토콜 준수(Conformance)를 통해 다형성을 구현하는 방법은?Swift의 특징Swift는 2014년 애플이 발표한 언어로 현재(2025) Swift 6 까지 버전이 나와있다.Apple 생태계에서 사용될뿐만 아니라 서버, 아두이노 등 활발하게 영역을 넓히고 있다.Apple이..

  • format_list_bulleted Swift
  • · 2025. 1. 27.
  • textsms

ARC (자동 참조 카운트) 자세히 알아보기 + 참조 키워드(weak, strong, unowned)

정의ARC(Automatic Reference Counting)는 메모리 구조에서 힙 영역을 관리한다.Swift에서 힙에 메모리를 할때는 참조타입을 생성할 때 자동으로 할당하게 된다.ARC는 할당된 메모리가 더 이상 필요하지 않을 때 자동으로 해제한다.C++에서는 new, delete 키워드를 통해 클래스 인스턴스를 생성할 때 메모리를 할당, 해제 한다.특징컴파일 시점에 언제 참조되고 해제되는지 결정되어 런타임때 그대로 실행된다.장단점장점개발자가 참조 해제 시점을 파악할 수 있음RunTime 시점에 추가 리소스가 발생하지 않음단점순환 참조 발생 시 영구적으로 메모리가 해제되지 않을 수 있음MRC? ARC?둘 다 Reference Counting을 하지만, Manual, Automatic의 차이가 있다.M..

  • format_list_bulleted Swift
  • · 2025. 1. 23.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (83)
    • IOS (1)
      • Swift (14)
      • RxSwift (2)
      • UIKit (31)
      • SwiftUI (9)
      • Test (4)
    • 코퉤엣 (12)
    • Git (2)
    • Android (8)
최근 글
인기 글
태그
  • #swiftUI
  • #ios
  • #Kotlin
  • #programmers
  • #android
  • #백준
  • #tableView
  • #코딩테스트
  • #UIKit
  • #SWIFT
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.