분류 전체보기43 OAuth - Kakao vs Apple 누가 가입/탈퇴 절차의 책임을 지는가사이드 프로젝트를 진행하면서 iOS는 카카오, 애플 소셜 로그인을 가져가고 있는데 이 둘의 차이점에 의해 백엔드와 길게 논의하는 시간이 있었다. 카카오는 앱에서 카카오 인증 서버에게 토큰을 발급받는데 애플은 그렇지 않아 생기는 논쟁이었다.서버 주도의 Apple애플 로그인의 흐름은 다음과 같다.앱에서 Apple 로그인 요청 → 사용자 동의Apple이 AuthorizationCode 전달앱이 AuthorizationCode를 서버로 전달서버가 Apple API에 Authorization Code를 제출해 AccessToken & RefreshToken 발급서버에서 가입 / 로그인 처리 및 토큰 관리탈퇴할때도 서버에서 RefreshToken을 활용해 Apple API 호출이.. 2025. 8. 13. [iOS/SwiftUI] Life Cycle SwiftUI는 선언적 UI 프레임워크로, 뷰 자체가 State에 반응하여 UI를 갱신한다. UIKit과는 달리 ViewController가 없고, State를 중심으로 UI가 업데이트 되기 때문에 명시적 LifeCycle Method가 존재하지 않는다. 때문에 LifeCycle hook 대신 ‘Modifier’를 제공하는데 이마저도 UIKit처럼 상세하게 나뉘지는 않고 onAppear, onDisappear로 종류가 한정적이다.State가 변하면 이를 감지해 View 전체를 re-render하게 되는데, 이때 메모리에서 View는 값 타입으로 변경점이 있는 부분만 재구성된다. 비동기 작업 역시 UIKit은 callback, delegate, notification 등을 활용하지만 SwiftUI는 Com.. 2025. 8. 11. [SwiftUI] InteractiveUI (Gesture, Animation, Transition) 안녕하십니까, 민트입니다. 😈스터디 중 SwiftUI의 InteractiveUI들에 대해 정리해 보았습니다.1. Gesture@GestureState제스처가 진행 중일 때만 임시적으로 상태를 유지제스처가 끝나면 자동으로 초기값으로 되돌아가는 상태 래퍼 (일시적)상태에 따라 뷰 속성을 실시간으로 변화시킴@State 처럼 지속적인 변화가 아닌, 임시 상태 용도제스쳐 추적하는 동안 콜백을 통해 상태를 직접 갱신updating: 제스쳐가 변경되는 순간, 일시적인 UI 상태onChanged: 제스쳐를 사용하는 동안의 UI 상태, 종료 후 재설정 XonEnded: 종료 후 상태 재설정Gesture Composition TypeSimultaneous여러 제스쳐를 합쳐서 한 번에 인식Sequenced여러 제스쳐 상태.. 2025. 4. 21. [오브젝트] 4장. 설계 품질과 트레이드 오프 📕 기억에 남는 문장객체 지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다.객체지향 설계의 핵심은 책임책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 깊이 연관되어 있음설계는 변경을 위해 존재하고 변경에는 어떤 식으로든 비용이 발생한다. 훌륭한 설계란 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만드는 것이다.결합도와 응집도를 합리적인 수준으로 유지할 수 있는 중요한 원칙이 있다. 객체의 상태가 아니라 객체의 행동에 초점을 맞추는 것이다.객체지향 설계에서는 두 가지 방법을 이용해 시스템을 객체로 분할할 수 있다.상태(데이터)를 분할의 중심축으로 삼는 방법객체는 자신이 포함하고 있는 데이터를 조작하는데 필요한 오퍼레이션 정의객.. 2025. 4. 13. [iOS] 원격 모듈 업그레이드 오류 (Could not compute dependency graph: unable to load transferred PIF: The workspace contains multiple references with the same GUID 'PACKAGE:1YM1U4L3KHXI6YAJKZPL0AW5PXP8KNX9R::MAINGROUP') 안녕하십니까, 민트입니다 😈키체인 오픈소스를 만들어서 작업하던 중, 업그레이드를 했더니 문제가 생겼습니다. 더보기Showing Recent Issues Failed to resolve dependencies Dependencies could not be resolved because no versions of 'keychainmodule' match the requirement 1.0.2..Resolving Package Graph Failed 4/10/25, 7:00 PM 1.8 seconds키체인 모듈을 적용하고 있던 프로젝트에서 업그레이드한 1.0.2를 읽지 못하는 것입니다. clean build를 해도 여전히 다음과 같은 오류가 떴습니다. 더보기Showing Recent IssuesP.. 2025. 4. 11. [오브젝트] 3장. 역할, 책임, 협력 📕 기억에 남는 문장들객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다.객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정에서 드러난다.객체지향에서 가장 중요한 것은 역할, 책임, 협력이다. 역할, 책임, 협력이 제자리를 찾지 못한 상태라면 응집도 높은 클래스와 중복 없는 상속 계층을 구현한다고 하더라도 여러분의 애플리케이션이 침몰하는 것을 구원하지 못할 것이다.협력객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용객체는 고립된 존재가 아니라 시스템의 기능이라는 더 큰 목표를 달성하기 위해 다른 객체와 협력하는 사회적인 존재다. 협력은 객체지향의 세계에서 기능을 구현할 수 있는 유일한 방법이다.어떤 객체가 다른 객체에게 무언가를 요청하는 것.. 2025. 4. 4. [iOS/WWDC21] Explore structured concurrency in swift 1 안녕하십니까, 민트입니다. 😈 WWDC21 Explore structured concurrency in swift를 보고 내용을 정리해 보았습니다.양이 많아서 Part1과 2로 분리합니다.구조적 프로그래밍초기에 컴퓨터를 사용할 때는 명령어 시퀸스로 작성되어 제어 흐름을 관리하기 어려웠습니다. 하지만 요즘은 언어에서 구조화된 프로그래밍을 사용하여 제어 흐름을 균일하게 만들기 때문에 이러한 일은 거의 없어졌습니다.예를 들어 if - else문은 구조화된 제어 흐름을 사용합니다. 중첩된 코드 블록이 위에서 아래로 이동하는 동안에만 조건부로 실행됩니다. 이처럼 Swift에서는 해당 블록이 정적 범위인 scoping을 따릅니다. 이에 해당 블록 내에서 정의된 변수들의 생명 주기는 블록을 벗어날 때 끝납니다.이처.. 2025. 4. 1. [혼자 공부하는 컴퓨터 구조 + 운영 체제] 2장 데이터 📕 기억에 남는 문장들0과 1을 나타내는 가장 작은 정보 단위를 비트(bit)라고 합니다. 비트는 전구에 빗대어 생각해 보면 이해하기 쉽습니다.1 byte8 bit1 kB1,000 byte1 MB1,000 kB1 GB1,000 MB1 TB1,000 GBword란 CPU가 한 번에 처리할 수 있는 데이터 크기를 의미합니다. 만약 CPU가 한 번에 16 비트를 처리할 수 있다면 1워드는 16비트가 되고, 한 번에 32 비트를 처리할 수 있다면 1워드는 32 비트가 되는 것이죠.정의된 워드의 절반 크기를 하프 워드, 1배 크기를 풀 워드, 2배 크기를 더블 워드라고 부릅니다.이진수의 음수 표현컴퓨터는 0과 1만 이해할 수 있기 때문에 마이너스 부호를 사용하지 않고 0과 1만으로 음수를 표현해야 합니다.가장 .. 2025. 3. 28. [혼자 공부하는 컴퓨터 구조 + 운영체제] 1장 컴퓨터 구조 시작하기 📕 기억에 남는 문장들컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있습니다.성능, 용량, 비용 문제는 프로그래밍 언어의 문법만 알아서는 해결하기 어렵습니다.컴퓨터 구조를 이해하면 입력과 출력에만 집중하는 개발을 넘어 성능, 용량, 비용까지 고려하며 개발하는 개발자가 될 수 있습니다.컴퓨터 구조 지식컴퓨터가 이해하는 정보: 0과 1데이터: 숫자, 문자, 이미지, 동영상과 같은 정적인 정보명령어: 데이터를 움직이고 컴퓨터를 작동시키는 정보컴퓨터의 네 가지 핵심 부품 CPU(중앙처리장치)ALU(산술논리연산장치): 계산기제어장치: 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치레지스터: CPU 내부의 작은 임시 저장 장치, 여러 개가 존.. 2025. 3. 27. 이전 1 2 3 4 5 다음