본문 바로가기

Swift

(6)
Swift - 클래스(Class) 안녕하십니까. 오늘은 클래스(Class)에 대해 공부해보려고 합니다. 클래스와 구조체(Struct)를 대조하며 설명하곤 하는데, 저는 클래스와 구조체를 게시글을 따로 작성한 후 둘을 대조해 보겠습니다. 1. 클래스(Class)클래스란 뭘까요? 클래스는 청사진이다, 붕어빵 틀(?)이다 등, 다양한 설명들을 들어보셨을 거라 생각이 듭니다. 다 좋은 설명들이지만 애초에 클래스라는 개념은 왜 생겨났는지, 클래스를 사용하면 뭐가 좋은지를 먼저 아는 게 좋다고 생각합니다. 초기 코딩의 모습은 어땠을까요? var one: Int = 0var two: Int = 1func funtion1() { //...}func funtion2() { //...}... 초기의 코딩은 변수가 필요하면 변수를 만들고, 함수가 필요하면..
Swift - 1급 객체(First-Class Object) 안녕하세요 오늘은 1급 객체에 대해 공부해 보겠습니다. Swift에 대해 공부하다 보면 클로저 등에서 함수형 프로그래밍, 1급 객체라는 용어들이 등장합니다. 그래서 추후 다른 개념들을 공부하기 전에 먼저 확실히 알아두려고 합니다. 1. 함수형 프로그래밍함수형 프로그래밍은 말 그래도 함수 중심으로 프로그래밍을 한다는 것입니다. 조금 더 정확히 하면, 상태 변경(Side Effect)을 최소화하고, 순수 함수(Pure Function)를 조합해서 문제를 해결하는 프로그래밍 패러다임입니다. 말이 어렵기에 코드로 예시를 들어보겠습니다. var total = 0func add(_ x: Int) { total += x} add 함수는 정수 값을 받아서 total 더해주는 함수입니다. 이 함수는 total값의..
Swift - 옵셔널(Optional) 안녕하세요 오늘은 옵셔널(Optional)에 대해 공부해보려고 합니다. 실제 앱을 만들 때 이 옵셔널 때문에 시간이 오래 걸렸던 기억이 납니다. 하지만 옵셔널을 제대로 관리하고 사용할 줄 알아야 한다고 생각이 듭니다. 그럼 바로 시작해 보도록 하겠습니다. 1. 옵셔널(Optional) 처음으로 옵셔널(Optinal)이란 무엇일까요? 옵셔널이란 "값이 있을 수도 없을 수도 있는 타입"입니다. var name: String? = nilvar age: Int? = 20var weight: Int? 타입 옆에 "?" 붙이고, 값으로 "nil" 값을 넣었습니다. 이처럼 옵셔널 타입을 사용하려면 타입에 "?"를 붙여주면 되고, nil, 타입 값, 혹은 값을 설정 안 해주어도 됩니다. 옵셔널도 타입이기에 타입을..
Swift -Async Await 안녕하세요 조금 늦었습니다. 오늘은 Async/Await에 대해 알아보려고 합니다. Async는 asynchronous, 즉 비동기의 줄임말입니다. 동기와 비동기 들어보신 분들도 계시겠지만 정확히 설명하라고 하면 헷갈리시는 분들도 계실 거라 생각합니다. 저처럼 그럼 같이 공부해 보도록 하겠습니다. 1. 동기 / 비동기 그럼 제일 처음 알아야 하는 것은 동기/비동기가 무엇이냐?입니다. 저는 보통 동기/비동기를 설명할 때 줄 서기로 비유합니다. 우리가 줄을 서서 물건을 산다고 산다고 합시다. 앞사람이 물건의 모든 바코드를 찍고 계산 절차를 거치고 물건까지 다 챙겨야 다음 사람이 차례가 옵니다. 이것이 "동기화"입니다. "컴퓨터 작업들의 수행 시기를 맞추는 것, 컴퓨터 시스템들 간에 진행 상황을 일치시키는..
Swift - Generic 안녕하십니까. 오늘은 Swift의 제네릭(Generics)에 대해 알아보려고 합니다. 공부 내용은 애플 공식문서에 기반하였으며, 틀린 내용이 있을 수 있으니 참고하시길 바랍니다. 1. 제네릭(Generic)애플에서는 제네릭은 가장 강력한 특징 중 하나이고, Swift 표준 라이브러리 대부분이 제네릭으로 선언되었다고 합니다. 제네릭을 통해 코드의 중복을 피하고, 의도를 명확하고 추상적으로 사용할 수 있다고 합니다. 배열(Array), 딕셔너리(Dictionary) 또한 제네릭 타입입니다. func swapTwoInts(_ a: inout Int, _ b: inout Int) { let temporaryA = a a = b b = temporaryA} 이 함수는 두 정수 값을 바꾸는 함수입니다...
Swift - ARC(Automatic Reference Counting) 안녕하세요 오늘은 ARC에 대해 공부해보려고 합니다. 기본적으로 애플 공식문서를 참고하였고틀린 내용이 있을 수 있기에 읽으시는데 참고하시길 바랍니다. 1. ARC란 무엇인가?일단 메모리에 대해 알고 가야합니다. 기본적으로 프로그램을 실행하면 프로세스가 메모리에 적재됩니다. 더 자세히 설명하면 디스크(SSD/HDD)에 저장되어 있는 실행파일(.exe 파일)이 RAM(메모리)에 로드되고 CPU가 메모리에 올라온 코드와 데이터를 실행하는 것입니다. 디스크, 실행파일, CPU 등 다양한 단어들이 나오는데 오늘은 메모리에만 집중을 해보겠습니다. 예시로 설명하면게임 파일을 실행하면 메모리에서 게임파일을 실행하는데 필요한 코드 등이 올라간다는 것입니다. 그러다 게임을 끄면 당연히 메모리에 올라가 있던 게임 파일 실행..