목록분류 전체보기 (179)
study record
Reactive Programming 등장 배경 빅데이터: 빅데이터는 보통 PB(페타바이트) 단위로 구성되고, 거기에 매일 증가해버린다. 다양한 환경: 비슷비슷한 디바이스가 아니라 작은 모바일 디바이스부터 수천 개의 멀티 코어 프로세서로 실행되는 클라우드 클러스터까지 너무도 다양한 환경에 애플리케이션이 배포됨. 사용 패턴: 사용자는 1년 내내 항상 서비스를 사용할 수 있고, ms 단위의 응답시간을 기대한다. 리액티브 프로그래밍에서는 다양한 소스에서 들어오는 데이터의 흐름(스트림)을 비동기적으로 합쳐서 이런 문제를 해결한다. Reactive Programming이란? 리액티브 프로그래밍은 비동기적 데이터의 흐름과 변화의 전달에 관한 프로그래밍 패러다임이다. 리액티브 프로그램은 주변의 환경과 끊임없이 상호작..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cTH91c/btrFmXwMzMK/D1pMycK2vAKSzWIg1KFSz1/img.webp)
주제 Productivity improvements Control enhancements API refinements UIKit and SwiftUI 1. Productivity Improved navigation bars Title menu Find and replace Editing interactions Improved navigation bars Navigation styles iOS16에서는 두 가지 다른 네비게이션 스타일 Browser, Editor 스타일이 등장했다. 이들로 하여금 브라우저 베이스 앱들이 Editor style 인터페이스와 함께 유저들에게 친숙한 인터페이스를 제공할 수 있고, Browser style로 document 베이스 앱을 도울 것이다. 또한 타이틀 뷰 대신에 센터 아..
클로저란? 클로저는 코드블럭으로 어떤 상수나 변수의 참조를 캡쳐해 저장할 수 있다. 스위프트는 캡처 관련 메모리를 알아서 처리한다. 클로저의 세 가지 형태 전역 함수 : 이름이 있고 어떤 값도 캡처하지 않는 클로저 중첩 함수 : 이름이 있고 관련한 함수로부터 값을 캡쳐할 수 있는 클로저 클로저 표현 : 경량화된 문법으로 쓰여지고 관련된 문맥으로부터 값을 캡쳐할 수 있는 이름이 없는 클로저 클로저에서는 argument label 은 쓰이지 않고 parameter name만 쓰임 closure("Sodeul") closure(name: "Sodeul") //error! 클로저는 익명이지만 함수이므로 1급 객체 함수의 특성을 다 가지고 있다. 클로저를 변수나 상수에 대입할 수 있다. 함수의 파라미터 타입으로 ..
참조 타입은 하나의 인스턴스가 참조를 통해 여러 곳에서 접근하기 때문에 언제 메모리에서 해제되는가가 중요한 문제이다. 적절한 시점에 인스턴스가 해제되지 않으면 한정적인 메모리 자원을 낭비하게 되고, 이는 성능 저하로 이어질 수 있다. Swift는 프로그램의 메모리 사용을 관리하기 위해 메모리 관리 기법인 ARC(Automatic Reference Counting)을 사용한다. ARC가 관리해주는 Reference Counting (참조 횟수 계산)은 참조 타입인 클래스의 인스턴스에만 적용된다. 구조체나 열거형은 값 타입으로 다른 곳에서 참조하지 않기 때문에 ARC로 관리할 필요가 없다. ARC란? ARC는 자동으로 메모리를 관리해주는 방식이다. 대부분의 경우 메모리 관리는 Swift에서 그냥 작동하기 때..