전체 글

우리 같이 협업하자

[우협하/문제해결] 네이버 다이나믹맵에서 자동으로 카메라 무브가 발생하는 원인을 해결해보자.

지도 프로토타입의 주요 기능은 두 가지이다. 첫째, 사용자가 위치 권한을 동의하면 사용자의 현재 위치를 중심으로 지도에 마커를 표시한다. 둘째, 지도에 표시된 문화예술 콘텐츠 마커를 클릭하면 작은 정보 창을 통해 상세 내용을 보여준다. 문제인식 프로토타입 초기 개발 단계에서 예상치 못한 문제가 발생했다. 위치 권한을 받아 사용자 마커를 지도에 표시하는 데는 성공했으나, 사용자가 지도를 이동시키면 몇 초 후에 자동으로 사용자 마커 위치로 카메라가 다시 이동하는 현상이 나타났다. 처음에는 시뮬레이터의 오류로 추정하여 실제 iPhone에서 테스트해 보았지만, 동일한 문제가 발생했다. 이 문제를 해결하기 위해 네이버 지도 API 문서를 상세히 검토했다. 문서에 따르면, 사용자의 현재 위치를 표시할 때는 일반 마..

우리 같이 협업하자

[우협하] 8주차 회고 - 개발 패러다임은 어렵다.

6주차부터 UI 개발을 시작했지만, 디자인의 지속적인 변경과 API명세의 지연으로 인해 개발 전략을 재고해야 했다. 이는 백엔드&디자이너와의 첫 협업에서 비롯된 것이었으며, 우리의 협업 프로세스에 개선의 여지가 있음을 알게 해주었다.  이러한 상황에서, 나는 디자인과 API명세가 확실히 완성되기 전까지 개발을 멈추고 더 깊이 있는 준비와 학습에 집중하기로 결정했다. 특히 이번 프로젝트에서 적용하기로 한 클린 아키텍처에 대해 더욱 자세히 공부하는 시간을 가졌다. 학습을 통해 더 견고한 코드 구조를 설계할 수 있게 되었고, REST 서버와의 통신 예제를 실습하면서 이해를 높였다. 또한, 네이버 다이나믹 맵 API를 활용하여 우리 앱의 핵심 기능인 지도 기능의 프로토타입을 클린 아키텍처 구조로 설계해보았다. ..

iOS/Design Pattern

[iOS/Design Pattern] 간단한 예제로 Clean Architecture를 설계해보자.

프로젝트에 클린 아키텍처를 적용하기 전에, 그 개념을 확실히 이해하고자 간단한 예제를 통해 클린 아키텍처를 설계해보고자 한다.  도메인 계층✔️ Entity유저 리스트를 보여주는 것이 주요 서비스이기 때문에 핵심 데이터는 유저이다. 그래서 Entity에는 유저 정보가 담겨있다. ✔️ UserUseCaseProtocolUseCase는 비즈니스 로직이다. 여기서 비즈니스 로직은 유저의 정보를 받아오는 것이다. 이 로직을 처리하기 위해서는 Data 계층에서 데이터를 가져와야하는데, Domain 계층이 Data 계층을 의존하게 될 경우 의존성 규칙을 위배하게 되는 것이므로, 직접 참조하지 않고 의존성 역전을 이용하여 참조한다.  ✅ 의존성 역전Repository Interface를 구현해서 UseCase가 이를..

iOS/Design Pattern

[iOS/Design Pattern] Clean Architecture를 알아보자.

클린 아키텍처?클린아키텍처란? 클린 아키텍처는 소프트웨어 설계 원칙으로, 로버트 C. 마틴이 제안한 개념이다. 클린 아키텍처의 주요 목표는 아래와 같다. 1. 프레임워크 독립성 : 시스템이 특정 프레임워크에 종속되지 않도록 한다.➡️ 처음에는 UIKit을 사용했지만, SwiftUI로 전환해야 할 상황이 생겼다. 비즈니스 로직을 UIKit과 독립적인 별도의 모듈로 구현한다. 이렇게 하면 나중에 SwiftUI로 전환하고자 할 때, UI레이어만 변경하면 되고 핵심 비즈니스 로직은 그대로 사용할 수 있다. 2. 테스트 용이성 : 비즈니스 로직을 외부 요소 없이 테스트할 수 있게 한다.➡️ '장바구니에 책 추가하기' 기능을 구현한다고 가정하자. 이 기능을 순수한 비즈니스 로직으로 구현하여, 필요한 외부 의존성(데..

여성일
성일노트