전체 글 (78) 썸네일형 리스트형 [Swift]Random Surfer Trick 구현 구글의 검색엔진이 어떻게 세계 최강의 자리에 단시간에 오를 수 있었을까?? 존 매코믹은 "미래를 바꾼 아홉 가지 알고리즘"에서 그 이유 중 하나로 "Page Rank" 알고리즘을 꼽는다. 초창기 구글은 검색엔진을 사용하는 사용자에게 유용한 정보를 제공하기 위해, 두 가지 큰 절차를 따랐다. 첫 번째로 인덱싱이고 두 번째가 페이지 랭크이다. 인덱싱은 페이지에 포함되어 있는 단어들(HTML을 구성하는 텍스트들)의 페이지별 위치를 구성하는 기술이고, 페이지 랭크는 사용자가 입력한 내용이 포함된 페이지들 중에 어떤 페이지를 우선적으로 보여줄 것인지(높은 순위로 매길지)에 대한 기술이다. 이번 포스팅에서는 Page Rank의 다양한 알고리즘 중에서 Random Surfer Trick을 구현해 보려고 한다. Ran.. Swift에서 Framework 생성 및 사용 이전에 만든 클래스를 현재 진행 중인 프로젝트에서 사용하고 싶은 경우가 종종 있다. 이럴 때 해당 프로젝트에 원하는 클래스를 복사해서 사용할 수도 있지만, 매번 이렇게 복사는 것이 여간 귀찮은 일이 아니다. 그래서 지난 포스팅(https://taeminator1.tistory.com/37)에서 만든 Queue 클래스를 Framework로 생성하여 다른 프로젝트에서 사용하는 방법을 알아보고자 한다. 지난 포스팅에서 만든 Queue 클래스를 Framework로 생성하여 다른 프로젝트에서 사용하는 방법을 알아보자. 먼저 Xcode를 실행하고 "Create a new Xcode project"를 눌러 프로젝트를 생성하자. 자신이 원하는 플랫폼을 선택하고(지금은 macOS를 선택했다), "Framework & L.. [Swift] Linked List를 이용한 Queue 구현 Queue는 먼저 입력된 데이터가 먼저 출력되는 자료구조이다. 이러한 특성을 선입선출(FIFO: First-In Frist-Out)이라고 한다. 이러한 개념은 일상생활에서 쉽게 찾아볼 수 있기 때문에 Queue는 많이 사용되는 자료구조 중 하나이다. Swift에서는 기본적으로 Queue를 제공해 주지는 않아서 별도로 구현해 주어야 한다. 다양한 방법으로 다양한 종류의 Queue를 구현할 수 있는데, Array를 이용한 Queue의 구조를 살펴보자. 먼저 Array를 이용하여 일렬로 쭉 늘어선 모양의 선형 Queue를 구현할 수 있다. Queue에서 가장 먼저 입력된 데이터를 출력하는 함수를 pop이라고 하겠다. pop을 하는 방법에는 크게 두 가지가 있다. 첫 번째로 pop 연산 시에 Array의 첫 번.. [Swift] Linked List 구현 Linked List는 Array와 자주 비교되는 대표적인 자료 구조 중 하나이다. 메모리에 각각의 원소를 순차적으로 저장하는 Array와 달리, Linked List는 데이터와 링크로 구성된 노드를 이용하여 메모리에 저장된 순서와 상관없이 연결된 데이터 구조를 말한다. 각각의 사각형은 Node를 의미한다. Node는 데이터(채색되어 있지 않은 부분)와 링크(채색되어 있는 부분)로 나뉘는데 데이터에는 저장하길 원하는 값을 넣고, 링크에는 다음 노드를 가리키도록 하여 Linked List를 구현할 수 있다. Array와 Linked List는 각각 대비되는 장점이 존재한다. 먼저 Array는 사용이 쉽다. Swift를 포함한 대부분의 언어에서 Array를 기본적으로 제공한다. 특히 Swift의 Array는.. VoCap 개발 과정 새로운 앱이 출시가 되었다. 이번엔 iOS 앱이다. 공식적으로 두 번째 앱이라서 그런지 기대도 컸고 실망도 컸다. 그래서!! 추후 좋은 점은 극대화하고 같은 실수는 반복하지 않기 위해 개발 과정을 정리해보고자 한다. 2020년 12월에 시작해서, 2021년 2월 중으로 출시 계획을 세웠으나, 생각보다 해야 할 것이 너무 많아서 3월 중순이 되어서야 첫 출시를 했다. 다음은 전체적인 앱 개발 과정을 나타냈다. 실제 진행과정을 기반으로 작성해서 전통적인?? 개발과정과는 차이가 있을 수 있다. 다음과 같은 과정으로 개발을 진행했다. Rotate 360(첫 출시 애플리케이션)을 개발할 때는, 약간 질서 없이 부딪혔는데, 이번 프로젝트는 꽤 체계적으로 진행을 한 것 같다. 다음 포스팅부터 개발 과정을 간략하게 살.. Core Data에서 Transformable 데이터 활용하기 Swift 5 Xcode 12.2 iOS14.2 Application에 데이터를 저장하는 방법 중 하나로 가장 대표적인 것으로 Core Data를 뽑을 수 있다. Core Data에서는 기본적으로 아래와 같은 Data Type을 제공한다. bit 수에 따른, Integer나, String, 심지어 UUID까지 제공해서, 기본적인 App을 만들기에는 충분하다. 하지만 때로는 자신이 원하는 Data Type이 없는 경우도 있는데, 이를 위해 Transformable Type이 존재한다. Transformable으로 설정을 해도 Swift에서 제공하는 기정의 된 Data Type만 사용할 수 있지만, 개인이 만든 Structure가 본래 기정의 된 Data Type을 활용하므로, 크게 문제 되지는 않을 것이다.. Picker 사용시 주의점: data type Swift 5 Xcode 12.2 iOS14.2 Picker는 이름 그대로 데이터를 선택하는 방법을 제공 View이다. 아래 간단한 Picker 예제를 살펴보자. import SwiftUI struct PickerExView: View { let colors: [Color] = [.red, .orange, .yellow, .green, .blue, .purple] let colornames = ["Red", "Orange", "Yellow", "Green", "Blue", "Purple"] @State var selectedColorIndex: Int = 0 var body: some View { VStack { Picker("Color", selection: $selectedColorIndex) { F.. 저장 속성(Stored Properties), 계산 속성(Computed Properties) Swift에서 속성을 선언하는 방법은 크게 저장과 계산 속성으로 구분 지을 수 있다. 가장 쉽고 간단하게 선언할 수 있는 저장 속성(Stored Properties)은 변수나 상수에 값을 저장할 때 사용한다. 다른 언어에서 제공하는 기본적인 속성과 크게 다르지 않아 가장 익숙한 속성이다. Swift에서 저장 속성을 선언하는 방법은 다음과 같다. var [변수 이름]: 자료형 ex) var storedNum1: Int let [상수 이름]: 자료형 ex) var storedNum2: Int 변수는 말 그대로 변하는 값을 저장하기 위한 속성이고, 상수는 변하지 않는 값을 저장하기 위한 속성이다. 이 둘은 서로 구분해서 사용하는 것을 권고하는데 이유는 다음과 같다. 첫 번째, "안전한 프로그래밍을 위해" 상수.. 이전 1 ··· 3 4 5 6 7 8 9 10 다음 목록 더보기