기술 스택 설명
mvvm 아키텍처 프로젝트 규모가 커질수록 참조 관계가 많아져서 코드를 고치면 참조되어 있는 다른 곳에서 연쇄적으로 오류가 날 수도 있다. 하지만 mvvm 아키텍쳐는 하나의 소프트웨어를 model, view, view model로 최대한 기능적으로 작은 단위로 나누고 관찰(observing)하는 형식으로 데이터를 관리하여 참조 관계를 최대한 없애주어 코드 수정이 용이하고, 테스트가 쉽고 관리하기 좋은 구조이기 때문에

아키텍처는 일단 적용할 수 있는 사람은 바로 적용 - 힘들면 mvc로 해본 다음 추후 리팩토링 | | coil | kotlin coroutine과 결합한 이미지 로딩 라이브러리로 glide 보다 boilerplate 코드가 적고 사용이 간편해 선택 | | retrofit | 다른 http 통신 라이브러리보다 빠른 성능을 갖고 있고, 어노테이션을 통해 http 통신을 정의 할 수 있어 간편하고 직관적이다. 또, 서버에서 받아오는 json, xml데이터를 자동으로 파싱해주는 Converter를 지원해주기 때문에 개발자 입장에서는 개발이 쉬워지기 때문에 선택 | | firebase auth | 소셜 로그인 및 자체 로그인을 하기 위해서 인증 수단이 필요한데, firebase auth에서 자체 로그인 및 소셜 로그인 등 다양한 로그인, 회원가입 플랫폼을 제공하고, 사용하기 편리하여서 선택 | | firebase firestore | json과 비슷하게 단순한 데이터를 쉽게 저장할 수 있고, 계층 구조로 나뉘기 떄문에 데이터 정리 가 쉬워지고, 단일,복합 쿼리를 지원하기 떄문에 원하는 데이터를 골라 올 수 있는 장점이 있다. | | firebase storage | aws s3 같은 경우, 프리티어 계정(1년)으로 무료로 사용할 수 있지만 기간이 지나면 과금을 해서 사용해야한다. 하지만 계정 생성 시간 관계 없이 firebase storage는 프로젝트 당 5GB의 저장 공간을 무료로 제공하기 때문에 소규모 프로젝트에 적합하다고 생각해 선택 했다. | | github actions (CI) | 합쳐진 코드를 빌드하고, 코드가 컨벤션에 맞춰졌는지 일일이 확인하는 것은 굉장히 귀찮고 시간이 오래 걸리는 작업임. 그래서 Pull Request를 할 시, 코드가 잘 빌드 되는지 코틀린 컨벤션은 맞춰 졌는 지를 테스트해보기 위해 간단한 CI를 구성하여 코드를 관리해보고자 하였음 | | Kakao API (Map, Login) | sk open api인 국내여행 api를 사용하면서 Tmap도 사용하려고, 국내여행 api를 사용하려고 했지만, 국내여행 (방문객 수 검색) api가 일일 무료 사용량이 100건이여서 사용량이 굉장히 적고, 공공 데이터 API의 여행 빅데이터 api(방문객 수 검색)를 대체재로 사용하기로 결정하면서, TMap 하나만을 쓰기 위해서 sk api를 사용할 이유가 줄어들었다. 관리 할 키 값도 많아지고, 현재 카카오 로그인 api를 사용 중이기에 키 값을 관리하기 용이하게 카카오 맵으로 전환을 하였다.

SK Open API의 국내여행 API와 Tmap을 함께 사용하려 했지만, 국내여행 API의 무료 사용량이 적어 대체재로 공공 데이터 API의 여행 빅데이터 API를 사용하기로 결정. 이에 따라 SK API를 사용하는 이유가 줄어들었고, 키 값 관리의 편의성과 지도의 범용성을 위해 카카오 맵으로 전환하는 결정을 하게 됨.

티맵 3.4점 80.73k 네이버 3.3점 180.2k 카카오 4.2점 120.8k |

Untitled

레트로핏과 다른 라이브러리와 비교 도식화

티맵 3.4점 80.73k

네이버 3.3점 180.2k

카카오 4.2점 120.8k