Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

UIKit30

Objective-C 암호화(AES/RSA), 해시(Hash) 해싱(Hashing)목적: 입력 데이터를 고정된 크기의 고유한 해시 값으로 변환해서 데이터를 식별하거나 무결성을 확인.특징: 단방향 함수로, 해시 값으로부터 원래 데이터를 복원할 수 없다.사용 사례:데이터 무결성 확인: 파일의 해시 값을 저장해두고, 나중에 동일한 해시 값을 생성하여 데이터가 변경되지 않았음을 확인.비밀번호 저장: 비밀번호를 해시 값으로 변환하여 저장함으로써, 실제 비밀번호를 저장하지 않고도 비밀번호 검증이 가능.디지털 서명: 문서의 해시 값을 서명하여, 문서의 변경 여부를 검증.종류:MD5, SHA-1,SHA256 등 현재는 SHA256을 가장 많이 사용한다.SHA-256 (Secure Hash Algorithm 256-bit)길이: 256비트 해시 값 생성특징: SHA-2 계열에 속하.. 2024. 6. 5.
Objective-C 생체 인증(Bio Authentication) LocalAuthentication서버를 통한 인증이 아닌, 아이폰이나 아이패드 등에서 비밀번호, 터치아이디, 페이스 아이디로인증하는 것을 로컬인증이라고 한다. 내부에 구현되어 있는 LAContext는 사용자 인증을 관리하는데 사용되는 클래스이다. LAContext를 통해서 인증 요청 생성, 인증 성공 여부 확인 등의 작업을 처리할 수 있다.아래의 핵심 메서드 두 개를 살펴보자. canEvaluatePolicy:error:사용 디바이스가 특정 인증 정책을 평가할 수 있는지 확인하는 메서드이다.(아이폰을 기준으로 기종마다 비밀번호만 가능, Touch ID 가능, Face ID 가능으로 다름) 터치 아이디와 페이스 아이디가 나눠져있을 줄 알았는데, 그냥 Bio 인증으로 묶여 있어서알아서 자동으로 기종에 따라.. 2024. 6. 4.
Objective-C 카메라, 앨범 권한 요청 개인정보 보안의 진심인 애플인 만큼, 앱에서 카메라,마이크,앨범 등을 사용할 때는 항상사용자의 의사를 묻고 직접 권한 허용을 받아야 한다.  플로우는 사실상 같기 때문에 Objective-C 환경에서 카메라, 앨범 권한 요청에 대해서 다뤄보려고 한다.1. InfoList 추가InfoList에 권한을 추가해야 하는 요소를 추가하지 않으면, 크래시가 나기 때문에 먼저 추가해주자. 꼭! Info 파일에 들어가서 Information Property List에 마우스를 가져가면 +버튼이 뜨는데, 해당 버튼을 통해 추가할 수 있다.검색 기능도 제공되기 때문에 Privacy를 치면 아래 요소를 빠르게 찾을 수 있다.우측 String칸에 원하는 문구를 작성하면, 'App'이(가) 카메라에 접근하려고 합니다. -- 작.. 2024. 6. 4.
Objective-C 코드 베이스 세팅 1. 신규 프로젝트 생성상단 메뉴바 File->New->ProjectInterface: StoryboardLanguage: Objective-C2. 스토리보드 제거a. 좌측 네비게이터에서 Main 스토리보드 파일 제거 b. 좌측 네비게이터에서 Info.plist 확인 후 토글 전체 펼쳐   Window Application Session Role의 Item에서 Storyboard Name 삭제  c. 좌측 네비게이터에서 프로젝트 선택 후   Build Settings -> Info.plist Values의 UIKit Main Storyboard File Base Name 삭제3. Scene 설정* iOS 13 이후 윈도우, 뷰 관련 설정은 SceneDelegate를 통하도록 변경됨. SceneDelega.. 2024. 6. 4.
20 - SNS View (테이블뷰/셀, JSON parsing, 제스쳐, 오토레이아웃) 인스타, 페북과 같은 SNS 뷰를 구현해 보는 시간을 가졌다. 오토레이아웃 파트도 중요하지만 크게는 테이블뷰를 활용하는 방식에 대해 더 초점을 맞춰 정리해보고자 한다. [데이터] 먼저 데이터의 경우 JSON 형식으로 외부에서 받아오는 경우가 많다. (open API를 사용한다든가.. 대부분의 API에서 JSON 형식으로 데이터를 전달해 준다.) JSON으로 받아온 데이터를 내 필요에 맞게 형태를 변경하는 작업을 파싱이라 할 수 있겠다. 아래 포스팅에 더욱 자세하게 정리되어 있다 :) https://toughie-ios.tistory.com/113 JSON Parsing JSON이란? JavaScriptObjectNotation의 약자. JSON의 문법이 자바스크립트 문법과 유사하지만 자바스크립트에서만 사.. 2023. 4. 16.
19 - StaciView를 활용한 버튼 묶음_Floating buttons 우측 하단의 상자를 누르면 여러 메뉴가 뿅 튀어나오는 예시. 먼저 큰 그림. 저 파란상자 객체(버튼)를 뷰컨트롤러의 VieDidLoad안에서 생성해주고, 뷰에 올리고(잊지말자 addSubView), 수동으로 레이아웃을 잡아준다. (trailing, bottom만 잡아주면 된다.) 잊지말자 오토리사이징마스크 false! 그리고 뷰컨트롤러에서 생성해줄 버튼의 파일을 따로 만들자. UIView를 상속하는 클래스이다. 크게는 버튼이 있고, 안에 여러 메뉴가 담겨있는 스택이 있다. 버튼, 스택 변수는 init(frame: CGRact)에서 함수를 통해 초기화 시켜 준다. required init?(coder: NSCoder)도 잊지 말자. 초기화 함수들은 클래스 내부에서 바로 구현하기 보다는 (클래스가 너무 비대.. 2023. 4. 12.