Search
Duplicate
🧸

야곰 멘토님 - 멘토링 준비

회의 날짜
2021/10/05
회의 내용
회의 날짜_formatted
Oct 05
참여자
준비

1. 프로젝트 간단 설명

코로나가 끝나면 사람들이 만나고자 하는 수요가 늘어날것으로 예상
이 수요에 맞춰서 모임 어플을 만들고자 합니다.
간단하게 지도상에서 모임을 찾거나 만들고,
그 모임에 참가하는 과정을 구현하고자 합니다.

2. 진행 상황 설명

기존 Swift 5 UIKit 로 진행하던 코드를 SwiftUI로 리팩토링 하였습니다.
리팩토링을 진행한 이유는 UI디자인을 조금 덜 신경쓰고 기능 구현에 집중할 수 있을 것 같다고 판단했습니다!
1.
프론트엔드
2.
기본 뷰 설계, 뷰모델 생성, coredata 생성 단계를 어느정도 진행한 상황입니다.
3.
백엔드
4.
API서버 생성완료, User에 대한 API를 일차적으로 생성 완료했습니다.
5.
서버는 EC2 위에서 작업 중 입니다.
6.
DB는 개인 서버에서 작업 중 입니다.
7.
추가적으로 저희 앱에서 필요한 Model에 대한 API를 구현중입니다!

3. 본격 질문 타임

Q. MVVM 패턴 코드 리뷰

MVVM 패턴으로 진행했는데, 뷰, 뷰모델을 구별한 부분이 적절하게 구분되었는지 궁금합니다!
ObservedObject와 EnvrionmentObvject 가 하나의 뷰에 여러개가 연결되어도 되는지
viewmodel 인스턴스가 어디에서 만들어져야 하는지
viewmodel 인스턴스가 처리해야하는 역할의 범위는 어디까지 인지
viewmodel 서로 간의 통신을 어떻게 해야하는건지....?

Q. swift에서 view controller간 데이터 통신 설계 (delegate, closure, notification center)

이거는 View controller 를 지금 사용하고 있진 않지만, 이전에 MVC패턴으로 개발 진행할 때, 고민이 있었던 내용이라 궁금한 점이 많습니다!

Q. CoreData Decode시, 데이터 중복 체크 방법

coreData의 decode구현부에서, 중복체크부터 하고싶습니다. << 중복체크가 들어가기좋은 위치와 데이터 전달 방법을 조언받고 싶습니다 (복사&구현한 내용: case1)
case1에서 답을 찾지 못해서.. case2 처럼 구현하고, 다른 부분에서 중복검사를 하고 있는 상태입니다.
case2의 불만은.. NSManagedObject에서 NSManaged 부분을 구조체에서 중복 구현하고 있는 것입니다.
CoreData를 사용하는 이유는, 내려받은 데이터를 선별적으로 보여주기 위함입니다.
코드보기 - case 1
코드보기 - case 2

Q. 클라이언트에서 서버 URL을 숨겨야하는가? 그렇다면 어떤 방법이 있을까

getURL, postURL (서버 url들)을 클라이언트 코드에 넣게되면, 그냥 노출된것과 마찬가지라고 생각합니다.
1.
URL을 숨겨야 하는지?
2.
1이 맞다면 방법을 검색할 키워드를 받고 싶습니다.
코드보기

Q. 프론트 관련 질문

perform 부분에 클로져로 쓰는 것 vs 함수로 모듈화 해서 쓰는 것
.onDisappear { meetingViewPosition = .middle }
Swift
복사
.onDisappear(perform: restoreMeetingView)
Swift
복사
slide card view 에서 if, if 로 하면 되는데 if / else 혹은 switch case로는 안됨
현재 메인뷰, 서브뷰를 state와 if 문을 활용해서 관리하고 있는데, 일반적인 경우에는 어떤 식으로 뷰 전환을 관리하는지
state값이 너무 많이 쪼개져서 변수가 많이 생김
navigationview 를 사용했을 때, 버튼이 정상적으로 작동하지 않는 문제가 발생
샘플 코드를 보니 navigationview 로 감싸는 코드들이 많던데, 뷰 전환을 할 때, 실제로 navigationlink 를 많이 쓰는지, button action으로 전환하는 것도 괜찮은지 궁금합니다.
navigationview 가 전체화면인가요...?
애초에 플로팅패널 패키지로, slideOverCard 패키지를 쓰나요?????