본문 바로가기

전체 글

[iOS] About WidgetKit - 2(App Group) 지난번 위젯킷 블로그에서 위젯킷을 사용해 위젯을 구현하고 설정까지 완료했다고 생각했지만, 가장 중요한 부분이 남아있었습니다. 2024.10.24 - [Swfit] - [iOS] About WidgetKit - 1 바로 앱의 데이터와 위젯 데이터의 공유 문제입니다. 이번 글에서는 앱과 위젯 간의 데이터 동기화에 대해 자세히 알아보겠습니다. 현재 상태로는 위젯이 정상적으로 표시될 수는 있지만, 앱에서 데이터가 변경되었을 때 위젯에 해당 정보가 반영되지 않는 문제가 발생할 수 있습니다. 이 부분을 해결하기 위한 방법을 하나씩 살펴보겠습니다.  App GroupApp Group은 애플이 제공하는 샌드박스 환경을 기반으로 한 데이터 공유 메커니즘입니다.- Extension의 Bundle은 Container번들에 .. 더보기
대칭키 & 비대칭키 대칭키 - 하나의 동일한 키를 사용해 데이터를 암호화하고 복호화하는 방식- 송수신자가 동일한 키 공유 대칭 암호화의 예시AES,DES 장점- 속도: 암호화와 복호화에 단일 키를 사용하므로 실행 속도가 더 빠름- 신원 확인: 수신자의 신원을 증명하기 위한 보안 목적으로 비밀번호 인증을 사용- 실행 및 관리: 사용자는 암호화 및 복호화를 위한 키를 하나만 가지고 있으므로 실행하고 관리에 용이- 대량 암호화에 효율적: 속도가 빠르기 때문에 파일, 데이터베이스, 백업 등 대량의 데이터를 암호화하는 데 적합 단점- 키 관리가 어려움- 노출 시, 모든 데이터가 위험함  비대칭키 - 서로 다른 두개의 키(공개키, 비공개키)를 사용하는 방식 공개키- 누구나 사용 가능한 키- 데이터 암호화에 사용비공개키- 오직 키 소유.. 더보기
[iOS] About Notification & Delegation 이번 글에서는 객체 간 데이터의 상태 변화 혹은 정보 전달이 일어나야할 때 사용하는Notification 과 Delegation에 대해 알아보려 합니다! NotificationNotification은 NotificationCenter라는 싱글턴 객체 를 통해서 데이터의 상태 변화나 정보 전달이 일어나야 할 때 이를 관찰하는 객체에 알림을 보내는 시스템입니다. Notification의 구성을 살펴보면 1) 알림 등록 NotificationCenter.default.addObserver(self, selector: #selector(memoRecievedNotification), .. 더보기
[iOS] About WidgetKit - 1 WidgetKit - iOS8 ~ iOS13 Today Extension 을 통해 위젯 지원- iOS14부터 WidgetKit 도입 > Widget Extension을 통해 위젯 개발 가능- SwiftUI로만 개발 가능 (UIViewRepresentable로도 개발 불가능)- iOS14 소개 당시, 홈 화면과 오늘 보기 두 군데만 지원- iOS16부터 잠금 화면 지원- iOS17부터 Mac Desktop, iPad Lock Screen, Watch Smart Stack, StandBy 까지 네 군데 추가 지원  Widget 구성요소1. Widget Extension 추가 ( Activate “WidgetExtensionˮ Scheme? > Activate 로 설정)  - Include Live Activ.. 더보기
[iOS] About JWT(Jason Web Token) JWT • 유저를 인증하고 식별하기 위한 토큰 기반 인증 방식 • 주로 인증 및 정보 전달을 위해 사용 • 토큰을 클라이언트에 저장하고 요청 시 HTTP 헤더에 토큰을 첨부하는 것만으로 간단하게 데이터를 요청하고 응답 가능  JWT 구성 1. Header • 토큰의 타입과 해싱 알고리즘 정보 기입 • kid: 서명 시 사용하는 키를 식별하는 값 • typ: 토큰 유형 • alg: 해싱 알고리즘 2. Payload  • 토큰에서 사용할 정보의 조각들인 클레임(key-value 형태)이 담겨 있음 • Registered Claim: exp(만료시간), sub(제목), iss(발급자) 등 표준 클레임 • Public Claim: 사용자 정의 데이터 • Private Claim: 비공개 데이터 3. Signat.. 더보기
[iOS] About Cookie/Session 이번 글에선 서버 인증 방식 중, 쿠키와 세션에 대해서 알아보려고 합니다!  🍪 Cookie😄 개념- 클라이언트의 브라우저에 저장되는 작은 데이터 - 주로 세션 ID와 같은 정보 저장😄  특성- 쿠키가 생성된 이후엔 모든 요청마다 서버로 전송- 이름, 값, 만료 날짜, 전송할 경로, HTTPOnly여부 등으로 구성- Key - Value 쌍으로 구성- 하나의 쿠키는 4KB(= 4096바이트 = 512비트 )까지 저장 가능- 도메인 당 20개의 쿠키😄  사용목적- 세션관리: 로그인, 닉네임, 접속 시간 등 저장- 개인화: 유저마다 다르게 유저에게 적절한 페이지 로드- 트래킹: 유저의 행동패턴 분석, 기록🥶  단점- 보안성: 브라우저에 저장되기 때문에, 쿠키 탈취 위험성이 있음- 저장 용량 제한: .. 더보기
[iOS] About CoreData Core Data앱에서 모델 계층 개체를 관리하는 데 사용하는 프레임워크  - Core Data는 DB가 아닌 객체-그래프 관리 시스템으로, 데이터를 효율적으로 관리할 수 있도록 도와줌- 데이터를 메모리에 로드한 뒤 처리하는 방식으로 작동, but In-Memory 방식도 지원- 객체를 영구 저장소에 매핑하는 세부 정보를 추상화하여, 데이터베이스를 직접 관리하지 않고도 Swift 데이터 모델을 쉽게 저장하고 관리- 기본 SQLite 데이터베이스 사용- 데이터베이스를 다루는 SQL을 사용하지 않고 객체를 다루는 방법으로 데이터 핸들링Core Data의 주요 기능  1. 객체-그래프 관리 시스템- 객체와 관계를 효율적으로 관리- 데이터의 저장과 로드를 지원하여 앱 데이터를 효과적으로 처리 객체 그래프?- 객.. 더보기
[개인출시앱] 모닝글로리 회고 ⭐️  프로젝트 소개- 아침형 인간이 되고픈, 부지런한 삶을 살아가고 싶은 사람들을 위한 미라클 모닝을 위한 앱개발기간: 2024.09.12 ~ 2024.09.27(약 2주, 버전 1.0 기준)⭐️  기획 단계🤔 주제 선정이번 프로젝트의 주제는 모닝글로리라는 이름의 미라클 모닝 가이드 앱입니다. 이 앱의 아이디어는 제 생활 패턴과 루틴에서 출발했습니다. 최근 들어, 저는 아침에 일찍 일어나 하루를 시작하는 습관이 생산성과 삶의 질에 얼마나 큰 영향을 미치는지 체감하게 되었습니다. 하지만 이 좋은 습관을 매일 꾸준히 유지하는 것은 생각보다 쉽지 않았습니다. 특히, 명확한 가이드와 목표 없이 혼자서 실천하려다 보니 중간에 포기하기 쉽다는 점을 깨달았습니다. 그래서 이 앱이 단순한 알람 앱 이상의 역할을 하.. 더보기