[레벨 0] iOS의 샌드박스(Sandbox) 개념과 역할, 그리고 앱 간 데이터 공유 방법에 대해 설명해주세요.
·
면접
iOS의 샌드박스(Sandbox)는 앱의 보안과 사용자 데이터 보호를 위한 핵심 기술입니다.샌드박스의 개념샌드박스는 각 앱을 격리된 환경에서 실행하도록 하는 보안 기술입니다. 이는 앱이 시스템 리소스, 파일, 네트워크 등에 대한 접근을 제한하고 통제합니다.앱 격리각 앱은 고유한 홈 디렉토리를 가지며, 다른 앱의 파일이나 리소스에 직접 접근할 수 없습니다.이를 통해 한 앱의 문제가 다른 앱이나 시스템에 영향을 미치는 것을 방지합니다.데이터 보호앱은 자신의 데이터만 접근할 수 있으며, 다른 앱의 데이터를 수정하거나 접근할 수 없습니다.사용자의 개인 정보와 중요한 데이터를 보호합니다.시스템 리소스 보호시스템 파일과 리소스는 앱으로부터 보호됩니다.대부분의 iOS 시스템 파일은 비특권 사용자 "mobile"로 실..
[레벨 0] 메모리 관리 기법 중 iOS에서 사용되는 방식과 그 특징에 대해 설명해주세요.
·
면접
자동 참조 카운팅(ARC)ARC는 iOS의 핵심 메모리 관리 기법입니다.컴파일러가 자동으로 객체의 참조 횟수를 추적하고 관리합니다.개발자가 직접 retain/release를 호출할 필요가 없어 메모리 관리의 복잡성이 크게 줄어듭니다.참조 횟수가 0이 되면 객체를 자동으로 해제합니다.순환 참조 문제를 방지하기 위해 weak와 unowned 참조를 제공합니다.값 타입과 참조 타입값 타입(구조체, 열거형 등)은 스택에 저장되어 빠르고 효율적으로 관리됩니다.참조 타입(클래스)은 힙에 저장되며 ARC로 관리됩니다.메모리 경고 시스템iOS는 앱에 메모리 부족 경고를 보내 불필요한 리소스를 해제할 기회를 제공합니다.지연 초기화(Lazy Initialization)필요한 시점에 객체를 생성하여 메모리 사용을 최적화합니..
[Dart] 4. Classes
·
Flutter
class Person { final String name = 'gwanson'; int age = 26; void greeting() { print("Hi my name is $name"); }}void main() { var person = Person(); person.age = 27; person.greeting();}// 출력// Hi my name is gwansonConstructor methodconstructor method는 class의 이름과 같아야 합니다.class Person { final String name; int age; Person(this.name, this.age); void greeting() {..
[Dart] 3. Functions
·
Flutter
함수 선언void greeting(String name) { print('Hello my name is $name!');// 1String greetingString(String name) { return 'Hello my name is $name';}// 2String greetingString(String name) => "Hello my name is $name";}void main() { greeting('gwanson'); print(greetingString('gwanson'));}리턴값이 없는 함수는 void 로 선언을 하고, 리턴값이 존재하는 함수는 해당하는 타입으로 선언합니다.(예: String,int )named parameterString greeting({ ..
[Dart] 2. Data Types
·
Flutter
Basic Data TypesStringboolnumintdoubleDart에선 자료형이 class로 구성되어 있어 해당하는 자료형에 여러 메소드들이 포함되어 있습니다.ListsList를 선언하는 방법은 변수를 선언하는 방법과 유사합니다.var numbers = [1, 2, 3, 4];List numbers = [1, 2, 3, 4];Dart의 List에는 `collection if`와 `collection for` 기능을 지원합니다.### collection if`collection if`는List를 생성할 때 조건부로 데이터를 추가할 수 있는 기능입니다.var isFive = true;var numbers = [ 1, 2, 3, 4, if (isFive) 5,];// 위의 ..