1주차 멘토링 내용 기록 - Team-HGD/SniffMEET GitHub Wiki

현재 기능 목록 자체는 6주 프로젝트 기간에 큰 범위인 것 같다.

주요 기능에 집중해보는 것이 좋을 것으로 보인다.

로그인과 같은 기능은 이후로 미루는 것이 좋을 것 같다.

firebase에 익명 세션 서비스가 있는 것으로 알고있으니 참고해보자.

패턴 적용에 대한 질문

(바로 패턴 결정해 도입 vs. 리팩토링 해가며 필요성을 느꼈을때 도입 (하지만 리빌딩에 가까워질 수 있음))

아키텍처나 패턴을 사용하면 누가 언제 프로젝트에 참여하더라도 구조를 파악하기 쉬운 장점이 있다.

길어야 5-6주 기간의 프로젝트에서 추가 참여하지도 않을 것.

아키텍처를 적용함으로써 오는 구조적 장점이 적게 작용될 것 같다.

각자 넣고싶은 아키텍처를 사용해보며 자신만의 것을 학습해가고 서로 리뷰해보는 과정도 좋을 것 같다.

백로그 우선순위

우선순위 작성 내용을 보니 핵심 기능들이 1,2,3 번에 잘 들어가 있는 것 같다.

멘토님 생각에는 계정 부분은 5순위로 빼도 될 것 같다.

비회원 보다는 익명에 가깝게. 회원가입을 아예 빼고 진행해도 좋을 것 같다.

지도 api

멘토님이 부캠 최종 프로젝트에서 네이버 지도 마커 사용해봤다. mapkit.. 여기까지ㅎ

xcodegen

tuist와의 차이가 있나?

코드 컨플릭 자체는 사용하다보면 익숙해진다. 그것때문만을 이유로 xcodegen을 사용하는 것은 반드시 필요한 이유가 될 것 같지는 않다. 사용해도 상관은 없겠지만 멘토님이라면 사용하지 않을 것 같다.

구현 우선순위 / 기술 우선순위

구현의 시급함도 중요, 기능의 시급함도 중요, 어느것이 더 중요하다 말하기 힘들다.

블루투스 기능은 핵심 기능이지만, 먼저 만들어져야 할 필요는 없어 보인다.

화면을 먼저 만들수도 있고 블루투스 기능을 먼저 만들어 모듈화하고 사용할 사람이 이후에 가져다 쓰기만 하면 되게끔 할 수도 있다.

개인 선호도에 따라서 다를 것 같다.

멘토님은 코어데이터 먼저 파다 시간 다 보내기 파..ㅎㅎ

비동기 작업에 Swift Concurrency 사용한다고 작성되어 있는데 합의가 된 부분인지?

멘토님은 async 반대..

다른것은 괜찮지만 async stream을 사용할때 유독 불완전한 상태임을 (다른 동료분들도 함께) 느꼈었다.

RX 사용하시던 분은 그대로 RX 사용하시고, Combine 사용하시던 분들은 단발성 이벤트에 대해서는 swift concurrency를 사용하고, 바인딩이 필요할때는 combine을 사용하는 방법으로 많이들 사용한다.

async stream은 사용해보실 수는 있지만, 예상대로 동작하지 않을 수도 있다.

fastlane 써보는것 좋은 것 같다.

사용하는 회사도 많고, 사용해볼 부분이 꽤 있다.

bluetooth

블루투스가 켜진 상태를 다른 앱에서 볼 수 있는 기능처럼 보이는데

애플이 앱을 샌드박스(쓸 수 있는 기능을 제한) 해두기 때문에 블루투스 역시 마음대로 앱에서 사용할 수 없다.

앱이 Foreground 상태에서만 접근 가능하다.

서로 두가지 휴대폰이 블루투스 어드벌타이징 되어 날리면 그것들을 수집해 보여주는 방식으로 동작

블루투스 전역 셋팅을 건드리게 된다.

주변에 신호를 보낼때 사용할 규격도 굉장히 적은 것으로 알고 있다.

미리 조사 해보자.

네임드롭을 사용할 일이 없었지만 어디선가 본 기억으로는

ios 17,18 부터 서드파티 지원이 풀렸다고 들었다. 아직 상용화는 거의 안된 것으로 보인다.

휴대폰 대 휴대폰의 교환일수도 있지만, nfc 달아서 정보를 전달받거나.. (힘들수도..ㅎㅎㅎㅎㅎ)

플로우에서 백그라운드 진입 여부는 무엇인지?

백그라운드에 진입하면 ui 업데이트는 하지 않는 것을 고려한 것으로 보인다.

산책 시에는 gps 켜져서 경로를 트래킹 해야할 것 같은데, 그 내용을 어디에 저장하지는 않는 것인지?

앱이 백그라운드에 있을때 제약조건이 굉장히 많다.

api 호출 결과를 못받아 오는 등의 결과가 생기기도 하기 때문에 유의할 점이 많을 것이다.

메인 스레드를 백그라운드에 있을때는 절대 건드리지 않도록 플로우를 아예 분리하는 방식 등 고려하자.

위치 정보 받아올때도 제약 조건이 있었던 것으로 기억하니 관련해서 찾아보자.