반응형

SWIFT 23

[프로그래머스 Lv.0 / Swift] Lv.0 풀이_모음.zip

A로 B 만들기 func solution(_ before:String, _ after:String) -> Int { return String(before.sorted()) == String(after.sorted()) ? 1 : 0 } 가까운 수 func solution(_ array:[Int], _ n:Int) -> Int { let sortedArray = array.sorted() // 가까운 수가 여러 개일 경우 더 작은 수를 담기 위해 정렬 var resultNum = sortedArray[0] var tempNum = abs(sortedArray[0] - n) for i in sortedArray { if abs(i - n) < tempNum { resultNum = i tempNum = ab..

[프로그래머스 Lv.0 / Swift] 유한소수 판별하기 With 최대공약수 & 최소공배수

이 문제는 최대공약수를 구하면 쉽게 풀리는 문제다. 최대공약수와 최소공배수는 알고리즘 문제에서 자주 나오는 소재 중 하나여서 한 번 제대로 알아보자! 먼저 유클리드 호제법(유클리드 알고리즘)에 따르면 2개의 자연수 a, b(a > b)에 대해서 a를 b로 나눈 나머지를 r이라 하면 a와 b의 최대공약수는 b와 r의 최대공약수와 같아진다. 그리고 다시 b를 r로 나눈 나머지 r'가 생성되고, r을 r'로 나눈 나머지 r''가 나오고... 쭉 반복해서 최종적으로 나머지 0이 나왔을 때의 나누는 수가 a와 b의 최대공약수가 된다. 글로만 보면 뭔 말인지 어렵다. https://www.youtube.com/watch?v=Obs-HC5j5bI 이 영상보면 이해가 팍 된다. gcd(A, B) -> A % B 결과 ..

[iOS Interview Questions] ARC란 무엇인지 설명하시오.

Swift는 앱의 메모리 사용을 추적하고 관리하기 위해 ARC(자동 참조 카운팅, Automatic Reference Counting)을 사용합니다. 대부분의 경우에서는 메모리 관리가 알아서 작동되기 때문에 개발자가 메모리 관리에 대해서 생각할 필요는 없습니다. ARC는 클래스의 인스턴스가 더 이상 필요하지 않을 때 해당 인스턴스가 사용한 메모리를 자동으로 해제합니다. ➡️ 참조 카운팅이기 때문에 클래스 인스턴스에만 적용됩니다. 값 타입인 구조체와 열거형은 적용되지 않습니다! Swift에서 새로운 클래스 인스턴스를 생성할 때마다 ARC는 해당 인스턴스에 대한 정보를 저장하기 위해 메모리를 할당하고, 인스턴스가 더 이상 필요하지 않은 경우 ARC는 해당 인스턴스에 사용된 메모리를 해제하여 메모리 공간을 차..

[iOS Interview Questions] UIView 에서 Layer 객체는 무엇이고 어떤 역할을 담당하는지 설명하시오.

UIView의 Layer 프로퍼티는 CALayer(Core Animation 프레임워크에서 제공하는 객체) 타입 객체이며 뷰의 그래픽 처리 및 애니메이션 처리를 합니다. Layer 속성은 항상 CALayer 또는 CALayer 서브 클래스 객체를 반환하기 때문에 nil이 될 수 없습니다. 이때 객체의 실제 클래스는 UIView의 layerClass 클래스 메서드에서 반환되는 값에 따라 결정이 됩니다. 그리고 UIView가 Layer의 delegate 역할을 합니다. UIView는 레이아웃 및 터치 이벤트와 같은 여러 작업들을 수행하지만 직접적으로 화면을 그리거나 애니메이션을 제어하지는 않습니다. UIView는 CALayer 위에 있는 wrapper라고 보면 됩니다. 각각의 UIView에는 하나의 루트 C..

[iOS Interview Questions] Result 타입에 대해 설명하시오.

@frozen enum Result where Failure : Error Result 타입은 경우에 따른 관련된 값을 포함하여 성공 또는 실패를 나타내는 값이라고 설명하고, enum으로 작성되어 있습니다. 앱 실행 중에 에러가 발생하면 프로그램은 강제로 종료가 됩니다. 컴파일 에러는 문법과 관련 있기 때문에 앱 실행 전에 에러가 발생하고, 런타임 에러는 앱 실행 중에 발생한 에러로 강제 종료 상황이 올 수 있습니다. 하지만 발생 가능한 에러에 대한 처리를 해주면 강제 종료 없이 앱을 계속 실행시킬 수 있어서 개발자는 에러 처리를 위하 코드를 작성해야 합니다. Swift 1.x 최초 버전에서는 Objective-C와 동일한 방법으로 오류 처리를 했습니다. NSError 포인터를 사용했기 때문에 포인터 사..

[iOS Interview Questions] Codable에 대하여 설명하시오.

앱을 만들 때 서버와 통신을 해서 데이터를 주고 받는 경우가 많은데 특히 요즘에는 JSON 형식으로 된 데이터를 주고 받는 경우가 흔합니다. 애플 공식 문서에서 Codable은 “A type that can convert itself into and out of an external representation.” 자신을 변환하거나 외부 표현으로 변환하는 타입이라고 말하는데, 여기서 외부 표현이란 JSON 형식과 같은 데이터 포맷을 말하고, 변환이라는 것은 Encode하거나 Decode하는 것으로 이해하면 됩니다. typealias Codable = Decodable & Encodable Codable은 Decodable과 Encodable이라는 두 프로토콜을 합쳐놓은 형태이므로 class, struct,..

[iOS Interview Questions] Class의 성능을 향상 시킬수 있는 방법들을 나열해보시오.

결론부터 말하면 class에 final 혹은 private 키워드를 붙여서 성능을 향상할 수 있습니다. 접근 제어 위에서 말한 키워드는 Access Control 즉, 접근 제어를 하기 위해 쓰이는 키워드인데요, 다른 소스파일이나 코드에서 어떠한 코드의 전체나 일부에 대한 접근을 제한합니다. 접근을 제한한다는 말은 A 클래스에 선언되어 있는 함수나 변수들 B 클래스에서 사용하게 하거나 못 하게 제어하는 것입니다. 클래스나 구조체, 열거형 자체를 접근 제어하거나 이 안에 선언되어 있는 함수, 변수 등등에 대해서 모두 접근 제어가 가능합니다. 선언 시 앞에 키워드를 붙여서 사용하면 됩니다. public class TestClass { final let testStr: String = "test" privat..

[iOS Interview Questions] Singleton 패턴을 활용하는 경우를 예를 들어 설명하시오.

디자인 패턴이란? 코드를 작성하는 데에 쓰이는 설계 방식, 틀, 구조들이라고 생각하면 될 것 같습니다. 유명한 MVC나 MVVM 같은 디자인 패턴들은 전체적인 코드들을 다루는 큰 틀이라 할 수 있고, 싱글톤 패턴은 이보다는 조금 작은 범위에서 적용하는 디자인 패턴입니다. Singleton 패턴이란? 앱이 시작될 때 어떤 클래스가 최초 한 번 메모리에 할당되고, 1개의 인스턴스만 생성되어 사용하는 패턴입니다. 이 클래스는 다른 곳에서 사용할 때 새로운 인스턴스를 생성해서 새로운 메모리 공간에 할당되는 것이 아닌, 원래 처음 생성했을 때 만들어진 메모리 공간에 다시 참조하게 됩니다. 따라서 하나의 인스턴스만 메모리에 등록됐기 때문에 어느 곳에서든지 이 클래스를 사용할 때 값을 계속해서 공유할 수 있게 됩니다..

[Swift / JAVA] iOS 프로젝트 Google Login 서버 만들기

https://im-babycoder.tistory.com/entry/Swift-iOS-프로젝트-Google-Login-구현하기 [Swift] iOS 프로젝트 Google Login 구현하기 친구들과 같이 진행하는 프로젝트에 Google Login 기능을 넣기로 했다. https://developers.google.com/identity/sign-in/ios/start-integrating iOS 및 macOS용 Google 로그인 시작하기 | Authentication | Google Developers 이 페이지 im-babycoder.tistory.com 이 글에 이어서 SpringBoot 서버를 만들어봤다. https://developers.google.com/identity/sign-in/ios..

DEV - iOS/iOS 2022.11.01

[Swift] iOS 프로젝트 Google Login 구현하기

친구들과 같이 진행하는 프로젝트에 Google Login 기능을 넣기로 했다. https://developers.google.com/identity/sign-in/ios/start-integrating iOS 및 macOS용 Google 로그인 시작하기 | Authentication | Google Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 iOS 및 macOS용 Google 로그인 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류 developers.google.com 구글에서 제공하는 공식 문서가 너무 친절해서 보고 따라 하기만 하면 된다. 1. Dependency Cocoa..

DEV - iOS/iOS 2022.10.22
반응형