올바른 괄호
문제 설명 괄호가 바르게 짝지어졌다는 것은 ‘(‘ 문자로 열렸으면 반드시 짝지어서 ‘)’ 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ”()()” 또는 “(())()” 는 올바른 괄호입니다. ”)()(“ 또는 “(()(“ 는 올바르지 않은 괄호입니다. ’(‘ 또는 ‘)’ 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이...
문제 설명 괄호가 바르게 짝지어졌다는 것은 ‘(‘ 문자로 열렸으면 반드시 짝지어서 ‘)’ 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ”()()” 또는 “(())()” 는 올바른 괄호입니다. ”)()(“ 또는 “(()(“ 는 올바르지 않은 괄호입니다. ’(‘ 또는 ‘)’ 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이...
개요 UIView.transition: iOS에서 애니메이션 전환을 간단하게 처리하는 방법 iOS에서 뷰 간 전환 애니메이션을 직접 구현하려면 UIView.animate나 CATransition 등 복잡한 로직을 다뤄야 하는 경우가 많다. 하지만 UIView.transition을 활용하면 비교적 간단한 코드로 뷰 전환 애니메이션을 처리할 수 있다. ...
1. 개요 UIWindow는 UIView의 서브클래스 iOS 앱 화면 출력의 최상단 컨테이너 일반적으로 앱당 하나의 UIWindow 사용 보통 AppDelegate나 SceneDelegate에서 생성 및 설정 2. 주요 역할 뷰 계층의 루트 역할 이벤트 전달의 시작점 (터치, 키보드 등) 상태 변화에 따른 UI 표시 (예: 키보드, 상태 표시...
개요 iOS 앱을 개발하다 보면 앱 전체의 상태를 관리하고 시스템 이벤트에 반응하는 기능이 필요하다. 이 중심에 있는 객체가 바로 UIApplication이다. 이 글에서는 UIApplication이 어떤 역할을 하고, 어떻게 사용하는지 핵심만 정리한다. UIApplication이란? UIApplication은 앱의 전반적인 상태를 제어하고 ...
이유 1: 단일 UI 이벤트 루프 구조 (Single-threaded UI loop) iOS (UIKit)는 단일 UI 루프 모델을 사용. 사용자의 터치 → 이벤트 전달 → 화면 갱신은 모두 메인 스레드에서 순차적으로 일어남 여러 스레드에서 UI를 동시에 변경하면, 이벤트 순서가 꼬이거나 충돌이 발생할 수 있음 그래서 UIKit은...
Key - Value 쌍으로 이루어진 순서 없는 컬렉션. key는 유일(unique) 해야 함 키는 Hashable해야 함 (String, Int, UUID 등 기본 타입은 모두 가능) value는 중복 가능 key를 이용해 빠르게 값을 조회할 수 있음 (O(1)) 예제 코드 let dict: [String: Int] = [ ...
문제 : 빌드를 한 후 첫 로그인은 성공하지만 로그아웃 후 다시 로그인을 하면 메인뷰컨트롤러로 넘어가지 않는 문제 발생. 기존 방식 connection to notion 버튼 탭 노션 인증 페이지 사파리로 열기 사파리에서 인증완료되면 서버로 요청한 후 앱 스키마로 리다이렉트 앱 스키마로 sceneDelegate에서 url 쿼리 처리...
트러블 슈팅 원인 로그인 시 응답된 bot_id를 저장한 후 그 id값으로 사용자의 데이터를 요청할 때 id값이 UserDefaults에 저장되기 전에 사용자의 데이터를 요청하는 문제 발생 해결 sceneDelegate에서 앱 스키마를 통해 botId 쿼리값을 받아서 mainViewModel의 savedBotId PublishRel...
객체 간의 이벤트를 전달하는 시스템 기능 객체 간의 직접적인 연결 없이 이벤트 전달 가능 뷰 컨트롤러 간 데이터나 이벤트 전달 가능 비동기적으로 실행 가능하여 UI업데이트에 활용 가능 기본 개념 post() - 이벤트 발생 특정 이벤트가 발생하면 알림을 보내 다른 객체에 전달함 Noti...
present는 UIViewController에서 다른 UIViewController를 표시하는 메서드로, 현재 화면에 새로운 뷰 컨트롤러를 모달 방식으로 표시할 때 사용됨. 1. 기본 문법 func present(_ viewControllerToPresent: UIViewController, animated flag: ...