본문 바로가기

전체 글

(34)
[iOS 면접]스토리보드를 이용했을때의 장단점을 설명하시오. 장점 앱의 흐름을 직관적으로 볼 수 있음 코드를 잘 못 짜더라도 UI를 쉽게 구현할 수 있음 view의 초기화가 필요 없기 때문에 view를 만드는데 오래 걸리지 않음 앱의 Flow Chart를 파악하기 쉬움 단점 충돌을 해결하기 어려움 스토리보드에 많은 컴포넌트가 있으면 로딩시간이 오래 걸림 뷰의 재사용성이 너무 떨어짐 스토리보드의 identifier를 항상 지정해야해서 번거로울 수 있음 스토리보드는 XML이기 때문에 협업 시에 merge Conflict가 발생하고, 해결하기 힘들다. 깃 충돌 방지를 위해서 view 하나 스토리보드 하나를 사용하면 Flow Chart 파악이라는 장점이 없어집니다. PR에 수정한 view를 자세히 쓰지 않으면 어떤게 변한 지 보기가 힘듭니다. 처음에 키게되면 로딩 시간도..
[구조 패턴] Decorator 데코레이터 패턴이란? 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 패턴입니다. 즉 기존 객체가 가진 동작들을 포함하는 특수 래퍼를 만들 수 있는 디자인 패턴입니다. Decorator pattern에 다른 이름? 데코레이터 패턴은 자기자신을 다시 자기 자신으로 감싸면서 큰 블록을 만들어 내는 것이 특징이 빈다. 작은 블록을 다시 작은 블록으로 감싸는 특징 때문에 Wrapper pattern이라고도 불립니다. 그리고 작은 블록으로 점점 큰 블록으로 쌓는다는 다는 특징 때문에 Structural pattern 패턴이라고 부릅니다. 주로 데코레이터 패턴은 언제 사용할까? 다른 객체들에 영향을 주지 않고 개별 객체 기능을 추가하고 싶을 떄 ..
[iOS 면접]실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오. 하드웨어 가속도 센서 가압계 센터, GPS 센서를 이용할 수 없습니다. 카메라를 사용할 수 없습니다. 마이크를 지원하지 않습니다. 전화기능을 사용할 수 없습니다. API Apple의 푸시 알림을 받거나 보낼 수 없습니다. 개인정보 보호 알림을 지원하지 않습니다. Handoff 기능을 지원하지 않습니다. MessageUI 기능을 지원하지 않습니다. 그 외 맥북 성능이 아이폰 성능보다 뛰어나기 때문에 CPU나 메모리 부담이 얼마나 되는지 알 수 없습니다. 네트워크 속도를 테스트할 수 없습니다. 페이스아이디는 얼굴인식은 되지 않지만 실행여부는 알 수 있습니다.
[구조 패턴] Bridge Pattern 브리지 패턴이란? 브리지 패턴이란 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴입니다. 말이 조금 어렵나요? 조금 쉽게 말하면 호환되지 않는 인터페이스를 가진 객체들이 협업할 수있도록 하는 디자인 패턴입니다. 예를 들어서 자동차가 하늘을 날 수는 없죠? 하지만 비행기가 자동차를 실으면 하늘을 날 수 있죠 (너무 직설적인가...) 객체들끼리의 협업? 이라고 생각하면 될 것 같습니다. 브리지 패턴 더욱 쉽게 알기 + 브리지 패턴을 사용하는 경우 예를 들어서 아이폰있다고 생각해봅시다. 아이폰도 모양이 달라지고 색깔도 가면갈 수록 다양해집니다. 만약 모양이 달라질 때 마다 색깔이 달라진다고 가정하면 일일이 저희가 수정해야하는 상황이 오면 많이 불편하죠 그래서 브리지 패턴을 사용하면 색깔..
[생성 패턴] Singleton Pattern 싱글턴 패턴이란? 싱글턴 패턴이란 클래스에 인스턴스가 하나만 있도록 하면서 그 하나의 인스턴스를 전역 접근으로 지정하는 것을 제공하는 디자인 패턴입니다. 즉 하나의 생성자가 여러개 호출되더라도 실제 객체는 하나이고 최초 생성 이후에 최초 생성자가 생성된 객체를 return하는 것입니다. 주로 사용하는 경우 + 쉽게 이해하기 예를 들어서 우리가 swif를 하면서 회원의 정보를 받아야할 상황이 온다고 가정합시다. 1VC는 name을 받고 2VC는 password를 받고 3VC를 받는 다고 생각해보자. 평소우리는 대부분 밑에 처럼 할 것입니다. Class UserInFo { var name: String var password: String var age: Int } //1VC = name Class 1VC ..
[생성 패턴] Abstract Factory Method Pattern 추상 팩토리 패턴이란? 추상 팩토리 패턴은 생성 패턴의 한 종류로 객체의 집합을 생성할 때 유리한 패턴입니다. 추상 팩토리 패턴은 앞에서 소개한 팩토리 메서드 패턴하고는 다를 패턴입니다. 추상 팩토리 패턴은 기존 팩토리 패턴에서 한번 더 추상화시켜서 서로 관련이 있는 제품을 생성하게 해 줍니다. 즉 구상 클래스들을 지정하지 않고도 객체의 모음을 생성할 수 있습니다. 왜 Factory Pattern이 나오게 된 걸까? 이러한 객체들을 프로그램 내에서 모든 UI를 각자 다른 객체로 만들게 되면 나중에 수정이 어려울 수 있기 때문에 이러한 객체들을 표현하는 하나의 추상 클래스를 정의하여 이를 해결하기 위한 방법으로 만들어졌습니다. 추상 팩토리 메서드 패턴은 주로 어떤 경우에 사용할까? 생성을 책임지는 구체적인..
[생성 패턴]Factory Method Pattern 팩토리 메서드 패턴이란? 팩토리 메서드 패턴은 객체지향 디자인 패턴의 하나인데 Factory emthod는 부모 클래스에 알려지지 않는 구체 클래스를 생성하는 패턴이다. 때문에 자식 클래스가 어떤 객체를 생성해야 할지 알려주는 패턴이기도 한다. 그리고 주로 클래스 코드에 구체 클래스 이름을 감추가 위해서도 사용되는 패턴입니다. 즉 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체의 유형을 변경할 수 있도록 하는 패턴입니다. 팩토리 메서드 패턴 쉽게 이해하기 예를 들어서 공장관리 앱을 만들고 있다고 생각합니다. 앱 기능 중 트럭 운송을 처리할 수 있는 트럭 클래스가 있다고 생각해봅시다. 하지만 어느 날 비행기 관련 배송을 지원하겠다고 발표가 났습니다. 근데 저는..
[생성 패턴] Prototype Pattern 프로토타입 패턴이란? 프로토타입 패턴은 생성할 객체들의 타입이 프로토타입인 인스턴스로부터 결정되도록 합니다. 인스턴스는 새 객체를 만들기 위해 자신을 복제합니다. 즉 프로토타입 패턴은 코드를 다른 클래스에 의존하지 않고 기존 객체들을 복사할 수 있도록 하는 생성 디자인 패턴입니다. 프로토타입 패턴 쉽게 이해하기 음....(쉽게 생각하기가 제일 어려운 것 같다) 예를 들어서 원시인들이 있다고 생각해 보자 그런데 어느 날 하늘에서 핸드폰이 떨어졌다고 생각해 봅시다. 원시인들은 핸드폰에 든 손전등 그리고 유튜브 등등을 보고 핸드폰에 욕심이 났다고 하자! 한 원시인이 자기가 핸드폰을 만들겠다고 해서 정말 똑같은 외형으로 핸드폰을 만들어왔다고 치자 하지만 그것들은 그들이 원하는 손전등 또는 유튜브를 실행할 수 없..