Delegate Pattern팀 프로젝트 시작 전 선행학습(챌린지 반 수업 과제) 델리게이트 패턴이란?보통 Table View && Collection View 에서 많이 사용 됨인스턴스가 특정 작업을 다른 인스턴스에 위임하여 처리 하도록 함 (짬처리 하는거 아닌가?) 암튼 프로토콜은 델리게이트가 수행해야 할 작업을 정의하고, 델리게이트 프로퍼티는 실제로 그 작업을 수행할 인스턴스를 참조 함그렇게 이제 델리게이트를 사용하는 클래스는 특정 이벤트가 발생했을 때 델리게이트 메서드를 호출하고,구현하는 클래스는 그 메서드를 실제로 구현하여 이벤트에 대한 처리를 수행 함 이론은 이게 끝임 코드를 한번 보자구 Delegate Pattern 예시// 1. 프로토콜 정의protocol ButtonDelegate: A..
Swift

의문 : 어떤 코드 뭉치에 의해 Optional(3)으로 출력이 되는가? a. 그 코드 뭉치는 어떻게 동작하여 print 되는가.1> var num: Int? = 3num: Int? = 32> print(num)Optional(3) 그래서 옵셔널(Optional)이 뭔데?예전 포스팅에서도 다뤘지만, 복습 차원에서 한 번 잡고가자. 옵셔널(Optional)은 값이 있을 수도 있고 없을 수도 있는 변수의 데이터 타입임 var num: Int? = 3위처럼 변수를 선언할 때 "?"를 사용하여 표현. 변수의 값을 할당하지 않았을 경우? -> nil을 반환이럴경우는 언래핑을 해주면 되겠지? 옵셔널 구조옵셔널은 다음과 같이 두 가지 상태를 가질 수 있음값이 없는 경우 : case none값이 있는 경우..
1. COW🐂 ?웬 소? ㅋㅋ 사실 COW는 (Copy - on - Write)의 약자이다.컴퓨터가 프로그래밍에서 복사 동작을 할 때, 실제 원본이나 복사본이 수정되기 전까지는 복사를 하지 않고,원본 리소스를 공유하다가 원본이나 복사본에서 수정이 일어날 경우 그때 복사하는 작업을 한다. var array1 = [1, 2, 3]var array2 = array1 // 여기서는 복사가 발생하지 않음, array1과 array2는 동일한 메모리를 참조array2.append(4) // 여기서 복사가 발생, array2는 새로운 메모리 공간을 할당받고, array1과 분리됨print(array1) // 출력: [1, 2, 3]print(array2) // 출력: [1, 2, 3, 4] 위 개념은 보..

이미지 출처 : https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle ✅ App LifeCycleAplle에서 정의하는 앱의 상태는 크게 5가지로 구분된다.Not Running : 앱이 시작되지 않았거나, 실행되었지만 시스템에 의해 종료된 상태Inactive: 앱이 전면에서 실행중이지만, 아무런 이벤트를 받지 않는 상태, 앱의 상태 변화 과정에서 잠깐 머무는 단계Active: 앱이 전면에서 실행중이며, 이벤트를 받고있는 상태Background: 앱이 백그라운드에 있지만, 여전히 코드가 실행되고 있는 상태Suspended: 앱이 메모리에 유지되지만, 실행되는 코드가 없는 상태앱의 실행..

내배캠 동기분이 정보를 공유해주셨어요! (윤홍님 감사합니당)저번 세션강의때 튜터님께서 Preview에 대해 잠깐 언급해 주셨는데, 윤홍님이 찾아보시고 정보를 공유해 주셧어요!바로 적용하러 가봅시다! #Preview{ let 'name' = 'yourClassName()' return 'name'} 이런식으로 Preview를 지정해주면 오른쪽과 같이 시뮬레이터가 나옵니다. 실제로 빌드를 따로 하지 않아도 클릭이 가능하고 값이 변경되었을 때 실시간으로 적용됩니다. 저는 처음에 적용했을 때 (no macro named 'preview')라는 오류가 발생 했었는데 Swift Compiler - Language 섹션에서 Swift Version을 최신 버전으로 설정하여 해결했습니다.(swift 5..
Lint Swift 언어로 작성된 코드의 스타일과 규칙을 검토하고 개선할 수 있도록 돕는 정적 분석 도구이다.이 도구는 코드의 일관성을 유지하고, 오류를 사전에 방지하며 코드 품질을 향상시키는 데 중요한 역할을 하는 데 중요한 역할을 한다. 주요 기능으로는코딩 스타일 준수 : 들여쓰기, 줄 길이, 공백 사용 등에 대한 규칙을 강제할 수 있다.코드 품질 향상 : 코드에서 자주 발생하는 오류나 안티패턴을 감지하여 코드 품질을 향상시킨다.자동화된 리뷰 : 코드가 병합되기 전에 자동으로 리뷰하고 문제를 감지할 수 있다.-> 설치는 다음 링크를 활용해보자.SwiftLintCore Reference (realm.github.io)