작업내역 1주차 수요일 - donggeonoh/bithumb-techcamp-ios-1st GitHub Wiki

작업내역

  • 작업 현황 작성 완료
  • 화면 별 필요 데이터 분석
    • Bithumb API 분석 및 정리
  • 프로젝트 셋업
    • git 관련 파일 추가
    • 프로젝트 폴더링
    • 파일 네이밍 변경
    • Tab bar controller 생성 및 Tab별 화면(storyboard) 연결
  • 멘토링 회의
  • 작업 분배
    • 동건 : 타입 디코더 설계 및 구현
    • 제로 : 네트워크 Value Object 모델 설계 및 구현
    • 허황 : 네트워크 통신 설계 및 구현

고민 및 해결

  • 코인 목록에 대한 데이터가 Key는 코인의 심볼로 넘어오고 value의 경우 JSON Object로 넘어오는 문제

    JSONSerialization 객체를 통해 Dictionary로 데이터 디코딩 JSONDecoder는 기존 프로퍼티 이름을 통해 데이터를 디코딩

  • Dictionary로 데이터를 가져오는 경우 Dictionary를 그대로 이용할지, 배열로 타입을 바꿔 관리할지에 대한 고민

    실제 데이터를 관리 할 때 데이터의 정렬이나 컬렉션 뷰에서 데이터를 관리할 때 배열을 통해 관리 하는 것이 더 효율적이라고 판단하였습니다. Dictionary는 정렬하는 경우 새로운 배열을 반환해야 하기 때문에 배열로 관리하는 것이 낫다는 판단이 들었습니다. 또한, Collection view 에서 데이터에 접근할 때 IndexPath로 접근하기 때문에 index 접근에 유리한 배열이 좋다고 판단하였습니다.

  • 각 코인에 대한 이름은 화면에 어떻게 보여질 것인가? (무려 192개나 된다 -> 다 일일히 지역화를 해야 할까?)

    코인 심볼에 해당 하는 한글 코인 이름을 프로젝트에서 어떻게 사용할 수 있을까 고민했습니다. 코인의 수가 많아 열거형을 사용하기엔 부적합하다고 생각했습니다. Localizeion의 원래 기능은 아니지만 개발의 편의성과 타당한 이유가 있다면 사용할 수 있다고 판단하여 Localizeion를 사용해 구현하기로 했습니다. 또, 한글 코인 이름은 어떻게 가져올 까 고민했고 빗썸 홈페이지를 크롤링해 "BTC" = "비트코인"; 형태로 심볼과 코인 이름을 Localizeion 형식으로 가져왔습니다.

  • 가상 화폐의 현재가를 표시할 때 호가를 보고 할까 체결내역을 보고 표시할까?

    호가의 매수, 매도 요청 내역에 대한 중간 값을 현재가로 표기해야 하는 방법을 고민하였습니다. 가상 화폐나 주식의 가치를 정하는 기준에 대해 알아보았습니다. 호가는 가상 화폐를 매매, 매도하는 사용자가 비싸거나 싸게 올릴 경우도 있기 때문에 가치를 결정하는 요인이 되기는 힘들다 판단했습니다. 따라서, 가상 화폐의 가치를 결정 할 때 가장 최근에 거래가 체결된 가격을 기준으로 했습니다.

  • 네트워크 통신 관련해서 같이 설계 할 지 아니면 한 명이 담당 할지에 대한 고민

    네트워크 통신은 중요한 부분이고 작성된 코드는 모두가 이해해야 하기 때문에 같이 설계해야 좋을것같다는 의견과 짧은 프로젝트 기간에 완성하려면 한 명이 담당해야 한다는 의견이 있었습니다.

    한 명이 담당하면서 모두가 이해할 수 있게 하기 위해 Pull Request를 통해 코드리뷰를 적극적으로 활용하기로 했습니다.