본문 바로가기

728x90
반응형
SMALL

iOS

(64)
AppDelegate iOS 앱에서는 앱의 생명 주기(lifecycle)를 관리하는 객체로 UIApplicationDelegate 프로토콜을 따르는 AppDelegate 클래스를 사용합니다. AppDelegate 클래스에는 앱 실행, 백그라운드 전환, 종료 등의 이벤트 발생 시 자동으로 호출되는 여러 개의 함수가 있습니다. 대표적인 AppDelegate 함수 func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { print("willFinishLaunching") // 앱이 실행되기 직전에 수행할 작업들을 여기에 작성합니다. r..
ViewController Life Cycle ViewController Life Cycle 예제 코드 import UIKit class NewViewController: UIViewController { override func loadView() { print("loadView") // 뷰 계층 구조를 만드는 코드 // 이 메서드에서는 반드시 super.loadView()를 호출해야 합니다. super.loadView() } override func viewDidLoad() { super.viewDidLoad() print("newVC_viewDidLoad") view.backgroundColor = .blue // 뷰 컨트롤러의 뷰가 메모리에 로드된 후 실행되는 코드 } override func viewWillAppear(_ animated: ..
iOS 면접 질문 중복 많습니다. Delegate(델리게이트)란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. MVC 패턴이란 무엇인가요? iOS 앱 개발에서 이 패턴을 사용하면 어떤 이점이 있을까요? 프로토콜(Protocol)이란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. Codable 프로토콜이란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. Optional(옵셔널)이란 무엇이고, 왜 사용되는지 설명해주세요. 클로저(Closure)란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. GCD(Grand Central Dispatch)란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. Autolayout(오토레이아웃)이란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. ARC(Automatic Refer..
iOS 프레임워크 VS 라이브러리 진짜진짜진짜 chatGPT에게 감사하는 마음으로 씁니다. 혼자서 공부하는 것이 진짜 쉽지 않은 데...그나마 ㅠㅠㅠ... 지금까지 제대로 이해하지 않았던 개념을 잡으려고 정리합니다. 프레임워크란? 프레임워크란 애플리케이션의 전체적인 아키텍처를 구성하는 라이브러리 집합체이며, 앱 개발에서 필수적인 여러 기능들을 제공합니다. 라이브러리와의 차이 프레임워크와 라이브러리의 가장 큰 차이는 제어 흐름의 주도성입니다. 라이브러리는 개발자가 필요할 때마다 호출하여 사용하는 방식으로, 개발자가 제어 흐름을 가지고 있습니다. 즉, 개발자가 필요한 기능을 호출하여 사용하는 방식입니다. 반면에 프레임워크는 제어 흐름이 프레임워크에게 있으며, 개발자가 프레임워크에게 필요한 정보를 제공하고 필요한 기능을 호출하는 방식입니다. ..
API 키 숨기기, xcconfig파일로 API 키 숨기는 이유 APIKey는 일반적으로 민감한 정보이기 때문에, 코드에 직접 하드코딩하여 사용하는 것은 보안상 위험할 수 있습니다. 대신, 보안을 강화하기 위해 Info.plist 파일에 저장된 APIKey를 사용할 수 있습니다. ${APIKey}와 같이 변수 표현식을 사용하는 것은 Build Settings에서 변수를 정의하고 이를 Info.plist 파일에서 참조할 수 있게끔 하는 방법 중 하나입니다. 따라서, Info.plist 파일에는 APIKey의 값을 직접 적는 대신, ${APIKey}와 같이 변수를 사용하여 Build Settings에서 설정한 값을 참조할 수 있습니다. 이를 통해 코드를 변경하지 않고도 APIKey 값을 보호하고 보안을 강화할 수 있습니다 1. Command + N..
Feature, ViewModel, UseCase Feature iOS에서 Feature는 애플리케이션의 기능 또는 모듈을 나타내는 용어입니다. 예를 들어, "로그인", "회원 가입", "결제", "쇼핑 카트" 등이 모두 애플리케이션의 각각의 Feature가 될 수 있습니다. 각 Feature는 대개 특정 UI를 가지고 있고, 관련된 비즈니스 로직과 데이터 처리 로직을 포함합니다. iOS 애플리케이션을 개발할 때, 각 Feature는 보통 별도의 모듈 또는 폴더로 구성되어 있으며, 해당 Feature를 개발하는 데 필요한 코드 및 리소스가 모두 포함됩니다. 이렇게 Feature 단위로 모듈화하여 개발하면 코드의 재사용성이 높아지며, 애플리케이션을 보다 쉽게 유지보수할 수 있습니다. *기획에 따라 Featrue 단위로 스프린트에 맞춰 개발하곤 합니다. :..
iOS 터치-4 UIResponder.h 그럼 고대하던 UIResponder.h 를 읽어보는 시간 :) #if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include() 이 코드는 UIKitCore 프레임워크에서 UIResponder.h 헤더 파일을 포함하고 있는지 확인하고, 만약 헤더 파일이 없다면 UIKit public 헤더 파일을 사용할 것인지를 결정하는 조건문입니다. defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS -> 이게 둘 다 있거나? !__has_include() -> UIKitCore 프레임워크에서 UIResponder.h 헤더 파일을 포함하지 않는다면..
iOS 터치-3 iOS에서 터치가 일어나면, 우선 캐패시티브 터치스크린을 통해 위치와 크기 등의 정보가 기기로 넘어가고 기기에서 UIGestureRecognizer.h 이란 헤드 파일에서 이 정보를 읽고 내용 새로 만들어진 메소드 인스턴스에 저장하게 되는 줄 알았지만, chatGPT한테 아니라고 혼났다. 아니란다... 그래서 UIResponder를 공부하기로... 예제코드 이 코드에서 직접적으로 UIResponder 클래스를 상속받은 클래스는 없습니다. 하지만 UIView 클래스는 UIResponder 클래스를 상속받고 있으며, 따라서 MyView 클래스는 UIView 클래스의 서브클래스이면서 UIResponder 클래스의 서브클래스입니다. 따라서 MyView 클래스는 터치 이벤트에 응답하기 위해 UIResponder의..

728x90
반응형
LIST