Programming/Swift
-
Swift - Struct & ClassProgramming/Swift 2021. 10. 20. 13:47
안녕하세요 Beepeach입니다 :) 오늘은 struct(구조체)와 class(클래스)에 대해서 공부해보려고 합니다! 객체지향 프로그래밍, OOP(Object Oriented Programming)은 한 번쯤 들어보셨을 겁니다. 그러면서 class에 대해서도 들어보셨을 텐데요. Swift에서는 struct와 class는 비슷한 부분이 많습니다. 모두 새로운 타입을 정의해서 데이터를 구조화할 때 사용합니다. 쉽게 말해서 우리가 정의하는 새로운 Type을 만들 수 있습니다. Struct와 class의 가장 큰 차이점은 valueType(값 타입), referenceType(참조 타입)이라는 겁니다.. 지금까지 사용해온 Int, Double.... 과 같은 Fundamental data type들과 Enume..
-
Swift - Enumeration CaseIterableProgramming/Swift 2021. 10. 18. 11:15
안녕하세요! Beepeach입니다 :) 오늘 공부해볼 주제는 CaseIterable 프로토콜입니다. 가끔 enum case들을 collection으로 사용해야 할 때가 있습니다. case들만 따로 모아서 직접 array를 만들어도 되지만 Swift에서 제공하는 기능을 통해 간단하게 생성할 수 있습니다. 그럼 같이 보도록 할게요!! CaseIterable CaseIterable 프로토콜을 채용하면 제공되는 프로퍼티를 통해서 collection을 쉽게 만들 수 있습니다. (프로토콜에 대해서는 나중에 다루도록 하겠습니다.) 주로 associated value가 없는 enum에 사용합니다. (이유는 뒤에서 설명할게요!) 그럼 먼저 사용방법을 보겠습니다. 간단하게 enum type이름 옆에 :과 CaseItera..
-
Swift - Enumeration Associated ValueProgramming/Swift 2021. 10. 16. 22:46
안녕하세요 Beepeach입니다 :) 오늘은 지난 포스팅에 이어서 Enumeration의 Associated Value (연관값)에 대해서 공부해 보도록 하겠습니다. Raw value는 사용할 수 있는 타입이 정해져 있고 모든 case들이 지정한 한 가지 타입으로만 raw value를 가질 수 있었습니다. 하지만 associated value는 타입의 제약이 없고 case마다 타입을 다르게 지정해줄 수도 있으며 원하는 case에만 적용시킬 수 있습니다. Raw value는 enum을 만들 때 값을 저장했지만 associated value는 인스턴스를 생성할 때 저장합니다. Associated value와 raw value는 같이 사용할 수 없습니다. 둘 중에 한 가지만 사용 가능합니다. 그럼 associ..
-
Swift - Enumeration (열거형)Programming/Swift 2021. 10. 15. 15:55
안녕하세요 Beepeach 입니다 :) 오늘은 Enumeration에 대해서 공부해보려고 합니다. Enumeration은 관련된 값들을 새로운 타입으로 정의하고 이 값들을 코드에서 안전하고 가독성 좋게 사용할 수 있도록 해줍니다. 주로 총 개수가 정해진 값들에 사용하게 되는데요. 먼저 위험하고 가독성이 좋지 않은 코드부터 살펴보겠습니다. 방향은 크게 동서남북 4방향으로 볼 수 있겠죠?? 그래서 각 방향에 정수를 할당했습니다. 이 방식은 나빠보이지 않을 수 있지만 Int 값은 무수히 많습니다. 그래서 잘못된 값이 들어가도 에러가 나지 않고 어디서 무슨 값이 들어갔는지 모를 수가 있습니다. 그리고 0은 north 1은 south를 알고 있어야합니다. 모른다면 직접 코드를 찾아서 다시 봐야 하는 밖에 없죠! ..
-
Swift - KeyValuePairsProgramming/Swift 2021. 10. 14. 15:47
안녕하세요 Beepeach 입니다 :) 오늘 공부해볼 Collection은 KeyValuePairs입니다. 지금까지 자주 사용하는 colleciton인 array, dictionary, set에 대해서 알아보았습니다. KeyValuePairs는 자주 사용하는 collection은 아닙니다. 그냥 이런 collection도 있구나 하고 넘어가셔도 좋습니다. KeyValuePairs KeyValuePairs는 dictionary와 유사하게 생겼습니다. 하지만 차이점은 정렬이 되어있고 Key가 Hasable 프로토콜을 채용하지 않았다는 점입니다. 그렇기 때문에 검색이 dictionary에 비해서 느립니다. 또한 key가 중복이 돼도 상관없습니다. KeyValuePairs를 만드는 방법은 dictionary l..
-
Swift - SetProgramming/Swift 2021. 10. 14. 14:45
안녕하세요 Beepeach 입니다 :) 오늘은 Set에 대해서 공부해보도록 하겠습니다. Set을 번역하면 집합이죠?? 수학시간에 배웠던 집합을 생각하면 됩니다. 그리고 그 집합들이 가지고 있던 연산도 쉽게 구현되어 있습니다. Set Set과 Array는 비슷하지만 큰 차이는 unordered와 unique elements에 있습니다. 정렬되어있지 않고 element가 중복되지 않습니다. 제네릭을 보면 Element가 Hashable 프로토콜을 채용하고 있어야 합니다. 만약 element가 hashable을 채용하고 있지 않다면 set으로 만들 수 없습니다. 하지만 string, numeric, boolean 등 대부분의 기본 타입은 hashable 프로토콜을 채용하고 있으니 크게 걱정하지 않아도 됩니다...
-
Swift - DictionaryProgramming/Swift 2021. 10. 8. 15:09
안녕하세요 Beepeach입니다 :) 오늘 공부해볼 내용은 Dictionary입니다. Dictionary는 Array와 더불어 자주 사용하는 Collection 중에 하나입니다. 그리고 가장 큰 특징은 element가 Key와 Value로 구성되어 있다는 점입니다. Dictionary는 hash-table의 일종입니다. 그래서 저장된 element를 매우 빠르게 접근이 가능합니다. (Hash table은Key에 Value를 저장하는 자료구조 중 하나입니다. 자세한 것은 Data Structure 포스팅에서 다루도록 하겠습니다.) table의 각 항목들은 hashable 타입인 key를 이용하여 정의됩니다. Key는 주로 문자열이나 숫자를 사용합니다. 그리고 이 key에 대응하는 value를 저장하고 접근..
-
Swift - ArrayProgramming/Swift 2021. 8. 30. 13:50
오늘은 Array(배열)에 대해서 공부해보겠습니다. 배열은 가장 많이 사용하는 collection 중 하나이므로 꼭 알아두고 가야 하는 자료형입니다. Array (배열) Array는 정렬되어 있고 random-access가 가능한 Collection입니다. 핵심은 정렬이 되어있다는 것 그리고 index를 이용하여 각 element에 접근이 가능하다는 점입니다. 그럼 array에 대해서 CRUD(Create, Read, Update, Delete) 순으로 알아보겠습니다. Create Array를 생성하는 법을 먼저 공부해 보겠습니다. 배열을 생성하는 가장 쉬운 방법은 Array literal을 이용하는 방법입니다. Array literal의 포인트는 [] (Square bracket)입니다. [] 안에 원..