
프로젝트를 진행하던 중 presigned url을 적용해서 이미지 저장을 하자고 결정하였다.그 이유는 목차에 따라 설명하겠다. 📖 목차1. presigned url이 무엇인가2. presigned url 발급3. presigned url 저장 1. presigned url이 무엇인가 사용자가 앱 사용 중 이미지를 저장하고 싶은 경우가 있을 것이다.그럼 우린 그 이미지를 어디에 저장하는게 좋을까? ✏️ 어디에 이미지를 저장할 것인가 1️⃣ Server앱이 동작하는 서버에 이미지를 저장하는 방법이다.이미지를 서버에 저장하기 때문에, 다른 외부 스토리지와 통신할 필요가 없어서 네트워크 대역폭을 절약할 수 있다. 서버에 큰 용량을 가지는 이미지를 저장하려고 하면, 사진을 저장하기 위한 대역폭 또한 제공해야..

리스트 항목에서 리스트 안의 데이터가 아닌 셀 전체 너비를 터치영역으로 설정하고 싶을 때가 있다.예제를 통해 설정하는 방법을 알아보자! 데이터 모델 선언 리스트의 각 항목들의 데이터 모델을 정의해 준다.항목 클릭 여부를 나타내는 click과 항목에 표시될 text를 넣어주었다. struct dataModel: Identifiable { var id: Int let text: String var click: Bool} 뷰 만들기 먼저 리스트에 들어갈 각 항목들을 dataArr 배열에 초기화해 준다.struct ContentView: View { @State private var dataArr: [dataModel] = [ dataModel(id: 1, text: "가..

사용자의 디바이스 모델명, OS, 앱 버전 상태를 확인하기 위한 방법을 알아보자.이런 정보는 디버깅, 사용자 지원, UI 최적화, 기능 테스트, 마케팅 및 분석등 다양한 목적으로 사용될 수 있어 요구사항에 따라 적절하게 활용하면 된다. 📖 목차1️⃣ 클래스 정의2️⃣ 클래스 사용 예시3️⃣ 주의 사항 1. 클래스 정의 🟡 속성 필요한 데이터인 모델명, 운영체제/앱 버전을 아래와 같이 정의한다. osVersion: 기기 운영체제 이름과 버전deviceModel: 기기 모델 이름appVersion: 앱의 버전 🟡 초기화 메서드 init(): 클래스의 인스턴스를 초기화하고, osVersion, deviceModel, appVersion 속성에 값을 할당한다. 1️⃣ osVersion 초기화 let ..

SwiftUI에서 단위 테스트하는 방법을 알아보자. https://github.com/Jaehwa-Noh/Art-Space-App/tree/main/Swift-Art-Space-App 를 참고하여 만들었다. Art-Space-App/Swift-Art-Space-App at main · Jaehwa-Noh/Art-Space-Apphttps://developer.android.com/codelabs/basic-android-kotlin-compose-art-space#0 - Jaehwa-Noh/Art-Space-Appgithub.com Unit Test란? "하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트" 모듈이 뭐냐? => 애플리케이션에서 동작하는 하나의 기능 또는 메서드 작성한 함수..

iOS 면접 준비를 위한 4탄이다. Swift에서 데이터 관리를 위해 사용되는 UserDefaults, Keychain, Core Data에 대해 알아보자. - 아래 링크 참고 더보기https://github.com/JeaSungLEE/iOSInterviewquestions 질문 리스트1. UserDefaults의 사용 예시와 주의 사항을 설명해주세요.2. Keychain은 어떤 데이터를 저장하는 데 적합한가요?3. Core Data와 SQLite의 차이점은 무엇인가요? UserDefaults "앱 실행 시 지속적으로 key-value 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스이다." Info.plist와 유사한 구조로 저장하며, plist에 데이터 저장UserDefaults.plist는..

개발하던 도중 아래와 같은 오류가 나왔다. 같은 파일명 때문에 생긴 에러라고 한다.Showing Recent Issues Multiple commands produce '경로/Xcode/DerivedData/.../FILE NAME' 이 에러를 해결하기 위해 찾아보다가 해결법을 찾았다! 해결 방법 아래와 같이 [Target -> Build Phases -> Compile Sources]에서 오류가 난 파일을 찾아 "-" 한다. 나는 Compile Sources에서 오류가 난 거였지만 다른 항목에서 오류가 난 걸 수도 있으니 어디서 오류 난 건지 찾아서 해당 파일을 "-"하면 된다. 갑자기 오류나서 당황했는데 해결법이 생각보다 쉬워서 좋았다 ㅎㅎ
iOS 면접 준비를 위한 3탄이다. Swift에서 중요한 개념인 클로저에 대해 알아보자. - 아래 링크 참고 더보기https://github.com/JeaSungLEE/iOSInterviewquestions질문 리스트1. Swift에서 클로저(Closure)란 무엇이며, 어떻게 사용하나요?2. 클로저의 캡처 리스트(Capture List)는 어떤 역할을 하나요?3. @escaping 클로저와 non-escaping 클로저의 차이점은 무엇인가요?4. 트레일링 클로저(Trailing Closure) 문법은 언제 사용하면 좋나요?1. 클로저란? 먼저 클로저의 개념에 대해 짚고 가보자! 클로저라고 하면 간단하게 익명함수를 뜻한다고 생각했었다.하지만 자세히 알아보니 func 키워드를 이용해 이름을 붙여주는 함수들..

프로젝트 진행 중 카카오 로그인 보안 강화를 위해 nonce를 추가하기로 결정하였다. Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 카카오 문서에서도 OpenID Connect 사용 시 ID 토큰 재생 공격을 방지하기 위해 nonce 파라미터 사용을 권장한다고 한다. 이렇게 봤을 때는 왜 사용하는지 이해가 가지 않았다.... 그래서 관련 내용을 더 찾아보았다!! OpenID Connect가 무엇인가? 카카오 로그인 Open ID Connect 지원한다는 공지에서 관련 내용을 확인할 수 있었다. [공지] 카카오 로그인 OpenID Connec..