본문 바로가기

728x90

전체 글

(104)
AppStore 화면 만들어보기 이러한 화면은 너무나 익숙할 것이다. 근데 이런화면 어떻게 만들지..? 다양한 방법이 떠오를 수 있다. 이번에는 ScrollView와 StackView 그리고 CollectionView의 조합으로 위와 같은 화면을 구성해 보고자 한다. 일단 필요한 라이브러리가 있다. 굳이 사용하지 않아도 되지만 편하게 UI구성을 하고 싶다면 SanpKit을 넣어주자. 방법은 아래 링크 참고 2021.10.29 - [앱 개발 도움 링크/Libraries(Github...)] - [iOS] SnapKit 사용법 [iOS] SnapKit 사용법 🤔왜 이걸 쓰지? 개발 시 스토리보드를 사용하여 화면의 UI를 구성할 수도 있지만 Autolayout을 코드로 작성하는 방법도 있다. NSLayoutConstraint를 직접 지정해주..
HomeBrew설치 그리고 실패 HomeBrew? macOS용 패키지 관리자임. 설치만 하면 간단한 리눅스 명령어를 통해 애플리케이션을 설치 할 수있다. Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 설치하기 명령어의 오른쪽 복사하기 버튼을 눌러서 복사하고 Terminal에서 붙여넣기 Enter! 맥 비밀번호를 입력하라고 나오면 입력하고 엔터, 엔터! 다 되었으면 terminal에서 brew버전을 확인해보자. brew --version Warning: /opt/homebrew/bin is not in your PATH. Instructions on how to configure your shell for Homebrew can be found in the 'Nex..
COW(Copy On Write) 원본 또는 복사본이 수정되기 전까지 복사를 하지 않고 원본 리소스를 공유하는것. 수정이 일어날 경우, 그때 복사하는 작업을 함 Swift에서는 CollectionType을 복사해서 사용할 때 발생한다. : Array/ Dictionary/ Set 아래 코드를 보자 var array1 [Int] = [1, 2, 3, 4] var array2 = array1 Array는 구조체이다. array2는 array1을 할당했으니 array1의 값이 array2에서 복사되어야하는데. 그렇다면 array1과 array2는 서로 다른 주소를 갖고 있어야하는것이 맞다. 그러나 cow는 바로 복사하지 않는다. array2에서 수정이 발생하지 않은 경우 array2도 array1의 주소를 참조하고 있는 형태가 된다. 또는 원..
Global DispatchQueue의 QoSClass GCD는 동시 작업을 관리하기 위한 저수준 API다. 계산 비용이 많이 드는 작업을 백그라운드에서 실행시키고 앱의 응답성을 개선하는데 도움이 된다. GCD는 내부적으로 공유 스레드풀을 관리한다. GCD를 사용하면 코드블럭이나 Task 항목을 디스패치 큐에 추가하고 GCD는 이를 실행할 스레드를 결정한다. GCD는 시스템 및 사용 가능한 시스템 리소스에 따라 필요한 병렬 처리량을 결정한다. 대기열 이해 GCD는 디스패치큐 에서 작동한다. 이 대기열은 작업단위를 제출하면 FIFO 순서로 실행한다. 디스패치큐는 스레드로부터 안전하므로 여러 스레드에서 동시에 액세스할 수 있다. 대기열(큐)은 직렬과 동시가 있다. 직렬큐는 주어진 시간에 하나의 작업만 실행되도록 보장하며, 한 작업이 끝나고 다음 작업이 시작되기까..
NSCache 캐시? 사용한 자원을 재사용이 가능하게 특정 영역에 저장해 놓는것을 의미한다. 쉽게 볼 수 있는 캐시는 웹 이미지를 다운로드 한 후 캐시하는것이다. 캐시를 하게 되면 다시 다운로드하면서 데이터를 소모하지 않더라도 저장된 캐시이미지를 불러와 볼 수 있게 된다. 캐싱의 종류는 크게 둘로 나눈다. Memory Caching 과 Disk Caching 메모리 캐싱은 메모리 영역의 일부분을 캐싱에 사용하는것이다. 메모리는 애플리케이션이 종료되면 사용중이던 메모리 영역을 반환하게 되므로 앱 종료와 함께 캐싱된 정보도 사라지게 된다. 반면 디스크 캐시는 데이터를 파일 형태로 디스크 영역에 저장하는것으로 애플리케이션을 종료해도 저장한 정보가 사라지지 않는 장점이 있지만 애플리케이션의 전체 용량이 증가한다는 단점이 존재..
ARC(Auto Reference Counting) Swift는 Auto Reference Counting 으로 앱의 메모리를 관리한다. ARC는 참조유형인 클래스나 클로저에 적용되며 구조체나 열거형은 참조유형이 아니므로 추적하지 않는다. 클래스 인스턴스는 heap메모리 공간에 동적으로 할당한다. 이것을 관리하기 위해서는 heap영역에 참조형 자료들이 얼마나 참조되고 있는지 카운팅 하고 이에 따라 메모리를 할당 및 제거하면 된다. ARC는 인스턴스가 더 이상 필요하지 않을 때 클래스 인스턴스에서 사용하는 메모리를 자동으로 해제한다. 간단한 코드를 보며 ARC의 RefCount를 어떻게 관리하는지 이해해보자. class Person { let name: String init(name: String) { self.name = name print("\(name..

728x90