32YB SOPT/iOS 세미나 6

[SOPT] iOS_7주차_정규세미나 (Realm을 사용한 LocalDB)

23.05.27 SOPT iOS 7주차 정규세미나 내용 1. Realm 이란 Realm 을 사용하는 가장 대표적인 예시는 카카오톡 채팅방이다. 데이터를 끄고 카톡에 들어가더라도 기존의 대화내용을 볼 수 있는데 이는, 데이터 연결이 끊긴 상태에서도 (네트워크 통신이 되지 않는 상태) 정보를 불러올 수 있다는 의미다. 이때 데이터(위의 예시로는 채팅 내역) 을 LocalDB 에 저장하고 불러오기 때문에 가능한데, 이 LocalDB 의 역할을 Realm 이 수행하는 것이다. 승찬팟짱님이 말씀주신 Realm 의 장점들 ,,, 빠른 속도가 가장 큰 장점인데 Thread-Safe하지 않다는 단점이 있다고 한다. 설명을 해주실 때는 User의 정보를 저장하는 법을 예시로 들어주셨는데 아래처럼 구조체를 선언해야 한다...

[SOPT] iOS_1주차_정규세미나 (Xcode사용법, iOS기초, 화면 전환, 데이터 전달 기초)

23.04.01 SOPT iOS 1주차 정규세미나 내용 1. iOS 란? iOS란 애플의 모바일 운영체제를 말하며, iPhone 을 위한 OS 라는 의미를 갖는다. iOS 는 macOS 의 요소인 코코아, 코어 애니메이션 등의 애플리케이션 프레임워크를 포함하고 있다. 그 중에서도 Cocoa Framework 는 맥용 애플리케이션을 만들 때 사용하는 프레임워크다. 따라서 아이폰 개발을 할 때 Cocoa Framework 를 이용하여 개발을 할 수 있게 된다. 2. Framework 와 Library UIKit란 iOS, iPadOS 또는 tvOS 앱을 위한 그래픽 이벤트 기반 사용자 인터페이스를 구성하고 관리한다. 사용자 인터페이스를 구현하고 관리하는 기능을 제공한다는 것이다. Foundation 은 원시..

[SOPT] 합동세미나 review (부제 : 눈물의 첫 얼렁뚱땅 프로젝트)

2023.05.13 ~. 5.27 (2주) SOPT iOS 32YB 신지원의 첫 합동 세미나 토스 iOS APP 리디자인 구현 사실 시작할 때만 해도 세미나랑 과제 이해안된다고 집에서 혼자 찡찡대고 울고 난리를 폈었다. 합세 과제를 받았던 첫 날에도 '네비게이션 바'가 뭔지도 몰라서 희재(우리 조장) 몰래 화장실 가서 네비게이션 바가 뭔지 쳐보고 온 다음 아는 척하고 그랬다. 그리고 카페에서 아요끼리 다같이 공부할 때만 해도 답답한 나머지 화장실 가서 몰래 울고 왔는데 ,,, 합세 끝나고 나니 정말 많이 성장한 것 같다. 이게 SOPT 의 힘일까? 이제는 울지 않는다는 것이, 그리고 자신있게 모르는 것을 물어볼 수 있다는 것이, 물어볼 든든한 친구들이 생겼다는 것이 나에게 큰 변화로 다가왔다. 코드 자체..

[SOPT] iOS_2주차_과제

Closure's Capture List Closure 란 이제는 많이 들어봤어도 (이름 없는 함수 느낌) , Capture List 라는 것은 처음 들어본다. 먼저 Capture 란, 클로저를 변수에 할당하거나 클로저를 호출하는 순간, 자신이 참조하는 외부의 변수를 캡쳐한다. 예를 들어, 클로저에서 stored로 선언된 변수를 사용하고자 힙에 저장되는 클로저에 stored 변수 주소를 캡처하는 것을 의미한다고 할 수 있다. 이때 값 자체를 복사해서 사용할 수 있는 캡처리스트도 존재한다. 캡쳐리스트란, 주변 환경의 범위에서 참조한 변수들을 얼마나 강하게 캡쳐해야 하는지를 명시하는 것으로, 이를 통해 메모리 누수를 일으키는 강한 참조 순환을 피할 수 있다. 강한 참조 순환으로는 Closure 의 강한 참조..

[SOPT] iOS_2주차_정규세미나 (데이터 전달 심화, SnapKit을 통한 AutoLayout, InjectIII, Then)

목차 1. 데이터 전달 심화 - Protocol / Delegation을 활용한 데이터 전달 - Notification Center를 활용한 데이터 전달 - Closure를 활용한 데이터 전달 - Segue prepare 메소드를 활용한 데이터 전달 2. AutoLayout - Frame-Based Layout - Auto-Layout 3. InjectionIII, SnapKit, Then - SPM (Swift Package Manager) - InjectionIII - SnapKit - Then 4. 실습 코드 - Protocol / Delegation 을 활용한 데이터 전달 실습 - Notification Center 를 활용한 데이터 전달 실습 23.04.12 SOPT iOS 2주차 정규세미나 내..

[SOPT] iOS_1주차_과제 (final/private/lazy var/let/viewController/forEach/$0)

SOPT iOS 세미나 1주차 기본과제입니다. iOS 32YB 신지원 작성 0. 세미나 1주차 과제2 내용 1. final 키워드 사용 이유 상속을 방지하기 위해서 사용한다. final로 선언된 요소들은 직접 호출하는 반면, 그렇지 않은 요소들은 vtable을 통해 간접 호출되어 직접 호출되는 경우보다 느리게 작동한다. 즉, 다른 class에서 상속과 overrider가 불가능하게 된다. vtable 은 오버라이딩에 따라 어떤 지점에서 실행할지를 결정하는 반면, final은 바로 어떤 메서드를 실행할지 결정할 수 있다. 따라서 상속, 오버라이딩 될 필요가 없는 클래스, 메서드, 프로퍼티에 final 키워드를 붙이게 된다면 클래스의 경우 static Dispatch로 작동하게 되어 런타임 시간이 더 효율적..