본문 바로가기
728x90

분류 전체보기304

[Algorithm] 우선 순위 큐 Swift 구현 [Algorithm] 우선 순위 큐 Swift 구현 익히 알려져 있다시피 Swift는 우선 순위 큐가 구현되어 있지 않다. 직접 구현을 해야 우선순위 큐를 활용할 수 있는데 코딩테스트를 볼 때 이는 굉장히 귀찮음으로 다가온다. 미리 기록해놓고 나중에 써먹던지.. 다시와서 보는 용도로 포스팅을 한다. import Foundation struct PriorityQueue { var heap: Heap var count : Int { return heap.count } var isEmpty : Bool { return heap.isEmpty } init(_ elements: [T] = [], _ sort: @escaping (T, T) -> Bool) { heap = Heap(elements: elements.. 2024. 4. 4.
HIG(Human Interface Guidelines) 한국어 번역 페이지 배포! HIG(Human Interface Guidelines) 한국어 번역 페이지 배포! https://hingumingu.oopy.io/ Human Interface Guidelines KR. 번역 문서 바로 보기 hingumingu.oopy.io 2023년 4월부터 12월까지 애플 아카데미에서 진행했던 HIG 스터디 내용들을 퍼블리싱 했습니다. 영어로 되어 있는 원문을 해석하면서 필요한 첨언을 추가하고 더 이해가 쉽도록 만들어 보았습니다. 현재 Components 까지 번역을 진행을 한 상태입니다. 나머지 번역이 필요한 것들 또는 업데이트가 필요한 부분들은 새로운 기여자를 찾고 있기도 합니다. 방문해서 정보를 알아보고 괜찮다면 기여를 해보는 것도 좋을 것 같습니다. 만관부! 2024. 1. 9.
[iOS] 커스텀 버튼 컴포넌트 하이라이트 처리 [iOS] 커스텀 버튼 컴포넌트 하이라이트 처리 이 화면의 버튼을 구현해야 했다. 이 버튼이 이 화면에 한정해서 나오지 않기 때문에, 버튼 컴포넌트를 만들어서 구현해보았다. final class LargeSelectButton: UIButton { private let iconImageView: UIImageView = { let imageView = UIImageView() imageView.contentMode = .scaleAspectFit return imageView }() let topTitleLabel: UILabel = { let label = UILabel() label.font = UIFont.carmuFont.headline1 label.textColor = UIColor.semant.. 2024. 1. 8.
[iOS] MapKit 주소 자동검색 구현하기 [iOS] MapKit 주소 자동검색 구현하기 카뮤 프로젝트에서 iOS 앱으로 주소검색을 하고, 검색된 주소를 탭 하면 다음화면으로 넘어가서 그 위치를 맵에 찍어주는 기능을 개발해야 했다. 카뮤는 네이버 맵을 사용하기로 했었고, 네이버 맵을 활용 해서 자동 검색을 구현하려고 했었다. 하지만, 검색과 관련된 API를 제공하기는 하지만, REST API 방식이라 URLSession 등 기본 프레임워크로 하나씩 설정해주지 않는 한, Alamofire 등 새로운 라이브러리를 써야 하는 점, 개발 시간이 한정적인 점 등 환경적인 요소를 고려하여 일단은 MapKit에서 제공하는 MKSearchCompleter로 자동 검색을 구현하고, 거기에서 얻어지는 좌표를 가지고 네이버 맵에서 reverseGeocoding을 하.. 2024. 1. 7.
[iOS] CoreData Attribute 변경 시 나타나는 Migration 문제 해결(code=134140) [iOS] CoreData Attribute 변경 시 나타나는 Migration 문제 해결(code=134140) iOS Native 앱에서 서버로 관리할 필요가 없는 데이터, 또는 사용자 쪽에서 가지고 있으면 좋은 데이터들을 앱 자체의 영구 저장소인 CoreData에 적용하는 경우가 많다. 물론 Realm 같은 라이브러리를 사용할 수도 있지만, 내가 진행했던 프로젝트의 경우 일단은 iOS를 기반으로 만들어졌고, 다른 OS와의 호환을 고려하지 않았기에 일단은 iOS에서 더 안정적인 CoreData를 선택했었다. 앱이 업데이트되면서 Entity를 변경하거나 Attribute를 변경했어야 했다. CoreData는 version up 기능을 지원하는데, 이 과정에서 이전 저장소와 새 저장소를 구분하고, 변경된.. 2024. 1. 7.
[Git] File 추가시 Tracking이 되지 않을때 [Git] File 추가시 Tracking이 되지 않을때 git add . 을 해도 stage에 파일이 올라가지 않을때가 있다. git add -force 파일명 이렇게 해주면 stage에 강제로 올릴 수 있다. 변경된 모든 파일을 스테이지에 올리고 커밋을 하면 된다. git add . 자체가 실무적으로는 지양해야 하는 방법이긴 하다. 파일 하나의 코드 한 줄 바꾸고 commit을 할 때에도, 영향을 받는 파일이 있을 수가 있기 때문에, 파일 하나하나의 변경사항을 체크하며 add 해주고, commit 해주어야 안전한 방법이다. -force를 해도 안될 때가 있다. 그럼 다른 문제일 수가 있다. 그럴 땐 본인의 현재 pwd를 확인해봐야 한다. 프로젝트 파일이 있는 폴더에, 소스코드가 있는 폴더 따로, 프로.. 2023. 12. 13.
728x90