전체보기(291)
-
[iOS] Delegate Pattern / 델리게이트(위임) 패턴
1. iOS에서 Delegate 패턴이란?Delegate 패턴은 객체 간의 통신을 구현하는 데 사용되는 디자인 패턴으로, 한 객체가 다른 객체의 행동을 위임할 때 사용됩니다.역할:A 객체가 특정 이벤트나 작업을 처리할 권한을 B 객체에게 위임(delegate)합니다.위임받은 객체는 정의된 프로토콜을 준수하여 해당 작업을 수행합니다.주요 특징:1:1 관계: 한 객체는 하나의 delegate만 가질 수 있음.타이트한 결합: 위임받은 객체를 명시적으로 지정해야 함.유연성: 이벤트나 작업 처리 로직을 외부 객체에 위임하여 재사용성과 코드 분리를 향상.2. Delegate 패턴 사용 사례Delegate 패턴은 1:1 이벤트 처리가 필요한 상황에서 사용됩니다.사용 사례UITableView, UICollectionV..
2024.12.30 -
[Swift] 접근 제어자(Access Control Levels)
접근 제어자(Access Control Levels)Swift의 접근 제어자는 코드 내에서 접근 가능한 범위를 정의하여 모듈성과 코드의 캡슐화를 향상시키는 데 사용됩니다. Swift에서는 다섯 가지 접근 수준을 제공합니다:1. open특징: 모듈 외부에서 접근 및 재정의 가능.사용 위치: 클래스 및 클래스 멤버에만 사용 가능.목적: 해당 클래스를 다른 모듈에서 확장(상속)하고, 메소드를 재정의하도록 허용.예시: 외부 모듈에서 상속과 오버라이드를 지원해야 하는 경우.open class Car { open func horn() { print("honk") }}open class Morning: Car { override open func horn() { print("..
2024.12.29 -
[iOS] Protocol / 프로토콜 / 개념 의미 요구사항 확장 POP
프로토콜 프로토콜은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다.구조체, 클래스, 열거형은 프로토콜을 채택해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있습니다.어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다고 표현합니다.타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야합니다. 즉 프로토콜은 기능을 정의하고 제시할 뿐이지 스스로 기능을 구현하지는 않습니다.공통 인터페이스 정의:서로 다른 타입에 동일한 동작을 강제.의존성 역전:코드의 유연성과 확장성을 증가.추상화:구체적인 구현이 아닌 동작에 집중. 프로토콜의 의미: 구현자와 사용자의 관점1. 구현하는 입장에서의 프로토콜프로토콜..
2024.12.29 -
[iOS / macOS] apple OS, CS, Network 면접 질문
문제 리스트 가져온 곳 GitHub - JeaSungLEE/iOSInterviewquestions: 👨🏻💻👩🏻💻iOS 면접에 나올 질문들 총 정리👨🏻💻👩🏻💻iOS 면접에 나올 질문들 총 정리 . Contribute to JeaSungLEE/iOSInterviewquestions development by creating an account on GitHub.github.com 레벨 0컴퓨터 시스템에서 CPU, RAM, 저장 장치의 역할과 이들이 어떻게 상호 작용하는지 설명해주세요.CPU와 메모리 간의 데이터 교환은 어떻게 이루어지나요?버스(Bus)란 무엇이며, 어떤 종류가 있나요?더보기CPU(Central Processing Unit)컴퓨터의 핵심 처리 장치, 명령어를 해석..
2024.12.29 -
[iOS] Auto Layout
1. iOS에서 Auto Layout을 사용하는 이유와 장점Auto Layout은 다양한 디바이스 크기와 화면 비율을 가진 iOS 환경에서, 반응형 레이아웃을 구현하기 위해 사용됩니다.이유디바이스 다양성 대응: iPhone, iPad, 다양한 화면 크기 및 방향(가로/세로) 지원.유지보수 용이성: 레이아웃을 코드로 설정하는 것보다 직관적이고 수정이 쉬움.애니메이션 지원: 뷰 크기와 위치를 변경할 때 자연스러운 애니메이션 처리 가능.다국어 지원: 텍스트 길이가 달라지는 다국어 환경에서도 레이아웃 유연성 제공.장점유연성: 부모/자식 뷰 간 상대적 크기와 위치를 설정 가능.가독성: Storyboard에서 시각적으로 제약 조건을 확인 가능.코드 재사용성: 다양한 화면 크기에서 동일한 레이아웃 재사용.Dynami..
2024.12.28