🔎 서비스 내용

매일 소비하는 다양한 미디어를 기록 할 수 있는 미디어 감상 아카이빙 서비스 입니다.

현재 제공 되는 3가지 핵심 기능은 다음과 같습니다.

  1. 고객이 소비한 미디어를 기록할 수 있는 미디어 기록 기능.
  2. 고객이 기록한 다양한 미디어를 볼 수 있는 나의 기록 페이지.
  3. 고객이 미디어 소비 정보를 한 눈에 볼 수 있는 통계 페이지.

⚙️ 기술 스택


🖊️ 개발 내용

Response 공통 Body Wrapping

Response 에서 공통적으로 받아오는 정보를 Wrapping 객체를 만들었습니다. 반복 작성되는 코드를 줄이고 제네릭을 사용하여 필요한 부분의 Response DTO를 만들어 이용하도록 만들어 DTO 작성시 필요한 정보만 담을 수 있도록 개선하였습니다.

Retrofit2 Callback 상속 구현 사용 경험 개선

이전 프로젝트에서 사용되던 Callback 객체를 사용하기 위해서는 반드시 Kotlin 확장 api 인 apply{} 와 also{} 를 호출하는 Boiler Plate Code가 있었습니다.

이를 개선하고자 개발자에게 익숙한 Design Pattern 인 Builder Pattern 의 방식을 빌려 필요한 동작을 lambda로 받는 Builder를 확장 프로퍼티로 선언했습니다. build() 함수 대신 기존에 사용하던 enqueue() 함수를 전달 매개 변수 없이 호출하면 사용되도록 이를 개선하였습니다. 또한 이 과정에서 Response 공통 body Wrapping 객체를 사용하지 않는 경우 사용할 수 없도록 제한하여 코드 사용자의 실수를 방지하고자 하는 설계를 했습니다.

결과적으로 기존의 Boiler Plate Code를 제거함과 더불어 보다 가독성을 높이고 실수를 줄일 수 있었습니다.


☘️ 프로젝트 기여 내용