아핀 변환(Affine Transformation)
·
CS/이론
👋 들어가기 전 우리는 이전 시간에 선형 변환을 간단하게 학습했다. 사실 최종 목적지는 아핀 변환을 학습하기 위한 빌드업! iOS 개발을 하다보면 특히, 보기 좋은 효과를 위해 알게 모르게 사용했던 AffineTransform 객체가 있다. AffineTransform | Apple Developer DocumentationA graphics coordinate transformation.developer.apple.com여기에 깔려있는 기본적인 이론을 오늘 정리하고 해당 객체는 iOS 카테고리로 다시 정리해보자.✊homogenous coordinates(동차 좌표)먼저 Homogeneous 좌표계를 먼저 알아보자. Homogeneous 좌표계는 위에 2가지 조건으로 설명이 가능하다. 1) (x,y)와..
선형 변환
·
CS/이론
👋 들어가기 전 대학교 때 수강신청을 하지 않은 과목 중 가장 후회되는 과목이 바로 컴퓨터 그래픽스다. 행렬과 친하지 않았고 내가 UI 관련 개발로 나간다고 예상하지 못했다. 좋아하는 개그맨인 박명수님이 말했던가..  "늦었다고 생각했을 때가 진짜 늦었다.. "평생을 관통하는 말인 것 같다.그렇다고 포기는 할 수 없으니 .. 컴퓨터 그래픽스 관련 내용을 접하게되면 피하지는 말아보자.이번 포스팅은 컴그에서 기본적인 선형 변환으로 먼저 시작해보자.✊ 변환이란선형 변환에서 먼저 변환의 의미부터 생각해보자. 가장 간단한 예는 바로 함수이다 우리는 프로그래밍에서 함수를 어떻게 이용하고 있을까?Input이 함수를 거쳐 output으로 변환 된다.마찬가지로 입력 벡터가 변환을 통해 출력 벡터가 나오는게 변환이다. ..
컨커런시 문법 정리
·
iOS/Swift Concurrency
✊프로퍼티계산 프로퍼티에서 async는 get에서 만 사용 가능하다.☝️프로토콜비동기 속성은 get only만 가능하다.✌️함수비동기 함수는  async throw -> return Type 순이다.func asyncFun() async throws -> Int { try await Task.sleep(nanoseconds: 1000) return 1}생성자 역시 함수이기 때문에 비동기가 가능하다. 👍 왜 set에 비동기 적용이 안될까?개인적인 생각으로는 값을 세팅할 때 비동기적으로 동작하면그 값을 사용할 때 어떤 상태인지 신뢰성을 보장할 수 없어 set을 하지 못하게 막는 것 같다.😀 소감 및 마무리정리할만한 내용이 다시 생기면 추가하겠다.
@TaskLocal
·
iOS/Swift Concurrency
👋 들어가기 전정말 오랜만에 컨커린시 관련 포스팅이다.최근에 현생이 정말 정신이 없다.주말은 쉬는 날인데 현재는 평일에 없는 학습시간을 위한 날인 것 같다.정말 침대에 눕고 싶다. ㅋㅋㅋ  잡소리는 그만하고 오늘의 주제로 들어가기 전 간단한 사전 지식을 알아보자.✊@property wrapper프로퍼티 래퍼 정말 무의식적으로 많이 썼고 특히, SwiftUI를 사용할 때많이 쓴 것 같다. 한번 구조를 간단하게 정리해보자.전체적인 내용인 출처 첫번 째 링크를 참고했다.목적프로퍼티 래퍼의 목적은 반복적인 로직을 담당하는 하나의 타입처럼 선언하여프로퍼티의 타입처럼 쉽게 사용할 수 있게 만들어주는 것이다.구조property wrapper는 크게 2가지 프로퍼티를 제공한다.wrappedValue wrappedVa..
.xctemplate
·
iOS
👋 들어가기 전항상 RIBs의 개념에서 필요한 것만 갔다 썼기때문에 쓰지 않은 것에 대해서는그 때 그 때 알아봤다. 그런데 공식문서에서 눈이 가는 한가지 사진이 있다.항상 Xcode에서 제공해주는 내용만 있을 줄 알았는데 저기를 건드릴 수가 있네 ?? 더 늦으면 인생 절반 손해볼뻔 했다.. 당장 알아보자.✊무엇일까?제목을 보면 대충 유추할 수 있다.  바로 파일을 만드는 템플릿이다.☝️그래서 어디에 있는데?~/Library/Developer/Xcode 일단 여기가 시작 포인트! 이후 Templates 폴더를 만들어준다.mkdir -p ~/Library/Developer/Xcode/Templates✌️.xctemplate 디렉토리 만들기일단 RIBS를 만드는 느낌으로 가보자.RIBs.xctemplate으..
Mirror
·
Programing Langauge/swift
✊Mirror란한번도 쓰지 않았지만 항상 프로젝트를 하면 팀원이 쓰던 녀석.. 나도 한번 써보자.. 공식문서를 살펴보자.A representation of the substructure and display style of an instance of any type. 모든 타입의 인스턴스의 하위 구조 및 display stlye를 나타내는 리플렉션 API라고 한다. 모든 타입이라고하는데 진짜 그런 지 살펴보자. Mirror.DisplayStyle을 보면 swift의 거의 모든 타입을 커버하고 있다. ☝️주요 기능주요 기능은 다음과 같다.프로퍼티와 값 탐색타입 확인디버깅 및 로깅타입 정보 추출1️⃣ 프로퍼티와 값 탐색chidren을 통해 인스턴스의 모든 프로퍼티와 값을 탐색할 수 있다.struct Pers..