목록전체 글 (163)
아요 개발 일기
생성자란? 인스턴스가 생성될 때의 형식과 할 일을 정의한다고 하여 생성자라고 부릅니다. 클래스가 객체화 될 때 자동으로 실행되는 메소드를 지칭합니다. ( 객체의 인스턴스를 만드는 메소드) 스위프트 초기화 혹은 생성자는 init 이라는 키워드의 메소드가 담당합니다. init은 구조체와 클래스 모두에서 지원되는 기능입니다. 일반 메소드 정의와 다르게 func 라는 키워드가 필요 없습니다. 생성자는 init() 형태로 작성되며, 필요하면 argument를 추가해서 작성할 수도 있습니다. 초기화 메소드 init() 형식 init( : , : , ... ) { 1. 매개변수의 초기화 2. 인스턴스 생성 시 기타 처리할 내용 } 초기화 구문 = 초기화 메소드 초기화 메소드는 대표적인 특성이 아래와 같이 있습니다. ..
안녕하세요! 오늘은 Method에 대해 공부해보겠습니다!! 이 글은 꼼꼼한 재은씨 Swift: 문법편을 참고하여 작성하였습니다. Method 일종의 함수로서, 클래스나 구조체, 열거형과 같은 객체 내에서 함수가 선언될 경우를 말합니다. 즉, 특정 타입의 객체 내부에서 사용하는 함수라고 할 수 있습니다. 함수와 메소드의 차이점? 독립성 - 함수는 독립적인 기능을 구현하기 위해 만들어짐 연관성 - 하나의 객체 내에 정의된 다른 메소드들과 서로 협력하여 함수적인 기능 수행 종류 Instance Method (인스턴스 메소드) 객체의 인스턴스를 생성해야 사용할 수 있는 메소드 주어진 객체의 인스턴스와 함께 특수한 임무나 함수적인 기능을 수행하도록 캡슐화된 메소드 틀을 이용하여 만들어낸 구체적이고 실질적인 것에 ..
안녕하세요 :D 오늘은 Diffable Datasource와 Compositional Layout에대해 알아보도록 하겠습니다ㅎㅎ Diffable Datasource? 🤔 WWDC19에서 Apple이 발표하였으며, iOS13 부터 사용이 가능합니다. 전에 저희가 Datasource를 사용했던 부분이 있었죠? UITableViewDataSource UICollectionViewDataSource 가 있었습니다. 그렇다면 Diffable Datasource는 어떤 것이 있을까요? 동일하게 UITableViewDiffableDataSource UICollectionViewDiffableDataSource 가 있습니다. Diffable Datasource가 왜 필요해? 우리가 CollectionView를 구성하게..
안녕하세요 :ㅇ GCD + DispatchQueue에대해 알아보겠습니다 :D 동기 & 비동기에 대해서 모르시는 분은 동기(Sync) / 비동기(Async)글을 참고하고 와주세요! Concurrency(동시성) 란? 쉽게 설명하자면, 한번에 여러개 수행하는 것을 말합니다. App은 한번에 여러개의 일을 수행해야 사용성이 좋겠죠?? 그렇다면 App이 하는일은 무엇일까요? - 사용자 인터랙션 처리 - 네트워킹 - 백그라운드에서 파일 다운로드 - 파일 저장하고 읽기 만약에 네트워킹하느라 사용자의 인터렉션을 처리하지 않는다면 어떻게 되나요? 앱의 로딩이 길어짐!! (사용성 저하) 동시성 늘리기위해서는 어떻게 해야할까요? 하나의 큰 작업을 여러가지 task로 나누어서 우선 순위를 정합니다. Main Thread에서..
안녕하세요!! 오늘은 아주아주아주 기본적인 친구를 데려왔어요! 원래 뭐든 기본이 탄탄해야하는법,,!! 같이 공부해봅시다 :D Framework ?? Frame + Work 라는 두 단어가 합쳐진 단어입니다. Frame = 틀 Work = 일하다 "일정한 틀, 뼈대를 가지고 일하다"라는 뜻으로 볼 수 있겠네요?! 즉, 프레임워크는 뼈대나 기반 구조를 뜻하며, Application 개발 시에 필요한 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능들을 위해 어느정도 뼈대(구조)를 제공해주기때문에 일관성 부족과 같은 문제를 해결해줍니다. Swift에서 흔히 사용하는 Framework는 Cocoa Touch Framework 이 있습니다 :) 한 문장 정리! 프레임워크란, 소프트웨어의 특정 문제를 해..
Foundation Foundation은 원시 데이터 타입(String, Int, Double), 컬렉션 타입(Array, Dictionary, Set) 및 운영체제 서비스를 사용해 애플리케이션의 기본적인 기능을 관리하는 프레임워크 입니다. Foundation 프레임워크는 데이터 타입, 날짜 및 시간 계산, 필터 및 정렬, 네트워킹 등의 기본 기능을 제공합니다. Foundation 프레임워크에서 정의한 클래스, 프로토콜 및 데이터 타입은 iOS뿐만 아니라 macOS, watchOS, tvOS 등 모든 애플 SDK에서 사용됩니다. Foundation에서 제공하는 데이터 타입 및 컬렉션 타입의 대부분은 Objective-C 언어의 기능에서 지원하지 않는 것이기 때문에 언어기능을 보완하기 위한 구현이며, Sw..
안녕하세요 :) 저번에 ARC에대해 공부를 했었죠? 정말 좋은 ARC지만 강한 참조 순환 문제가 생길 수 있어요! 참조 순환이란, 어디에서도 참조가되지않는데도 메모리가 해제 되지 않는 경우를 말합니다 같이 해결 방법을 같이 알아볼까요?? 이 글은 Swift Language Guide 기반으로 작성되었습니다 ☺️ 강한 참조 순환이 발생하는 부분은 클래스와 클로저 두 가지에요! 클래스부터 알아봅시다 고고고구마 Strong Reference Cycles Between Class Instances 클래스 인스턴스간 강한 참조 순환 클래스 인스턴스간 강하게 상호 참조하는 경우에 강한 참조 순환이 발생하는데, 코드를 보면서 강한 참조 순환이 어떻게 발생하는지 알아봅시다! 위 코드를 보면 Person이라는 클래스는 ..
안녕하세요! 스위프트 공부하다보니, 메모리 구조에 대해 찾아보게 되었는데요! 메모리 구조에 대해서 잘 모르시는 분들은 [Swift] 메모리 구조 포스팅을 참고해주세요 :D 자.. ARC를 제대로 알아보기 전에.. Apple이 Swift가 나오기 전에 사용했던 언어! Object - C에서의 메모리 관리를 간단히 알아보겠습니다ㅎㅎ 출처 : https://i1.ruliweb.com/ori/21/02/01/1775da0b8275221e6.gif Object - C에서는 retain, release, autorelease 등을 통해 수동으로 메모리 관리를 했었습니다. 이를 MRC(Manual Reference Counting)라고 칭해요! 간단히 retain과 release에대해서 설명해보자면 아래와 같습니다 ..