본문 바로가기

Swift

(5)
생체인증을 통한 본인인증 제작기 이전 '보안 핀코드 입력화면 제작기'에 이어서 이번에는 생체인증을 통한 본인인증 진행을 위해 구현한 부분들을 설명해볼까 합니다. 요구사항 1. 기기별로 탑재된 생체인증 기능을 활용하여 본인여부를 판단 2. 생체인증 진행 및 발생한 오류 및 실패 처리 3. 생체인증 정보 변경 시 앱에서 재활성화 유도 위 세가지 요구사항을 순차적으로 설명드리도록 하겠습니다. 0. 구조설계 구현 방식을 설명 드리기에 앞서 해당 기능 구현을 위해 설계한 구조에 대해 먼저 설명드리겠습니다. 앞서 설명드렸듯이 현재 진행중인 프로젝트는 ReactorKit을 사용 중이고, 따라서 생체 인증을 요청 및 처리하는 방식은 RxSwift를 사용하여 처리하였습니다. 1. 기기 생체인증(TouchID, FaceID) 사용 가능 여부 확인 2. ..
보안 핀코드 입력화면 제작기 핀테크팀 사업부로 개발을 진행하며 작업하였던 내용 중 유익한 내용을 정리하도록 하겠습니다. 우선 본인임을 증명하기 위한 인증 과정 중, 핀코드 인증화면을 작업했던 내용을 공유해볼까 합니다. 우선, 작업 완료한 결과물을 보여드리겠습니다. 요구사항 작업하기에 앞서 보안 키패드 제작에 있어 요구사항은 크게 3가지였습니다. - 입력 창이 노출될 때 마다, 새로운 배열로 노출 - 등록 제한 번호 적용 - 입력한 핀번호 다중 암호화 및 서버 인증 시 전자서명 적용 다음 세 가지 요구사항을 충족하기 위해 적용한 결과를 순차적으로 설명드리겠습니다. 0. 구조설계 해당 기능을 설명드리기 앞서, 저는 이번 프로젝트에 RxSwift와 ReactorKit 프레임워크를 사용하고 있습니다. 기능을 구현하기에 앞서 요구사항들을 충..
Initializer 기본이 되면서 중요한 Initializer에 관련하여 정리하였습니다. Initialize -> 새로운 인스턴스를 사용할 준비를 하기 위하여 저장 프로퍼티의 초기값을 설정 구조체와 클래스의 인스턴스는 처음 생성할 때 옵셔널 저장 프로퍼티를 제외한 모든 저장 프로퍼티에 적절한 초기값을 할당해야 합니다. Initializer가 실행될 때 저장 프로퍼티에 초기값을 할당할 수 있으며, 초기화 후에 값이 확정되지 않은 저장 프로퍼티는 존재할 수 없습니다. 기본 이니셜라이저 모든 프로퍼티에 기본값으로 초기화하여 인스턴스를 생성 -> 저장 프로퍼티의 기본값이 모두 지정되어 있고, 동시에 사용자 정의 이니셜라이저가 정의되어 있지 않은 상태에서 제공됩니다. 값 타입(구조체 / 열거형)의 이니셜라이저 멤버와이즈 이니셜라이저..
Memory에 대한 이해 초보 iOS 개발자로 일하면서, 내가 짜는 코드에 대한 원리와 성능보다는 의도한대로 작동하는지가 최우선이었고, 이에 대한 한계는 분명히 존재함으로 늦게나마 메모리에 대한 이해를 목표로 공부하고 그 과정을 남깁니다. Swift 성능에 영향을 미치는 요소 Allocation: 인스턴스를 생성하면 Stack과 Heap 중 어느 곳에 할당 되는 지 Reference Counting: 인스턴스를 통해 레퍼런스 카운트가 몇개가 발생하는지 Method Dispatch: 인스턴스에서 메소드를 호출했을 때, 메소드 디스패치가 정적인지 동적인지 Allocation Stack VS Heap 스택과 heap은 모두 RAM(Random Access Memory)의 영역입니다. Stack은 LIFO(Last In First Ou..
Lazy in Swift "A lazy stored property is a property whose initial value is not calculated until the first time it is used" - Apple Document -> 최초 사용되기 전까지 사용되지 않는 stored property, 즉 사용하는 순간 연산이 시작된다. 주의 사항 1. Lazy Variable은 항상 var와 함께 사용한다. - 당연한 말이지만, lazy 변수는 최초에 값이 존재하지 않고 이후 사용될때 값이 주어진다. 따라서 let으로는 사용이 불가능하다. 2. Computed Property VS Lazy Property - Computed Property의 경우 사용할때마다 값을 계속해서 연산하여 반환하지만, - Lazy ..