[레벨 0] HTTP와 HTTPS의 차이점, 그리고 iOS에서의 보안 통신 방법에 대해 설명해주세요.
·
면접
HTTP와 HTTPS의 차이점보안: HTTPS는 SSL/TLS 암호화를 사용하여 데이터를 암호화하지만, HTTP는 평문으로 데이터를 전송합니다.포트: HTTP는 80번 포트를, HTTPS는 443번 포트를 사용합니다.URL: HTTP는 "http://"로, HTTPS는 "https://"로 시작합니다.데이터 무결성: HTTPS는 데이터 변조를 방지할 수 있지만, HTTP는 그렇지 않습니다.검색 엔진 최적화: HTTPS는 검색 순위 향상에 도움됩니다.iOS에서의 보안 통신 방법HTTPS 사용: 모든 네트워크 통신에 HTTPS를 사용합니다.인증서 고정(Certificate Pinning): 신뢰할 수 있는 인증서만 허용하도록 구현합니다.ATS(App Transport Security) 활용: iOS의 ATS..
[레벨 0] 네트워크 프로토콜 스택과 iOS에서의 네트워크 통신 방식에 대해 설명해주세요.
·
면접
네트워크 프로토콜 스택프로토콜 스택은 데이터 통신에 사용되는 계층화된 프로토콜의 집합입니다.계층 구조로 이루어져 있어 각 계층이 특정 역할을 담당합니다.상위 계층에서 하위 계층으로 데이터가 전달되며, 각 계층에서 헤더 정보가 추가됩니다.(캡슐화)대표적인 모델로 OSI 7계층과 TCP/IP 4계층이 있습니다.TCP/IP 프로토콜 스택의 주요 계층응용 계층: HTTP, FTP, SMTP 등전송 계층: TCP, UDP인터넷 계층: IP네트워크 인터페이스 계층iOS에서의 네트워크 통신 방식URL SessioniOS의 기본 네트워킹 APIHTTP/HTTPS 요청을 처리하는 데 사용비동기적으로 데이터를 주고받을 수 있음Alamofire서드파티 네트워킹 라이브러리URLSession을 기반으로 하지만 더 간편한 인터..
[레벨 0] iOS에서의 메모리 구조와 관리 방식에 대해 자세히 설명해주세요.
·
면접
메모리 구조Clean Memory페이지 아웃 가능한 데이터로, 메미로 매핑된 파일, 이미지, 프레임워크 등이 포함됩니다.필요시 디스크에서 다시 로드할 수 있어 시스템에 의해 해제될 수 있습니다.Dirty Memory앱에 의해 수정된 메모리로, 런타임 중 생성된 객체나 데이터 구조가 포함됩니다.디스크와 동기화되지 않아 시스템이 쉽게 해제할 수 없습니다.Compressed MemoryiOS 7부터 도입된 메모리 압축 기술을 통해 관리되는 메모리입니다.접근되지 않은 페이지를 압축하여 공간을 절약하고, 필요시 다시 압축 해제합니다.메모리 관리 방식Automatic Reference Counting (ARC)컴파일 시점에 자동으로 retain/release 코드를 삽입하여 객체의 참조 횟수를 관리합니다.참조 횟수..
[레벨 0] iOS의 샌드박스(Sandbox) 개념과 역할, 그리고 앱 간 데이터 공유 방법에 대해 설명해주세요.
·
면접
iOS의 샌드박스(Sandbox)는 앱의 보안과 사용자 데이터 보호를 위한 핵심 기술입니다.샌드박스의 개념샌드박스는 각 앱을 격리된 환경에서 실행하도록 하는 보안 기술입니다. 이는 앱이 시스템 리소스, 파일, 네트워크 등에 대한 접근을 제한하고 통제합니다.앱 격리각 앱은 고유한 홈 디렉토리를 가지며, 다른 앱의 파일이나 리소스에 직접 접근할 수 없습니다.이를 통해 한 앱의 문제가 다른 앱이나 시스템에 영향을 미치는 것을 방지합니다.데이터 보호앱은 자신의 데이터만 접근할 수 있으며, 다른 앱의 데이터를 수정하거나 접근할 수 없습니다.사용자의 개인 정보와 중요한 데이터를 보호합니다.시스템 리소스 보호시스템 파일과 리소스는 앱으로부터 보호됩니다.대부분의 iOS 시스템 파일은 비특권 사용자 "mobile"로 실..
[레벨 0] 메모리 관리 기법 중 iOS에서 사용되는 방식과 그 특징에 대해 설명해주세요.
·
면접
자동 참조 카운팅(ARC)ARC는 iOS의 핵심 메모리 관리 기법입니다.컴파일러가 자동으로 객체의 참조 횟수를 추적하고 관리합니다.개발자가 직접 retain/release를 호출할 필요가 없어 메모리 관리의 복잡성이 크게 줄어듭니다.참조 횟수가 0이 되면 객체를 자동으로 해제합니다.순환 참조 문제를 방지하기 위해 weak와 unowned 참조를 제공합니다.값 타입과 참조 타입값 타입(구조체, 열거형 등)은 스택에 저장되어 빠르고 효율적으로 관리됩니다.참조 타입(클래스)은 힙에 저장되며 ARC로 관리됩니다.메모리 경고 시스템iOS는 앱에 메모리 부족 경고를 보내 불필요한 리소스를 해제할 기회를 제공합니다.지연 초기화(Lazy Initialization)필요한 시점에 객체를 생성하여 메모리 사용을 최적화합니..