일기/나의 일기

부스트캠프 2주차 - 서울살이



0. 2주차 회고


 부스트캠프 1주차는 치열한 기획의 시간이었고, 자기반성을 할 수 있었던 시간이었습니다.

 부스트캠프 2주차는 치열한 개발의 시간이 되었습니다. 기획을 했던 것을 어떻게 개발을 할 수 있을까에 대한 고민이 많았었습니다.

 우리 팀원은 개발을 할 때, 운이 좋게도 세부류로 나눠졌습니다. 디자인, 서버 개발, 아키텍쳐 부분으로 팀원이 나눠졌고,

 저는 팀에서 안드로이드 개발과 함께 API 서버 개발을 하게 되었습니다.

  큰 이슈는 크게 3가지 였습니다. 

 - 첫 번째로는 API를 어떻게 사용할 것이고, 서버에 어떻게 입힐 것인가?

 - 두 번째로는 어떤 맵을 사용할 것인가?

 - 세 번쨰로는 모션레이아웃으로 만든 백드롭의 터치 이슈였습니다.






1. 어떤 API를 사용할 것인가?


- 저희는 NodeJS로 Server API를 만들었고,

 크게 라우터로 분리한 것은 place와 house로 나누어서

 해당 지역의 상권 정보, house의 가격 정보를 가져오도록 분리시켰습니다.


- 해당 작업을 하면서 라우트 분리도 안되었고,

로직적인 문제가 있었지만, 튜터님의 조언으로 부족한 것을 캐치하고, 그것을 해결할 수 있었습니다.


- 저희는 SwaggerHub를 통해서 API 명세서를 만들어서 관리하고 있습니다. Export를 통해서 해당 api를 MVC패턴으로 뽑아주는 것을 일찍 알았더라면, 더 좋았을 것 입니다.ㅜㅜ



2. 어떤 맵을 사용할 것인가?


 저는 해당 프로젝트에서 맵에 관련된 부분을 도맡아 했습니다.

 그에 따라서, 어떤 맵을 사용할 것인가가 주요한 키 포인트 였었는데, 구글맵, T맵, 네이버맵, 카카오맵 등 다양한 맵이 있었고,

 리버스 지오코딩이 되고, 개발이 용이한 것에 있어서 처음에는 T맵을 사용하게 되었습니다. 하지만, UI적인 측면과 기능적인

 측면에 있어서 네이버맵도 괜찮을 것이라는 의견이 있었고, 그에 따라서 네이버맵으로 변경되어 프로젝트가 진행되게 되었습니다.

 하지만, 잠시 동안 T맵을 사용해본 결과, 네이티브단에서 리버스 지오코딩을 지원해주고, 기능적으로 쉽게 개발할 수 있는 것이

 많아서 다음 프로젝트에는 꼭 T맵을 사용해봐야 겠다고 생각했습니다.


3. 모션레이아웃 백드롭


 


 해당 프로젝트에서 모션레이아웃을 사용했습니다.

  - 백드롭 구현

  - 필터 구현

  - 백드롭 애니메이션

  - 필터 애니메이션

  - 백드롭과 필터의 트리거

  위의 다섯 가지 기능을 모션레이아웃을 통해서 처리를 하였고, 이전에 잠시 동안

 컨스트레인트 레이아웃을 공부했던 것이 많은 도움이 되었습니다.

  

2018/10/24 - [Android 공부] - 안드로이드 ConstraintLayout 사용법


 하지만, 모션레이아웃은 match_parent를 통해서 뷰의 크기를 갖고 있기 때문에, 그에 따른 터치 이슈를 발견할 수 있었습니다. 모션레이아웃 때문에 해당 맵이 드래그가 안 되는 것이 가장 큰 이슈 였고, 이것을 해결하기 위해서 튜터님과 함께 머리를 맞대고, 많은 고민을 하게 되었습니다.


 해결을 할 수 있었던 것은 튜터님께서 주신


https://proandroiddev.com/the-motion-knight-b8f84052dd17


해당 웹이 많은 도움이 되었고, 모션레이아웃의 Rect와 해당 레이아웃의 Rect를 구한 다음에 해당 드래그 하려는 레이아웃의 rect가 hit 되었는지를 체크하는 로직으로 해당 이슈를 해결할 수 있었습니다.


4. 2주차 결론


 2주차가 진행되고 나서, 짧은 시간동안에 MVVM, DataBinding, ViewModel을 다시 한 번 생각할 수 있었습니다.

 팀원들이 많은 도움이 되었고, 귀찮은 질문에도 항상 대답해준 것에 감사하게 생각하고 있습니다.

 남은 시간 동안, 프로젝트가 안정적으로 잘 굴러갈 수 있도록 더 열심히 해야겠습니다.

 모두 화이팅!