본문 바로가기
728x90

분류 전체보기302

[iOS] Naver Search API로 지역 검색 구현하기 [iOS] Naver Search API로 지역 검색 구현하기  이전에 MapKit을 활용하여 장소를 검색하는 기능을 만들어본 적이 있었다.2024.01.07 - [iOS] - [iOS] MapKit 주소 자동검색 구현하기 [iOS] MapKit 주소 자동검색 구현하기[iOS] MapKit 주소 자동검색 구현하기 카뮤 프로젝트에서 iOS 앱으로 주소검색을 하고, 검색된 주소를 탭 하면 다음화면으로 넘어가서 그 위치를 맵에 찍어주는 기능을 개발해야 했다. 카뮤는 네이masterpiece-programming.tistory.com이번에는 MapKit이 아니라, Naver Search API를 활용하여, 체육 시설만을 검색하여, 화면에 나타내보는 것을 해보려고 한다. 이 기능을 구현하기 위해서는 Naver S.. 2024. 7. 22.
[iOS] 첫 MVVM, 클린 아키텍처 리팩토링을 해보자 [iOS] 첫 MVVM, 클린 아키텍처 리팩토링을 해보자 🚨 주의! 이 글은 MVVM과 클린 아키텍처에 대한 주관적인 이해와 적용이 들어가 있습니다.  클린 아키텍처, MVVM,,, 들어보았다면 개발자가 맞을 것이다. 개발 초기, 초보 개발자는 이 모든 개념을 이해하고, 적용하기에는 어렵다. 최근 이전에 했던 프로젝트 중 하나인 버닝버디를 피봇하고 다시 앱을 개발하면서 이 개념을 떠올릴 수밖에 없었다. 앱 만으로 구동하던 서버리스였지만, 회원 개념이 들어가고 알림 기능이 필요해지면서 기존에 있었던 코드 구조로는 이것을 구현할 수 없었다. SwiftUI로 구현했기 때문에, 뷰 코드 안에 데이터 관련 코드가 들어가 있었어도 이전에는 괜찮았기 때문이다. 뭐 일단 돌아간다면 코드만 써놓고 커맨드 R만 눌러서 .. 2024. 7. 17.
[Algorithm] 다이나믹 프로그래밍 DP 잘 풀어보기 [Algorithm] 다이나믹 프로그래밍 DP 잘 풀어보기  DP는 복잡한 문제를 작은 부분 문제로 나누어 일반화 하여 해결하는 알고리즘 기법이다.문제를 엄청 작은 부분 문제로 나누어본다는 이야기는 구하고자 하는 값을 "점화식"을 세워서 해결할 수 있다는 것이다. 뭔가 불가능해보이지만, 노트에 써서 어떤 규칙이 보이면, 그 규칙을 가지고 점화식을 세워서 풀 수 있다는 이야기이다. 초항 또는 두 번째 항을 구한 후 나머지 항을 계속 구해가다가 원하는 값에 도달하면 결과를 얻을 수 있을 것이다. 대체적으로 DP를 이야기할 때 가장 먼저 이야기 하는 것은 피보나치 수열이다.피보나치 수열은 a1 = 1, a2 = 1이고, A(n) = A(n-2) + A(n-1)을 점화식으로 한다. 직전, 2직전 항을 더할 경우.. 2024. 6. 30.
[Algorithm] Swift로 그리디 풀이해보기 [Algorithm] Swift로 그리디 풀이해보기 그리디는 가장 이해하기 쉬운 알고리즘 중 하나이다. 현재 가장 최적인 것 같은 해를 계속 선택해 나가는 것. 그래서 결과값을 찾는 로직이다. 매 순간 최적의 선택을 하여 전체 문제를 해결하는 것... 마치 인생과 비슷하달까... 그리디는 단순하지만, 이 문제가 그리디가 적용이 될 수 있는 것인지를 판단하는 것이 더 중요하다고 생각된다. 이번 포스팅에서는 그리디 인지를 판단하는 방법과 예시 문제를 풀어보면서 Swift로 어떻게 풀이할 수 있는지를 알아볼 것이다. 1. 그리디인지를 판단하는 방법 보통 질문이 "최소" 또는 "최대"를 요구할 때, 살짝쿵 의심해볼 수 있다.예를 들어 "모든 일을 처리할 때, 최소 비용은?" / "최대한 많은 물건을 가방에 담을.. 2024. 6. 29.
[Algorithm] BFS 떠올리기, Swift로 구현하기 [Algorithm] BFS 떠올리기, Swift로 구현하기   너비를 우선으로 탐색하는 BFS. 인접한 노드를 깊이 찾아들어 가는 DFS와는 달리, 인접한 노드를 모두 탐색하고, 모두 탐색했다면, 깊이를 하나씩 높여서 결국 모든 그래프를 탐색하는 알고리즘이다. 이번 글에서는 어떤 문제를 봤을 때, BFS로 접근하는 것을 떠올리는 방법과 Swift로 구현을 해보는 방법을 정리해보려고 한다. 1. BFS 떠올리기 BFS는 언제 사용하면 가장 효율적으로 쓸 수 있을까?"너비"를 우선적으로 탐색하는 알고리즘이다. 모든 사람은 여섯 다리 정도만 거치면 아는 사이가 된다고 하는 이야기가 있다.평범한 정치외교학과 대학생학회에서 만난 서울대 정치외교학과 친구 (B 그룹)서울대 학생의 지도교수인 서울대 정치외교학과 교.. 2024. 6. 28.
[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.
728x90