전체 글 107

iOS interview preview(추가중)

1. iOS 아키텍처에 대하여 설명하여라iOS는 계층구조를 가진다. iOS 아키텍처는 4가지 레이어로 구성되있으며 각 레이어는 하드웨어 위에서 작동하는 어플리케이션을 만들기 위하여 프로그래밍 프레임워크를 제공해준다. 통신은 응용 프레임워크와 하드웨어 계층에 의해 향상이 된다. 하위 계층은 모든 어플리케이션이 필요로 하는 서비스를 제공하고 상위 계층은 그래픽 및 인터페이스 관련 서비스를 제공한다.1) 코어 OS 레이어: 코어 OS 레이어는 기기 하드웨어 바로 위에 위치하며 iPhone OS 스택의 맨 아래 레이어입니다. 메모리 관리, 파일 시스템 처리 및 스레드와 같은 기본 운열 체제 서비스 외에도 이 계층은 저수준 네트워킹, 외부 악세서리에 대한 액세스를 제공한다.2) 서비스 계층: 상위 계층이나 사용자..

IOS/interview 2022.05.11

[자료구조,알고리즘] Swift 알고리즘 문제 풀기 전 리마인드

일단 들어가기 전에 Swift 알고리즘에 팁에 대하여 적을 예정입니다.기본 입력 받기var input = readLine()!Int형 한 개의 숫자 입력 받기var num = Int(readLine()!)!공백 있는 숫자 받기// split - ReturnType: [SubString]var nums = readLine()!.split(separator: " ").map{Int($0)!}// components - ReturnType: [String]var nums = readLine()!.components(separatedBy: " ").map{Int($0)!}공백 없는 숫자 배열로 받기var num = Array(readLine()!).map{Int(String($0))!}// String 변수 ..

[운영체제] ARC란 무엇인가?

ARC가 메모리 영역 중 힙 영역을 관리하는 특징을 가지고 있습니다.일단 리마인드하면 인스턴스,클로저 등등 참조 타입(Reference Tyoe)은 자동으로 힙에 할당 됩니다.class Human { var name: String? var age: Int? init(name: String?, age: Int?) { self.name = name self.age = age }} let sodeul = Human(name: "Sodeul", age: 26)human이라는 클래스가 있고 sodeul이라는 인스턴스를 생성하고 값을 초기화 하였습니다.일단 여기서 변수가 전역 변수로 보이겠지만 일단 보통 개발 하듯이 클래스에 생성된 지역 변수라고 생각해줍시다.지..

CS/운영체제 2022.05.05

[운영체제] 메모리 구조(Code,Data,Stack,Heap)은 무엇일까?

운영체제는 메모리에 이 프로그램을 위한 공간을 할당 해 준다.그때 공간을 4가지(Code, Data, Heap, Stack)으로 나뉘어져있다.먼저 코드 영역에 대해 알아 보도록 하자- 우리가 작성한 소스 코드가 기계어 형태오 저장이 된다.- 컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저당된다. 그다음은 데이터 영역~- 전역변수, static 변수로 저장- 프로그램 시작과 동시에 할당되고, 프로그램이 종료 되어야 메모리가 해제가 된다.- 실행 도중 변수 값이 변경될 수 있으니 Read-Write로 지정된다. 이번은 힙 영역을 알아보도록 하자. 이 부분은 ARC와 연관이 있는데 ARC는 다음 포스팅으로 알아보도록 합시다.- 프로그래머가 할당/해제 하는 메모리 영역- 프로..

CS/운영체제 2022.05.05

[SwiftUI] Coredata 사용해보기

전에 Coredata를 활용하기 위한 기본셋팅으로 CoreDataManager에 대하여 알아 보았습니다.근데 CRUD를 활용하기 위한 Coredata를 사용할려면 어떻게 해야되는지 전체 적으로 알아보도록 합시다.먼저 CRUD를 활용하기 위해 여러 방법이 있습니다.예를 들어 Sqlite,Coredata,Realm 아니면 파일입출력 형식으로도 표현을 할수도 있습니다.각각의 장단점은 다음에 파악하는 것으로 하고 일단 저는 Coredata를 사용해보록 하겠습니다.일단 Coredata를 활용하기 위해서 기본적인 체크를 한번 하도록하겠습니다.먼저 project파일을 생성할때 use coredata를 클릭을 하도록 하겠습니다.그러면 모델 파일이 생성이 되는데 저는 Attributes에 genre,singer,tite..

IOS/SwiftUI 2022.05.04

[SwiftUI] VoiceViewModel 코드 분석하기

앞서 진행한 CoreDataManger에 다음으로 현재 진행한 프로젝트 중 녹음기능이 담겨져있는 VoiceViewModel을 분석해보도록 하겠습니다. 순서는 코드의 플로우대로 진행할 예정입니다.import Foundationimport AVFoundationclass VoiceViewModel : NSObject, ObservableObject , AVAudioPlayerDelegate{ var audioRecorder : AVAudioRecorder! var audioPlayer : AVAudioPlayer! var indexOfPlayer = 0 @Published var isRecording : Bool = false @Published var..

IOS/SwiftUI 2022.05.04