최근 구글이 써드파티 쿠키를 제거하려다 결국 포기했다는 소식을 알았지만, 자세한 내용을 몰라 블로그에 기록합니다.써드파티 쿠키란?써드파티 쿠키(Third-party cookies)는 사용자가 방문한 웹사이트가 아닌 다른 도메인에서 설정한 쿠키를 말합니다. 예를 들어, 사용자가 A라는 웹사이트를 방문했을 때, 그 웹사이트에 포함된 광고나 다른 요소들이 B라는 다른 도메인에서 제공된다면, B 도메인에서 설정한 쿠키가 써드파티 쿠키입니다. 이 쿠키는 주로 광고주나 분석 회사들이 사용자의 인터넷 활동을 추적하고, 맞춤형 광고를 제공하거나 사용자 행동을 분석하는 데 사용됩니다. 써드파티 쿠키의 주요 기능 및 용도:사용자 추적여러 웹사이트에 걸쳐 사용자의 행동을 추적하여 사용자 프로필을 생성하고, 이를 통해 맞춤형..
Secure SHell의 약자로 네트워크상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 프로토콜을 가리킵니다.SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보입니다.일반적인 역할원격 로그인: 원격 서버에 안전하게 접속하여 명령을 실행파일 전송: SCP나 SFTP을 사용하여 파일을 안전하게 전송포트 포워딩: SSH 터널을 통해 네트워크 서비스에 안전하게 접근자동화 및 스크립팅: SSH 키를 사용하여 비밀번호 없이 자동으로 스크립트를 실행하거나 작업을 자동화GitHub에 연결SSH 키를 사용하면 방문할 때마다 사용자 이름 및 personal access token을 제공하..
앱의 현재 상태에 따라 언제든지 할 수 있는 것과 할 수 없는 것이 결정된다.앱이 상태가 변경됨에 따라 그에 따라 동작을 조정해야 한다.iOS 13이상에서는 UISceneDelegate 개체를 사용하여 scene-based app의 수명 주기 이벤트에 응답한다.앱이 Scene을 지원하는 경우 UIKit은 각각에 대한 별도의 수명 주기 이벤트를 제공한다.Scene은 기기에서 실행되는 앱 UI의 한 인스턴스를 나타낸다.UIApplicationSceneManifest 를 추가하면 앱이 Scene 기반으로 작동하도록 설정된다. 이를 통해 멀티태스킹을 지원하고 여러 창을 동시에 열어서 작업할 수 있게 된다. Opt-in feature로 기본적으로는 단일 윈도우를 가지고 Scene 기반의 생명 주기 관리가 비활성화..
wrapped value 또는 값의 부재를 나타낼 때 Optional 형식을 사용한다.여기서 말하는 값의 부재는 메모리 할당하지 않은 것을 의미한다.일반적으로 변수의 유형을 Int? 와 같이 물음표를 타입 이름의 후행에 표시한다.Optional는 또 다른 작성 방식입니다.여기서 나오는 Optional.none 은 nil 과 동일합니다.let number: Int? = Optional.som(42)let noNumber = Int? = Optional.none 옵셔널 바인딩과 강제 언래핑의 차이점두 가지 모두 Optional을 언래핑할 때, 조건적으로 할 것인지 강제로 할 것인지의 차이가 있다.Optional Binding 은 Optional 인스턴스의 래핑된 값을 새 변수에 조건부로 바인딩하는 것을 의미..
Garbage Collection가 뭘까?1950년대 후반에 개발된 Lisp 프로그래밍 언어에서 처음 도입되었다. 이후에 다양한 언어에 영향을 미쳤으며, Java, C# 등에서 사용된다.Java GC는 어때?GC는 힙 메모리를 살펴보고, 사용중인 오브젝트와 사용되지 않는 오브젝트를 식별하고, 사용되지 않는 오브젝트를 삭제하는 프로세스다. 사용 중인 개체 또는 참조된 개체는 프로그램의 일부가 여전히 해당 개체에 대한 포인터를 유지 관리한다는 것을 의미한다. 사용되지 않는 개체 또는 참조되지 않은 개체는 더 이상 프로그램의 어떤 부분에서도 참조하지 않습니다. 따라서 사용하는 메모리를 회수할 수 있다.MarkingGC는 사용 중인 메모리와 사용되지 않는 메모리를 식별합니다.참조된 객체와 참조되지 않는 객체를 ..
왜 문제가 되었는가?아이폰 14 pro를 사용하고 있으며, 수리를 하는 과정에서 초기화된 핸드폰으로 교체가 된 상황입니다.즉, 기존에 사용하던 앱들을 새로 깔아야 하는 상황이죠. 새로운 앱들 설치!!일단 은행앱 같은 경우에는 메시지를 통한 기기인증을 할 때, 실패하게 되면 전화로 인증할 수 있도록 다른 옵션을 제안합니다.하지만 쏘카의 경우에는 오로지 메시지로 기기인증을 해야 하는 문제점이 있습니다. 고객센터 문의를 하려고 해도 해당 시점은 일요일 오후였으며, 전화로 가입 문의로 넘어가더라도 문서로만 가입을 어떻게 해야하는지 알려주거나 챗봇으로 연결하라고 유도합니다. 하지만 챗봇의 경우에도 앱에 로그인조차 못하는 상황인데 연결될 수 없었습니다. 그래서 해결 방법은?기존에 구글링 및 네이버로 검색을 한 결과..
데이터베이스는 크게 2가지로 나눌 수 있다.관계형 데이터베이스비관계형 데이터베이스관계형 데이터베이스(RDBMS)데이터를 행과 열로 구성된 2차원 테이블 형태로 저장된다.SQL을 사용하여 데이터를 조작한다.비관계형 데이터베이스(NoSQL)키-값으로 데이터를 저장한다.JSON 등의 문서 형태로 데이터를 저장한다. iOS에서 사용되는 SQLite, Core Data, Realm 등의 특징과 사용 사례Core Data는 관계형 데이터베이스와 객체 지향 프로그래밍을 결합한 것으로 객체-관계 맵핑된다.Entity, Attribute, Relationship로 정의된 스키마로 저장되어 SQL와 유사하게 데이터를 쿼리할 수 있다.데이터는 SQLite 데이터베이스에 저장된다. Swift Data에서는 Core Data와..
메모리 캐싱은 왜 필요할까?우선 Caching은 메모리 내에서 자주 액세스하는 데이터를 관리하는 데 사용되는 기술이다. 캐싱을 하면 더 빠른 로드 시간과 네트워크 대기 시간 감소 등 사용자 경험을 향상 시킨다.서버에서 가져와야 하는 데이터를 줄어 들면서 요금 절감 혹은 네트워크 환경이 좋지 못한 사용자에게 도움된다. 메모리 캐싱 기법의 개념과 iOS에서의 구현 방법Cache Hit는 캐시에서 데이터를 읽는 방식으로 제공된다. Cache miss 경우에는 데이터를 가져와 캐시에 저장한다.Cache Hit: 요청된 데이터를 캐시에서 찾을 수 있을 때 발생Cache Miss: 캐시에서 찾을 수 없을 때 발생캐시를 지우는 데에도 전략이 존재한다.LRU: 가장 오랫동안 사용되지 않은 데이터를 캐시에서 삭제LFU..