Programming
-
DataStructure - Stack(스택)Programming/Data Structure & Algorithm 2021. 10. 14. 20:20
안녕하세요 Beepeach 입니다 :) 오늘은 데이터구조중에서 Stack에 대해서 공부해보려 합니다. Stack Stack은 queue와 같이 아주 기본적인 데이터 구조입니다. 주로 프로세스의 함수 처리 방식에 사용됩니다. Stack은 LIFO(Last In First Out) 정책을 따릅니다. 즉 가장 마지막에 들어온 데이터가 가장 첫 번째로 나가게 됩니다. 예를 들어 급식실의 식판을 생각하면 편합니다. 식판을 쌓아두면 제일 아래에 있는 식판을 가져가는 게 아니라 가장 위에 있는 식판을 가져다 쓰게 되죠?? 이러한 방식이 LIFO입니다. (역시 FIFO처럼 리포가 아니라 라이포로 발음합니다.) 스택은 구조가 단순하고 구현이 쉽다는 장점이 있습니다. 하지만 최대 공간을 미리 확보해야 하고 그렇기 때문에 ..
-
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 프로토콜을 채용하고 있으니 크게 걱정하지 않아도 됩니다...
-
DataStructure - Queue - 큐Programming/Data Structure & Algorithm 2021. 10. 13. 16:49
안녕하세요 Beepeach입니다 :) 오늘 공부해볼 자료구조는 Queue(큐)입니다. Queue에서도 여러 가지 종류가 있지만 그중 가장 기본이 되는 queue에 대해서 공부해보겠습니다! Queue Queue는 OS(운영체제)에서 프로세스 스케쥴링에 사용하는 아주 기본적인 자료구조입니다. Queue라는 단어를 사전에서 찾아보면 줄, 대기열이라고 나옵니다. 이 단어를 사용한 이유가 있겠죠?? 단어 그대로 줄 서는것과 비슷하게 동작하기 때문입니다. 식당에서 가서 대기줄을 서는 것을 생각해보세요. 먼저 줄을 선 순서대로 식당에 입장을 하죠?? 줄을 처음에 선 사람이 가장 먼저 줄을 나가게 됩니다. 이러한 방식을 FIFO(First-In First-out)라고 합니다. (발음하는 방법은 파이포입니다. 피포가 아..
-
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를 저장하고 접근..
-
DataStructure - Array(배열)Programming/Data Structure & Algorithm 2021. 10. 7. 17:29
안녕하세요 BeePeach입니다 :) 오늘은 자료구조에서 가장 기초적인 Array(배열)에 대해서 공부해보도록 하겠습니다! 배열이란 같은 형식의 데이터를 메모리에 연속적으로 저장한 자료구조입니다. 그리고 각각의 원소를 인덱스로 접근할 수 있는 특징이 있습니다. 배열은 Swift에서 이미 만들어져 있으므로 따로 만들 필요는 없고 Swift의 배열에 대해서 잘 알아두기만 하면 될 거 같습니다. Swift 배열에 대해서는 이전 포스팅에서 다루었으므로 여기를 확인해주세요. 배열의 장점 배열은 인덱스로 접근이 가능하기 때문에 빠른 접근이 가능합니다. 인덱스가 없다면 데이터의 처음부터 접근을 해서 하나하나 찾아봐야 하지만 인덱스가 있기 때문에 해당 데이터에 바로 접근이 가능합니다. 배열의 단점 배열은 미리 메모리 ..
-
DataStructure - Data Structure 자료구조란??Programming/Data Structure & Algorithm 2021. 10. 7. 15:17
자료구조와 알고리즘이라는 말은 하도 많이 들어서 익숙하지만 둘이 의미하는 것에 대해서는 생각해본 적이 없어서 자료구조와 알고리즘을 공부하는 김에 공부한 기록을 남겨보려 합니다. 자료구조?? 배우는 이유?? 데이터를 효율적으로 관리하기 위해서 데이터를 어떤 구조로 만들 것인가? 단어 그대로 데이터(자료)의 구조를 의미합니다. 관리라는 의미는 탐색, 추가, 삭제 등의 작업을 말합니다. 예를 들어 학생 데이터를 관리하는데 그냥 마구잡이로 데이터를 저장할지 이름순으로 저장을 할지 아니면 학년과 번호로 나누어서 저장을 할지 데이터를 구조화하는 방법은 여러 가지가 있을 수 있습니다. 이러한 방법 중에서 가장 효율적으로 데이터를 관리할 수 있는 구조를 공부하는 것이 자료구조를 공부하는 목적입니다. 그리고 한 가지 자..
-
iOS - UIKit 프레임워크와 UIKit AppProgramming/iOS 2021. 9. 4. 17:58
안녕하세요 BeePeach입니다:) 오늘은 UIKit 프레임워크에 대해서 공부해보려고 합니다. iOS 앱 개발을 할 때 UIViewController, UIView... 대부분 화면을 구성하는 클래스 앞에는 UI가 들어갑니다. 그리고 이 클래스들을 사용하려면 꼭 UIKit 프레임워크가 import 돼있어야 합니다. 그럼 이렇게 중요한 UIKit이란 무엇인지 같이 공부해보도록 해요! UIKit이란 뭘까?? UIKit은 iOS 앱에서 Graphical하고 event-driven UI를 관리하고 구성하는 iOS의 기반이 되는 프레임워크입니다. 인터페이스를 구현하기 위한 window와 view 구조를 제공합니다. 그리고 Multi-touch, 여러 종류의 input과 같은 event handling 인프라를 제..