본문 바로가기

전체 글42

삽입정렬(Insertion sort) 개념 이해하고 구현하기 정렬 시리즈를 다시 공부하면서 공부했던 내용을 간단히 블로그에 업로드해보려 합니다. 이번 글에서는 삽입정렬을 다루어 보도록 하겠습니다. 삽입정렬(Insertion sort)은 무엇인가? 삽입정렬은 간단히 말하자면 i 번째 요소를 정렬하기 위해 i-1번째부터 1번째까지 순차적으로 탐색하면서 자신에게 맞는 위치를 찾는 방식으로 정렬하는 알고리즘입니다. 두 번째 수부터 시작해 같은 작업을 반복하기 때문에 i번째 수를 삽입하고자 할 때는 첫 번째부터 i-1번째는 수가 정렬된 상태이므로 정렬된 상태에 i번째 수를 넣는 위치를 찾을 수 있는 것이죠. 삽입정렬을 구현하는 간단한 수도코드를 작성해보았습니다. for i in (2번째 요소부터 끝까지) j = i -1로 시작해 현재 삽입하고자 하는 값보다 작거나 같은 값.. 2021. 11. 2.
[UIKit] Storyboard 탈출기 (2편) - 스토리보드 대신 SwiftUI의 프리뷰 사용하기 스토리보드를 없애면서 관리해야 할 부분이 코드로 집중돼 편하기도 하지만 뷰를 제대로 만들었는지 확인하려면 매번 시뮬레이터를 돌려봐야 한다는 점은 불편했습니다. 그래서 이번 글에서는 스토리보드 대신 SwiftUI의 프리뷰를 사용하여 매번 시뮬레이터를 돌리지 않고도 뷰를 미리보기하면서 개발하는 방법을 알아보도록 하겠습니다. 주의사항 SwiftUI를 사용해야 하므로 Deployment target이 iOS 13.0 이상은 되어야 합니다. (작성 시 Xcode 버전: 12.5.1) 1. 사용법 결론부터 간단히 말하자면 ViewController() 라는 뷰컨트롤러의 미리보기를 추가하고 싶다면 다음과 같은 코드를 해당 파일이 제일 밑에 추가해주면 됩니다. #if DEBUG import SwiftUI struct .. 2021. 10. 28.
[Swift] lazy 프로퍼티 알아보기 이번 글에서는 Swift의 lazy 프로퍼티에 대해 알아보겠습니다. lazy property란 무엇인가? lazy property, 정확히 지연 저장 프로퍼티(lazy stored property)는 처음 사용되기 전까지 초기값이 계산되지 않는 프로퍼티를 의미합니다. 간단히 말해, 내가 만든 프로퍼티를 사용하기 전까지 메모리에 올려두지 않겠다는 의미입니다. lazy property는 프로퍼티의 초기값이 초기화가 끝나기 전까지 알 수 없는 외부 값에 의존적인 경우 유용합니다. 또한 초기값이 복잡한 계산나 셋업이 필요하지만 필요할 때까지 실행되지 않아야 할 때에도 유용합니다. 주의할 점 lazy 키워드가 붙어있다고 해서 해당 프로퍼티가 한 번만 초기화된다는 것을 보장하는 것은 아닙니다. 만일 멀티스레드환경에.. 2021. 10. 26.
RxSwift vs Combine - 무엇을 사용할 것인가? RxSwift와 Combine. 둘 다 iOS 개발을 할 때 사용할 수 있는 비동기프로그래밍 프레임워크이죠. 그런데 어떤 것을 사용할 지 고민이 되어 자료를 찾아보다 RxSwift, Combine 둘 중에 어느 것을 공부해야 할까요 라는 네이버테크톡 영상자료가 있어 참고하게 되었습니다. 결국 중요한 부분은 Combine이 늦게 나왔지만 애플에서 만든 프레임워크이고 RxSwift의 장점을 대부분 갖고 있기 때문에 장기적으로는 RxSwift는 Combine에 자리를 내주게 될 것이라는 것이었습니다. 영상에서 발표하신 개발자 분만 아니라 iOS개발하시는 분들은 전반적으로 이에 공감하는 것으로 이해하고 있었습니다. 다만 Combine의 지원버전이 iOS 13부터이므로 이제 최신 버전이 이제 갓 iOS15로 올라.. 2021. 10. 21.
[UIKit] Storyboard 탈출기 (1편) - Xcode에 스토리보드 없는 세팅하기 이번 글에서는 스토리보드에서 탈출하기 위해 가장 먼저 Xcode에 스토리보드 없는 세팅하는 과정을 알아보겠습니다. (작성버전 : Xcode 12.5.1) 우선 만든 프로젝트에서 타겟을 클릭하면 나오는 Deployment Info에서 Main Interface에 있는 Main 부분을 제거합니다. 그리고 프로젝트를 시작할 때부터 있는 Main.storyboard를 제거해 줍니다. (Move to Trash) 그 다음 Info.plist로 가서 Application Scene Manifest -> Scene Configuration -> Application Session Role -> Item 0 에서 Storyboard Name 키를 삭제합니다. ( 왜 없지? 하고 고민하신다면 테스트의 Info.plist.. 2021. 10. 19.
[UIKit] Storyboard 탈출기 (0편) 한동안 SwiftUI를 조금씩 공부하다 보니 코드로 이런 식으로 짜면 되는구나 하는 생각이 드는데 그 와중 UIKit으로 프로젝트를 하면서 스토리보드가 편하면서도..묘하게 지저분,,귀찮음,, 불편한 느낌이 들어 스토리보드를 탈출해 될 수 있는 한 코드로 UI를 짜보려 합니다. 그래서 공부하면서 배우는 점이 있으면 짤막짤막하게 정리하는 글을 Storyboard 탈출기 시리즈로 계속 업로드하려고 합니다. 이 시리즈는 WithoutStoryboard 태그로 찾을 수 있습니다. => Storyboard 탈출기 모아보기 이제 시작합니다! 아쟈자!! 2021. 10. 18.