WhiteHyun

「나만의 개발 타임캡슐」

[iOS] UIButton의 old pattern을 제거해보자

대부분 Swift 프로그래머는 UIButton에 Action을 넣을 때 다음의 식을 적용하며 실제로 저도 자주 사용하는 패턴입니다. 1 2 3 4 5 let button = UIButton() // Some Codes... button.addTarget(self, action: #selector(didTapButton), for: .touchUp...

[iOS] 디자인 패턴 개요

저는 대학생 시절 교수님에게서 디자인 패턴이라는 개념을 한 번도 듣지 못했습니다. 유튜브나 다양한 곳에서는 이따금씩 보이기는 했었습니다만 그렇게 중요하다고는 생각하지 못했어요. 하지만 iOS의 길을 걷고나서부터 귀가 따갑도록 듣게 되었습니다. 막상 보면 이게 왜 필요할까 싶었지만, 최근에 공부 및 개발을 하다보면서 디자인 패턴에 대한 필요성을 줄곧 ...

[일기] 스터디 시작

불안함과 두려움 이전에 했었던 취업스터디가 끝나고 혼자서 유데미 공부를 하다가 과연 내가 잘 하고 있는 것이 맞는 건지, 알 길이 없다고 문득 생각이 들었다. 혼자 고독하게 공부하는 것보단 여러 개발자와 소통하는 것이 내 발전에 큰 힘이 되는 만큼 나는 여러 오픈 카톡 커뮤니티를 줄곧 들어가며 여러 사람들의 의견을 수용하고 정보를 수집했다. 하지만 ...

[알고리즘] 삽입 정렬 (Insertion Sort)

삽입 정렬 삽입 정렬은 필요한 요소만 비교하여 자신이 위치해야하는 곳까지 값을 바꾸어 이동하는 정렬 알고리즘이다. 시간 복잡도 최선: O(n) 평균: O(n²) 최악: O(n²) 공간 복잡도 O(n) 장점 알고리즘이 단순하다. 필요한 데이터만 비교하기 때문에 전체를 비교하는 선택정렬보다 빠르다. 최선의 경우 시간 복잡도가 O(n...

[알고리즘] 선택 정렬 (Selection Sort)

선택 정렬 선택 정렬은 버블 정렬과 유사하며 해당 순서에 요소를 넣을 위치는 정해져 있고, 어떤 요소를 넣을 지 선택하는 알고리즘이다. 아래 예시는 가장 작은 값부터 선택하여 앞 부분에 넣는 과정을 보인다. 시간 복잡도 최선: O(n²) 평균: O(n²) 최악: O(n²) 공간 복잡도 O(n) 장점 비교적 간단한 정렬 알고리즘이기에...

[알고리즘] 버블 정렬 (Bubble Sort)

버블 정렬 버블 정렬은 서로 인접한 두 요소를 비교하고, 큰 수가 앞에 있는 경우 자리를 바꿈으로써 정렬하는 알고리즘입니다. 인덱스를 증가시키면서 비교하고 바꾸는 작업을 반복하며, 정렬이 마치 거품이 올라오는 듯한 모습을 보인다고 해서 버블 정렬이라 불립니다. 시간 복잡도 평균: O(n²) 최악: O(n²) 공간 복잡도 O(n) 장점 ...

[Swift] 기초 문법 정리 - 함수 (2)

Goal Swift의 함수에 대한 정의를 올바르게 이해한다. 함수를 직접 사용할 수 있다. 들어가기에 앞서 본 글은 Swift의 언어가이드를 따릅니다.[1] 이전에 작성했던 함수 - (1)과 이어집니다. 문법작성규칙은 아래와 같이 작성합니다.[2] lower camel ...

[iOS] AppDelegate의 역할

AppDelegate App(앱) + Delegate(위임하다) → “앱에 주요한 동작을 관리한다.” 라고 뜻을 통해 해석해볼 수 있는데요. 공식문서에 따르면[1], UIApplication과 함께 작동하여 시스템과의 상호 작용을 관리하며, UIApplication 객체와 마찬가지로 UIKit은 app delegate 객체를 app cycle초기에...

[data structure] Queue(큐) - 1

Goal 자료구조 Queue에 대해 설명할 수 있다. Swift 언어로 Queue를 구현해낼 수 있다. Queue의 연산 중 dequeue의 시간복잡도를 설명할 수 있다. 들어가기에 앞서 본 글은 raywenderlich의 Swift Algorithm Club에서 설명하는 예시 코드 일부를 가져와 설명합니...

[iOS] 앱의 시작점(Entry Point)은 어디일까?

Entry Point란? 시작 진입점, 즉 프로그램이 실행될 때의 첫 시작점을 의미합니다. 프로그램을 다루는 모든 언어들은 전부 Entry Point를 갖고 있습니다. C나 Java 같은 예전 언어들은 main이라는 함수명을 사용하였고 그 이후로 많은 언어들이 영향을 받아 main이라는 이름을 시작점으로 잡기 시작했습니다. Swift도 Comma...