전체 글(103)
-
lazy var에 대해 알아보자
lazy는 무엇이지 lazy는 인스턴스를 생성하는 시점에 값을 부여하고 싶지 않은 변수에 대하여 붙여주는 키워드입니다. lazy라는 키워드가 붙으면 초기 값을 주지 않고, 첫 번째 호출 때 초기화를 해주겠다는 의미이기 때문에 변수만 가능해요. let으로 선언하면 나중에 값을 바꾸지 못하니까요 lazy는 초기 init시에 초기화되는 것이 아니라 호출될 때 생성이 되면서 메모리에 올라가며 이후 같은 변수를 사용 시 다시 초기화가 진행되지 않고 이전에 생성된 변수를 그대로 사용하더라고요. 또한 클래스나 구조체 내에서만 사용이 가능하다는 특징이 있었습니다. lazy를 사용하는 이유 - 지연 저장을 통해 메모리 낭비를 줄임 - 초기화 시점이 같을 때 접근할 수 있음 바로 메모리에 올리는 것이 아니라 사용할 때 메..
2022.09.06 -
JSON Decoder 대해 알아보자!
JSON Decoder란? JSON Decoder는 JSON 데이터를 Swift 객체로 파싱 하도록 도와주는 Decoder이다. 사용하기 Decodeer을 상속 받는 struct 생성하기 Decodeer에 저장된 데이터를 파싱 하기 먼저 codable의 객체를 만든다 struct Feed: Codable { let name: String let age: Int } 구성해준 다음 JSON 데이터는.. let data = """ { "name" : "hemg", "age" : 19 } """.data(using: .utf8)! 서버에서 준 제이손 데이터라고 치며 이제 data를 Feed의 구조체 변수에 Decoding을 하고 싶다면 let datas = try? JSONDecoder().decode(Feed..
2022.09.06 -
Codable 을 알아보자!
Codable에 대해서 알아보겠습니다.! Codable Codable은 Encodable과 Decodable이 합쳐진 거랍니다. 여기서 Encodable과 Decodable이란, Encodable -> data를 Encoder에서 변환해주려는 프로토콜로 바꿔주는 것 Decodable -> data를 원하는 모델로 Decode 해주는 것 음.. 다른 예로는 기존 파일이 있는데 이 파일을 압축하는 일을 Encodable 압축 파일을 기존 파일로 만드는 것 Decodable 이렇게 생각하시면 될꺼 같습니다. ++(추가적인 예시 JSON 사용 시에 Encodable -> model을 json으로 인코드 Decodable -> json을 나의 model로 디코드 이렇게 생각하시는 방법도 있습니다. Codable ..
2022.09.06 -
동기 // 비동기 대해 알아보자!
동기(Sync) vs 비동기(Async) 둘 다 다른 쓰레드로 작업을 보내는 것은 동일하다. 동기(Sync) : 다른 쓰레드로 작업을 보내고, 그 작업이 끝날 때까지 기다린다. 작업이 끝나야 다른 작업을 시작할 수 있다. 비동기(Async) : 다른 쓰레드로 작업을 보내고, 그 작업이 끝나는 것을 기다리지 않고 다른 작업을 시작한다. 예를 들어보자. 나는 대학교에 있는 프린트집 사장이다. 나에게는 A, B, C,D 복사기가 4대가 있다. 학생 2명이 나에게 300장짜리 복사를 맡겼다. 동기(Sync) 일 경우 : A복사기에 100장 복사를 시작했다. 근데, 다른 복사기를 사용할 수 없다. A 복사기의 복사가 먼저 끝나야 하기 때문이다. 비동기(Async) 일 경우 : A 복사기에 100장 복사를 시작했다..
2022.08.14 -
메모리 영역을 알아보자!
1. 메모리 구조 메모리의 구조부터 알아봅시다. 먼저, 프로그램이 실행되면 운영체제(OS)는 메모리(RAM)에 이 프로그램을 위한 공간을 할당해 줌 근데 그 공간은 다음과 같이 총 4가지(Code, Data, Heap, Stack)으로 나뉘어져 있습니다. 코드 영역 가장 위쪽에 자리 잡은 코드 영역에 대해 알아보겠습니다. 본인이 작성한 소스 코드가 저장되어있는곳입니다. 컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저장됩니다. (컴퓨터는 0,1로 이루어진 언어다...대단하다..) 데이터 영역 전역변수, static 변수가 저장된다. 프로그램 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리가 해체된다. 실행 도중 변수 값이 변경될 수 있으니 Read-Write로 지정..
2022.07.25