개발 이슈 회의 - Team-HGD/SniffMEET GitHub Wiki

논의 사항

배현진: 테스트할 기기가 부족해서 내일 혜민님이랑 오프라인으로 진행

스크럼 - 문제 및 이슈

현진

  • NBI 실행해볼 기기가.. 부족하다 MPC 연결이 되어야 NBI 테스트가 가능한데, 샘플 코드에서 MPC 연결이 잘 진행되지 않았다. 지성님 코드로 변경해서 시도중에 있습니다.

지성

  • MPC session에 원하는 기기가 연결될 수 있을 것인가? ( 사용자가 기기를 선택하는 문제가 있을 수도) 이미 메이트 관계인 사람들끼리 한번 더 메이트 맺는다면 어떻게 화면이 보여야 할지도 정할 필요가 있다.

Multipeer Connectivity

https://developer.apple.com/videos/play/wwdc2020/10668/

진원

  • 수파베이스 예제 적음

혜민

  • request의 속성 depth가 깊어서 사용하기 힘든가? JSON 인코더 주입 시점

공유해보기

NBI, MC

  • 자기가 원하는 사람과 연결이 안될 수 있음, 선착순이나 제한 시간 방법을 생각했었는데 그런 것도 확실한 해결책이 될 수는 없다고 생각한다. 유저가 직접 연결할 사람을 정해야 하나? - 기존 에어드랍 처럼 생각했던 부분에서 좀 많이 멀어지게 된다.
  • 일단 세션이 완성이 된 상태에서 토큰을 NBI로 넘긴다… 현재 상황은 세션이 완성되지 않은 상태에서 토큰을 주고 받아야 한다. 이 부분에 대해서 고민 필요
  • NBI로 특정 대상을 선택할 수 있으면 일단은 고민들이 해결된다.

SupaBase

  • 익명 로그인 기능 구현을 우선으로
  • SPM 적용 안하고 수파베이스 사용해보기

에러 타입 만들기

  • 지금은 뭉개서 만든상태
enum SNMNetworkError: LocalizedError {
    case encodingError
    case invalidRequest
    case invalidURL
    case invalidResponse
    case response(statusCode) 

    var errorDescription: String? {
        switch self {
        case .encodingError:
            "인코딩 에러"
        case .invalidRequest:
            "잘못된 요청입니다."
        case .invalidURL:
            "URL이 잘못되었습니다."
        case .invalidResponse:
            "잘못된 응답입니다."
        }
    }
}

현재는 Local Network를 통해 메이트 맺기를 진행하고 있습니다.

확장성을 고려하여 remote network로도 동작할 수 있게끔 설계를 하고 싶었습니다.

하지만 둘의 진행과정이 상이한 부분이 있어서 설계에 조금 어려움이 있었는데요.

  • Local Network를 통한 과정
    1. 주변 탐색하기
    2. Peer 찾아서 연결 진행하기
    3. 데이터 송수신
  • Remote Network를 통한 과정
    1. 이미 Peer를 알고 있는 상태에서 해당 Peer에 대한 정보 요청하기
    2. 데이터 송수신

고려해야할 사항이나 구조 설계 팁이 있을까요?