본문 바로가기

분류 전체보기

(12)
ViewController Lifecycle 생명주기 UI에 있어서 생명주기(Lifecycle)는 어떤 뷰가 보여지고 사라지는 일련의 과정을 뜻한다. 클라이언트 개발은 그 생명주기 사이사이에 맞는 코드를 넣어야 하기 때문에 뷰의 생명주기의 순서와 의미를 이해하는 것이 중요하다. 도식은 아래와 같다. init은 생성자이며 loadView는 애플 공식문서에 따르면 직접 호출하면 안되고 iOS 프레임워크가 실행해줘야 한다. 또 viewDidUnload는 deprecated 되었다. loadView viewDidUnload Lifecycle viewDidLoad nib파일이든 프로그래머틱 UI 생성이든 만들어진 뷰가 로드한 뒤에 한 번만 호출된다. viewWillAppear 뷰가 나타나기 전에 호출된다. viewDidAppear 뷰가 나타난 다음에 호출 ..
Swift ARC ARC ARC는 Auto Referecing Count의 약자로 참조 개수를 자동으로 관리해줌을 의미한다. C++, Obj-C와 같이 개발자가 직접 메모리를 관리해야 하는 언어가 있는 반면 Java, Python, Swift와 같은 고수준 언어는 메모리를 프로그래밍 언어가 직접 관리해주는 경우가 많고 Swift에서는 ARC가 그런 역할을 하게 된다. 일반적으로 메모리는 code, data, heap, stack의 구조로 이루어져 있는데, code 영역에는 프로그램의 코드가 저장이 되고, 프로그램의 시작과 끝까지 계속 메모리에 남아 있는다. data 영역에는 전역변수, 정적변수, 상수 등이 저장되며 이 역시 프로그램이 종료할때 까지 남아 있는다. stack 영역에는 임시 메모리 영역으로 함수 호출과 관련된..
Swift Closure 서론 클로저는 하나의 코드 블럭으로 다른 언어의 람다와 비슷하다. 예를 들면 자바의 람다처럼 함수를 하나의 파라미터로서 함수를 간결하게 표현하도록 해준다. 또 자바스크립트의 클로저처럼 클로저 내에서 사용된 변수 값을 캡처해둘 수 있다. 처음 스위프트에서 클로저 사용 문법을 봤을 때 굉장히 헷갈렸는데, 개념이 명확해 질 수록 스위프트가 얼마나 모던하게 클로저라는 개념을 보여주고 싶었는지 알 수 있었다. 간단하게 스위프트에서는 모든 함수가 전부 클로저다 라고 받아들이면 조금 편했던 것 같다. 사용법 클로저는 일반적으로 아래와 같은 형태로 사용한다. { (parameters) -> return type in statements } 스위프트 랭귀지 가이드에 위와 같이 나와 있는데, 개인적으로 처음에 이걸 봤을 ..
Swift Codable Codable이란 codable은 encodable과 decodable을 합친 것으로 JSON을 쉽게 Serialize, Deserialize해서 읽어주는 역할을 한다. 일반적인 서버 API 통신시 JSON 형태를 사용하므로 이 때 유용하게 사용된다. Encodable Encoding은 어떤 데이터(swift에서 구조체, 클래스 등..)을 JSON 형태로 변환시켜준다. 보통 JSON을 읽어오는 Decodable을 주로 더 많이 사용하긴 한다. struct Developer: Encodable { let name: String let role: String } let peppermint100 = Developer(name: "peppermint", role: "backend") let data = try?..