일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- algorithm
- alamofire
- firebase
- Swift코딩테스트
- hackerrank
- RxSwift
- 반응형프레임워크
- 시험에자주나오는것만
- UIKit
- ARC
- Di
- unittest
- firestore
- ReactorKit UnitTest
- 앱의생명주기
- AutoLayout
- 프로그래머스
- RC
- Safari Inspector
- 카카오맵클론
- Bubble Search
- SWIFT
- iOS앱 디버깅
- IOS
- HackersRank
- Swift디자인패턴
- mrc
- ios면접
- 코딩테스트입문
- TDD
- Today
- Total
목록전체 글 (93)
샘성의 iOS 개발 일지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zx2fm/btskrohxc4b/4FZVy1DCWaNyrPvZBQ5isK/img.png)
1. Layer 객체란? 렌더링에 사용되는 view의 CALayer (Core Animation Layer) View를 생성하면 해당 view에 대한 layer가 자동적으로 생성되고 View는 layer의 delegate를 자동적으로 채택하게 된다. (또 다른 CALayer 객체의 delegate를 채택 불가능) layer위에 또 다른 subLayer들을 추가할 수 있음 (view를 올리는 것보다 훨씬 가벼움) UIView의 subView들은 layer위에 올려지게 됨 nil이 될 수 없다. (view를 생성하면 자동으로 하나가 생성되기 때문) 2. CALayer란? Core Animation Layer의 약자 UIKit에 비해 저수준의 프레임워크이기에 많은 기능을 제공하지만 코드량도 그 이상으로 많고 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cwd6rL/btskiAhoHUU/8XKKN9unlyvq6YW6R7UKH0/img.png)
RxSwift 연습 중, 서버로부터 랜덤 이미지 URL 받아서 화면에 비동기적으로 띄우다가 해당 오류가 계속 나서 찾아봤다... (네트워킹 하면 계속 최소 3번 이상은 떠서 알아보니 시뮬레이터에서 로깅하는 것이라고 한다... 일단 없애보자!) 1. 단축키 'command + shift +
1. Strong 참조 (강한 참조) 해당 인스턴스의 소유권을 가짐 자신이 참조하는 인스턴스의 reference count를 증가시킴 값 지정 시점에 retain(RC +1)이 되고, 참조가 종료되는 시점에 release (RC -1)가 됨 앞에 weak / unowned를 적지 않는다면 default로 강한 참조를 하게 됨. 강한 참조의 규칙을 모르고 사용하게 되면 메모리 누수(Memory Leak)가 발생할 수 있음. 2. Weak 참조 (약한 참조) 해당 인스턴스의 소유권을 갖지 않음 자신이 참조하는 reference count를 증가시키지 않음 선언할 때 앞에 weak 를 붙여서 사용 옵셔널 타입으로만 선언 가능 (참조하고 있던 인스턴스가 사라지면 속성을 nil을 할당 하기 때문) 강한 참조로 인..
1. Retain Count란? 힙(Heap) 영역의 RC(Reference Count)를 세어본 후, RC가 0인 순간, 컴파일 할 때 메모리 해제시점을 결정하는 방식 데이터 영역 : 공통으로 공유하는 영역으로, 앱이 실행되는 동안은 불변한다. (전역변수, 타입 변수(static)) - 관리 필요 X 스택 영역: 함수 실행을 위한 임시적 공간이다. 따라서 실행이 완료되면 FIFO(선입선출) 방식으로 알아서 메모리에서 사라지게 됨 - 관리 필요 X 힙 영역: 비교적 긴 시간동안 갖고있게 되는 데이터가 저장된다. 개발자가 관리해야지만 메모리에서 할당 해제가 됨 이 때, 개발자가 관리해야 할 것이 바로 Retain Count (RC)이다. 2. Retain Count의 동작 방식 2-1) Heap 영역에 저..
1. Reference Counting(RC)이란? : 힙(Heap) 영역의 RC(Reference Count - 참조 숫자)를 세어본 후, RC(참조 숫자)가 0인 순간, 메모리 관리 혹은 컴파일 할 때 메모리 해제시점을 결정하는 방식 RC 모델 방식을 개발자가 직접 수동으로(Manual) 구현하여 메모리 관리를 하는 모델 Objective-C에서 사용하는 방식 현재는 MRC, ARC 방식 둘 중 선택 가능 수동으로 RC를 개발자가 구현하여 메모리 관리가 필연적인 모델 메모리를 관리하기 위한 변수 var refCount: Int 존재 retain() : RC(참조 숫자)를 +1 하는 코드 → 메모리 할당** release() RC(참조 숫자)를 -1 하는 코드 → 메모리 해제** ⇒ 할당과 해제 둘다 ..
1. Leading Constraint : 객체의 앞쪽 가장자리 2. Left Constraint : 객체의 왼쪽 가장자리 우리는 글씨를 읽을 때 왼쪽에서 오른쪽으로 읽지만, 히브리어나 아랍권은 오른쪽에서 왼쪽으로 읽는다. 따라서, 히브리어나 아랍권을 제외하면 Left Constraint와 Leading Constraint는 동일하게 객체의 왼쪽 가장자리를 가리킨다. 반대로, Leading Constraint는 객체의 앞쪽 가장자리를 뜻하기에 히브리어나 아랍권에서는 Leading이 오른쪽이 되고 반대 개념인 trailing은 왼쪽이 된다.
iOS 11 이후로 나온 개념으로, SafeArea는 컨텐츠가 디바이스의 요소들에 겹치지 않고 안전하게 보여질 수 있는 iOS 디바이스의 화면 영역을 나타낸다. UIViewController 및 UIView 클래스에서 사용할 수 있으며 디바이스의 요소에는 노치, 홈 버튼, 상태 표시줄 등의 요소가 있을 수 있다. iOS의 오토레이아웃 시스템은 SafeArea를 인식하고, 뷰의 경계를 배치할 때 SafeArea를 고려하여 콘텐츠의 위치를 조정한다. 개발자는 이를 활용해 화면 크기나 디바이스 유형에 관계없이 일관된 UI를 편리하게 제공할 수 있다.
1. 장점 UI를 한 눈에 볼 수 있음 코드를 모르더라도 Drag & Drow 방식으로 UI를 쉽게 구현 가능 앱의 흐름을 직관적으로 파악 가능 View의 초기화가 필요없어 빠르게 UI 생성 가능 2. 단점 View의 컴포넌트가 많아질수록 파일 로딩 기간이 길어짐 컴포넌트가 많아질수록 세밀하게 조정하는것이 까다로울 수 있음 View의 재사용성이 떨어짐 Storyboard의 identifier를 설정해줘야하므로 번거로울 수 있음 협업시 다른 사람의 View를 수정하면 충돌이 발생할 수 있음 협업시 pull request를 통해 상대방이 어떻게 UI를 만들었는지 확인하기 어려움. 파일을 받아야지 알 수 있음..