분류 전체보기

· Swift🐤
Array 형태 var labotaryStudent: [String] = [yonghoon, dongju, woojae] 특징 순서가 있음 (index) 값의 중복 허용 모든 값들은 같은 형태를 갖는다. Set 형태 특징 순서가 없음 값의 중복 허용 X (모든 값들은 고유하다.) 모든 값들은 같은 형태를 갖는다. Dictionary Tuple 사용 목적 주로 함수호출에서 한개 이상의 서로 다른 타입의 값들을 반환을 하려고 할때 사용이 됩니다. /* Int형태의 리스트를 입력 받았을때 그 중 최대값, 최소값, 값들을 모두 합한 값, 평균값을 튜플 형태로 반환하는 함수 입니다. */ func calculateStatistics(scores: [Int]) -> (min: Int, max: Int, sum: I..
오늘은 MVVM에 대해서 알아보겠습니다. 현재 개발하는 환경에서 다양한 디자인 패턴이 존재하고 있습니다. 많이 사용하고 제가 처음 적용했던 MVC패턴부터 singleton 패턴, MVP패턴 등 정말 다양한 디자인 패턴들이 존재합니다. 이런 다양한 디자인패턴 속에서 패턴들의 특장점을 파악하여 적재적소에 사용하다는 것을 중요하게 생각하고 있습니다. 그래서 위 본문에서는 어떠한 특징이 있는지 어떤 상황 속에서 MVVM패턴을 사용해야하는지 혹은 특장점은 어떻게 되는지 한번 학습해보는 시간을 가져보도록 하겠습니다. MVVM(Model View ViewModel) MVVM은 일반적으로 사용자 인터페이스의 이벤트 중심 구조를 간소화하였다. MVVM는 UI적인 부분이 Model 플랫폼에 종속되지 않는다. 구성들의 개요..
· SwiftUI🐧
ObservableObject 이름에서 알 수 있듯이 ObservableObject를 채택한 객체는 관찰을 하는 객체가 되게 됩니다. 그래서 위에 정의처럼 객체가 변경되기전에 신호를 보내는(emit) publisher를 가지고 객체라고 설명하는 것입니다. @Published 해당 프로퍼티가 랩퍼가 표시된 속성의 변경사항을 관찰하고 있다가 변경 시에 그 속성에 의존하는 모든 view가 로드되어 변경 사항을 반영합니다. class MyModel: ObservableObject { @Published var count = 0//해당 속성이 변경되었을때 이 속성의 변경 사항을 발행!func incrementCount() { count += 1//변경 사항을 관찰하고 있는 속성을 변경을하는 지점 } } objec..
· Swift🐤
C언어를 사용하다 보면 동적으로 메모리를 할당받았을 때 메모리를 해지를 해야 한다는 부담을 가지게 됩니다. 하지만 JAVA와 같은 경우에는 garbage collector라는 기능을 지원해줘서 이러한 부담을 덜어줍니다. Swift 같은 경우에도 메모리를 관리해 주는 기능이 있는데 이것이 바로 ARC!입니다. ARC란? ARC(Automatic Reference Counting)는 이름에서 알 수 있는 참조하는 횟수를 자동적으로 세어서 앱의 메모리 사용을 추척하고 관리하는 것입니다. ARC 객체를 사용하기 위해 할당받은 메모리를 자동적으로 해지해주기 때문에 덕분에 개발자는 개발을 할 때 메모리 사용에 부담을 덜어줍니다. (plus: class와 closure는 참조 타입, structure(구조체), en..
Question. ObservableObject는 어떻게 변경사항을 SwiftUI에 전달할 수 있을까? 주된 방법으로는 2가지가 존재합니다. 한 가지는 @Published 속성 래퍼이고 나머지 한가지로는 objectWillChange.send()메소드를 호출하는 방법이 있습니다. Question. ViewController 클래스를 상속받는 것에 장점은 무엇인가? viewDidLoad() 혹은 viewWillAppear와 같은 메소드을 사용할 수 있는 권한을 가지게 됩니다. 상위 클래스의 코드를 재사용할 수 있다는 장점이 있다. Question. 클로저는 값인가요 참조 유형인가요? 클로저는 참조 유형입니다. 클로저는 변수에 할당해야하며, 클로저가 할당된 변수의 값을 다른 변수에 할당하게 된다면 값을 복사..
Question. 스위프트에서 조건부 접합성(conditional conformance)이란 무엇인가? 프로토콜 접합성은 일정 조건이 충족될 때만 프로토콜의 정의된 메서드 및 속성을 구현하고 사용할 수 있게 됩니다. 특정 제약조건 하에서만 유형이 프로토콜을 준수할 수 있는 능력 Question. 스위프트에서 ButtonStyle 프로토콜의 목적은 무엇일까? ButtonStyle 프로토콜은 새로운 버튼 스타일은 커스텀마이징을 가능하게 한다. 이것을 통해 새로운 뷰들을 생성할 필요없이 또는 과거의 스타일 코드를 복사할 필용 없이 재사용이 가능하게 한다. Question. IBDesinable의 목적은 무엇인가? 사용자 정의뷰를 @IBDesignable로 표시하면 Xcode에서 스토리보드를 편집할때 해당 뷰를..
Question. iOS개발자는 무엇이고, 어떤 의무를 가지고 있는가? iOS개발자는 응용소프트웨어 엔진니어로서, Apple에서 제공하는 디바이스들의 애플리케이션을 개발하는 개발자입니다. iOS개발자 가독성이 높고 효율적이면서 안전한 코드를 작성해야합니다. 개발, 디자인, 테스트, 런칭, 유지보수의 역활을 수행해야하고, 코드의 평가와 구현 그리고 새로운 기술을 지속적으로 공부할 수 있는 역량을 요하는 개발자입니다. Question. 운영체제에서 overlay란 무엇을 의미하는가? 운영체제에서 overlay란, 실행하고자 프로그램이 물리적인 메모리보다 용량이 클때, 지금 당장 필요하지 않은 부분을 overlay로 설정하고 다른 메모리 공간에 따로 저장하여 필요할때 불러오는 형식으로 프로그램을 운영하는 프로..
앞으로 지금 당장 개발자 면접를 한다기 보다, top100의 질문을 답변하고 학습함으로서 기초를 다진다는 것에 의미를 두고 공부할 예정입니다. 기초적인 iOS, CS, Swift 지식에 대해 공부하기 위해 주기적으로 업로드할 예정입니다. top 100 면접 질문 source URL: https://www.temok.com/blog/ios-interview-questions/