Apple/Swift(8)
-
Apple 이 제시하는 콤비네이션 핏자, Combine 살짝 음미해보기
RxSwift 를 10월쯤 작성하고(꽤 많은 시간동안, Swift 와 관련된 글을 쓰지 못했다.), RxSwift 관련 코드를 더 공부할까 파볼까 고민했다. 그치만 Combine 도 궁금했고, 기본적으로 애플에서 제공하는 프레임워크였기에 알아보고 싶었다.그렇다..나는 건들면 안되는 크나큰 무언가를 건든 것이다..꽤나 Combine 이 제공하고 다루고 있는 영역이 컸다. 그래서 나는 컴바인, Rx 왕초보니까,, 기본적인 흐름과 역할에 대해 정리하고 공부하려고 한다. 기본 공식문서에서 소개하는 Combine 의 역할은 애플리케이션이 이벤트를 처리할 때, 선언적으로 접근할 수 있게 해준다고 한다. 선언적 프로그래밍은 목표를 설정하고 목표에 접근하는 방법은 컴퓨터에게 일임한다. 예를 들어, '양복점에 가서 1..
2024.12.21 -
[ Authentication 개념 ] 사람들의 신분을 증명하는 절차?!
객체를 인증하는 것은 이에 대한 출처를 확인하는 것을 뜻하는 반면, 사람을 인증하는 것은 사람들의 신분을 구성하는 것컴퓨터 보안에서의 인증컴퓨터 보안에서 인증은 로그인 요청 등을 통해 통신 상에서 보내는 사람의 디지털 정체성을 확인하는 시도의 과정이다. 출처: 위키백과 Swift 에서는 authorizationCode 라는 인스턴스 속성은→ 앱이 서버와 상호 작용하는데 사용하는 토큰의 역할을 한다.var authorizationCode: Data? { get }앱이 이 짧은 토큰을 서버와 상호 작용할 수 있는 권한이 있다는 증거시스템은 NSUTF8StringEncoding 을 사용해 객체를 문자열로 인코딩NOTE유니코드 문자의 8비트 표현으로 ASCII 기반 시스템에서 전송하거나 저장하는데 적합사용자 식..
2024.08.08 -
[ 이메일 유효성 체크 ] - 이메일 가입이 아무거나 다된다고? (1)
화요일 팀플 회의 때 팀원 분이 앱 출시를 했냐고 물으셨다. 회원가입 쪽은 아직 보수할 부분이 많은데, 다른 팀원 분이 회원가입을 하시면서 회원가입 버튼이 안 눌린다고 했다. 그래서 firebase 콘솔을 살펴보니 같은 메일 주소가 여러번 저장되었고, uid 만 다른 동일 메일이 저장되어 있었다. 설상가상 나는 이메일의 유효성 검사하는 로직을 처리하지 않았다. 에러핸들링이 중요하다고 해주셨기에 한번 살펴봐야겠다는 생각이 들었고 빠른 시일내에 업데이트 할 때 적용해야겠다는 생각도 들었다. 대한민국에서 사용가능한 앱임으로 한국사람들이 많이 쓰는 이메일 도메인을 생각해보자.naver, kakao, gmail, icloud - 4가지 정도로만 가입이 가능하게 바꾸고 싶다! (이건 2탄(?)에서 더 구현해..
2024.08.07 -
동시성(Concurrency)을 대하는 Swift 의 자세 1 - DispatchQueue
요즘 Rx 에 대해 조금씩 곰튀김님 유튜브 강의를 통해 살펴보고, 동시성 글을 읽게 되면서, RxSwift 와 Combine 은 왜 쓰는걸까? 하는 의문이 들었다. 저 두 라이브러리 또한 비동기로 수행할 작업들을 기다리지 않고 적절한 시기에 동시적으로 수행할 수 있고, 코드의 가독성도 좋아져서일 것 같다. 동시성의 사용과 경계에 대해서는 클린코드에서 알아봤다. (클린코드 동시성 글이 궁금하시다면 링크 클릭 하세요) 애플 또한 동시성을 사용함으로써 얻게 되는 성능적인 측면과 그로 인해 발생할 수 있는 경쟁 상태와 시스템 부하 외 콜백 함수를 사용할 때 발생하는 들여쓰기로 인해 보이는 예쁘지 않은 코드에 대해서도 대응을 했다. (그 방법은 async, await 와 연관이 있다😅, 여기서 언급하게 될 부분은..
2024.02.02 -
Swift 기본 가이드라인 - part 1
1. fundamental(기초) 사용 시점의 명확성(Clarity as the point of use) -> 가장 중요한 목표 - 메소드, 속성(property) 등의 엔터티는 한 번만 선언되지만 반복적으로 사용 => API를 명확하고 간결하게 사용하도록 설계해라! => 설계를 평가할 때, 선언문(declaration)을 읽는 것만으로는 충분치 않다. 항상 사용 사례를 조사해 맥락해서 명확하게 보이는지 확인해라! 간결함보다 명확성이 더 중요해! Swift 코드는 간결할 수 있으나, 최소한의 문자로 가능한 가장 간단한 코드를 구현하는 게 목표가 아니다. Swift 코드의 간결함은 강력한 유형 시스템과 자연스럽게 상용구(boilerplate)를 줄이는 기능의 부작용이다. BoilerPlate란? 다양한 프..
2023.12.14 -
Macro 에 대해서 알아보자. ( 수정중 )
State 를 공부하다가, Observable() 의 정의를 또 타고들어가다가 이것이 Macro 타입이라는 걸 알게되었다. Share observable state objects with subviews 부분에서 https://playground-coding.tistory.com/78 Macro 이게 무슨 역할을 하는 타입일까? Struct, Class, Instance Method, Properties, enum 등 이런 것들은 문법을 공부할 때 한번씩은 보던 것들인데, Macro 는 뭐지.. State 에 저장된 Observable 객체를 하위 뷰와 공유하려면 객체 참조를 하위 뷰에 전달 SwiftUI는 객체의 관찰 가능한 속성이 변경될 때마다 하위 뷰를 업데이트하지만 하위 뷰의 body가 속성을 읽..
2023.11.12