분류 전체보기 (9) 썸네일형 리스트형 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. 동기 / 비동기 그럼 제일 처음 알아야 하는 것은 동기/비동기가 무엇이냐?입니다. 저는 보통 동기/비동기를 설명할 때 줄 서기로 비유합니다. 우리가 줄을 서서 물건을 산다고 산다고 합시다. 앞사람이 물건의 모든 바코드를 찍고 계산 절차를 거치고 물건까지 다 챙겨야 다음 사람이 차례가 옵니다. 이것이 "동기화"입니다. "컴퓨터 작업들의 수행 시기를 맞추는 것, 컴퓨터 시스템들 간에 진행 상황을 일치시키는.. 디자인 패턴 - 대리자 패턴(Delegate Pattern) 안녕하세요. 오늘은 디자인 패턴 중 대리자 패턴(Delegate Pattern)에 대해 공부해보려고 합니다. 대리자 패턴은 UIkit, 애플 프레임워크 등에서 많이 사용되기에 제대로 정리를 해 보려고 합니다. 1. 대리자 패턴(Delegate Pattern) 대리자 패턴은 어떠한 객체가 해야 할 일을 다른 객체에게 위임하는 패턴입니다. 말 그대로 본인이 아니라 대리자, 즉 다른 객체에게 일을 대신시키는 것입니다. 코드를 보면서 이야기해 보겠습니다. class Boss { func work { //업무 수행... }} 어느 회사에 사장이 있습니다. 초기에는 업무의 양이 적기에 사장이 모든 일을 합니다. 하지만 회사의 규모가 커지며 사장이 모든 업무를 하기에 벅찹니다. 그래서 비서를 고용합니다.. 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 등 다양한 단어들이 나오는데 오늘은 메모리에만 집중을 해보겠습니다. 예시로 설명하면게임 파일을 실행하면 메모리에서 게임파일을 실행하는데 필요한 코드 등이 올라간다는 것입니다. 그러다 게임을 끄면 당연히 메모리에 올라가 있던 게임 파일 실행.. 애플 디벨로퍼 아카데미 지원 후기 안녕하십니까첫번째 글을 작성한지 꽤 시간이 지났습니다. 졸업 작품을 만드느라 상당히 정신이 없었고졸업 작품과 병행하여 애플 아카데미 지원을 위한 포트폴리오 제작 등을 하느라 정신이 없었습니다. 그래서애플 아카데미 지원 후기를 적어보려고 합니다. 저는 일단 애플 디벨로퍼 아카데미 5기에 지원을 하였습니다. 5기 지원 서류로는 자기소개서(CV)와 포트폴리오 이 두가지를 제출해야했습니다. 이전 기수의 지원글들을 찾아봤을 땐 포트폴리오 제출은 없었는데 5기부터 생긴 것 같습니다. 기본적으로 포함되어 있어야하는 내용은 애플 디벨로퍼 아카데미 측에서 제공을 해 주었습니다. 자기소개서에 들아가야할 기본적인 내용(이름, 연락처, 등)을 넣어야 했고참여프로젝트와 그 외의 활동을 기입하였습니다. 자기소개서(CV)는 들어가.. 이전 1 2 다음