개요매번 프로젝트를 진행할 때마다 네트워크 응답 처리에 대한 구조를 고민하곤 합니다. 어떻게 하면 직관적인 코드로 깔끔하게 처리할지, 다른 사람이 이해하기 쉬울까를 고민하다 보니매 프로젝트때마다 다른 에러 핸들링 코드가 만들어지는 것 같습니다.이번 프로젝트에서는 조금 새롭게 Interceptor를 활용한 에러 핸들링 코드를 구현했고, 그에 대한 내용을 작성할까 합니다. InterceptorInterceptor의 역할은 다양하게 있는데, 주된 역할은 다음과 같습니다. 로깅Retrofit을 사용한다면 반드시 들어봤거나, 사용해봤을 것이라 생각합니다.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) 아마 네..
Skils/Android
개요웹개발이나, 클라이언트에서 사용자 인증을 위해서 JwtToken을 도입하고 있습니다. 안드로이드에서도 JwtToken을 기존에 처리했었는데, 이번 프로젝트에서 Authenticator를 활용해서 처리해 봤습니다.그에 대한 내용을 포스팅할까 합니다. Authenticator 허락되지 않은 사용자, 인증되지 않은 사용자일 경우 HTTP 상태코드 중 401을 받게 됩니다. 이전에는 401 에러를 받을 경우 갱신 요청을 보내는 로직을 작성했다면, 네트워크 통신 단계에서 401에러를 검증하고 작성한 로직을 실행시킬 수 있는 Authenticator에 존재를 알게 되었습니다.(사실 이 전에 몰랐던 것이 말이 안 된다..라고 생각이 들긴 합니다)class JwtAuthenticator @Inject ..
개요프로젝트가 마무리 될 즈음 당연하게 거쳐야 햘 과정이 있습니다.그것은 바로 기능들을 검증하는것이겠지요?전문적인 용어로는 QA(Quality Assuarance)라고 합니다.그동안의 프로젝트에서는 QA 과정이 없거나, 아주 간단하게 진행했습니다. 왜냐면 개발과 문서화를 하기에도 시간이 벅차기 때문인데요,하지만 좋은 프로젝트는 유저가 사용하기 이전에 서비스가 안전한지, 개발자의 의도대로 동작하는 지 검증하는것이 당연히 필요합니다. 예전에 진행했던 프로젝트에서 테스트 배포 후 받았던 피드백 내용들입니다.기능 외적으로 개발단계에서 생각치 못한 문제들이 많이 발생하는 것을 알 수 있습니다.예를 들면 위 화면처럼 말도 안되는 오류가 생기기도 하구요.. 그래서 프로젝트 마무리 단계에서 저희는 QA를 도입해보기로 ..
해당 프로젝트 관련 글 [Android] - 동영상에 대한 썸네일 리스트 반환하기[Android] - 멀티 모듈 with Version Catalog [멀티 모듈 적용기(2)][Android] - 레이어 분리 [멀티 모듈 적용기(1)][Android] 커스텀 컨트롤러 구현 및 동영상 재생 관리[Android] 비디오 타임라인 이벤트 처리[Android] 영상 편집 UI 구현[Android] - Retrofit으로 에러 메시지 처리하기[Android] DataSource 적용 및 분리[Android] 네이버 로그인 프로필 가져오기[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 간편 로그인(Kotlin) 개요저번 글에서는 동영상을 선택할 경우 편집기 UI에 썸..
해당 프로젝트 관련 글[Android] - 멀티 모듈 with Version Catalog [멀티 모듈 적용기(2)][Android] - 레이어 분리 [멀티 모듈 적용기(1)][Android] 커스텀 컨트롤러 구현 및 동영상 재생 관리[Android] 비디오 타임라인 이벤트 처리[Android] 영상 편집 UI 구현[Android] - Retrofit으로 에러 메시지 처리하기[Android] DataSource 적용 및 분리[Android] 네이버 로그인 프로필 가져오기[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 간편 로그인(Kotlin)개요동영상을 직접 편집할 수 있고, 지도에 올리는 애플리케이션을 개발하고 있습니다.편집 기능을 구현하기 위해 편집기 U..
해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리[Android] - 레이어 분리 [멀티 모듈 적용기(1)] 이전 글에서는 멀티 모듈 적용을 위해서 의존성 방향이 정리되지 않은 Domain, Data, Presentation의 계층을 완전하게 분리했습니다.이번 글에서는 분리한 계층들을 하나의 App 모듈에서 여러 개의 모듈로 분리해 보는 과정과 느꼈던 점에 대해서 적어볼까 합니다...
해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리 안드로이드 프로젝트의 코드를 보거나, 이력서를 보게 되면 클린 아키텍처 설계 경험, 혹은 멀티 모듈이라는 말이 등장하게 된다.멀티 모듈을 얘기하기 전 클란 아키텍쳐에 대해 먼저 알아야 한다.대부분이 알고 있는 클린 아키텍쳐는 로버트 마틴의 클린 아키텍처일 것이다.클린 아키텍처를 읽지 않아도, 적용해 본 적이 없어도 클린 코드와 더불..
해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리 이전 글에서는 비디오 타임라인에 대해 시간대를 제공하고, 동영상 시점을 변화시켰습니다.이번글에서는 갤러리 앱처럼 편집한 구간에 대해 재생할 수 있는 컨트롤러를 적용해 볼 예정입니다. 기능 요구사항클립의 구간을 벗어날 수 없다.재생을 하는 도중 타임라인이 변경될 경우 동영상 재생을 정지한다.동영상이 재생하는 동안 타임라인도 같이 이..
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] DataSource 적용 및 분리[Android] - Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현 이전글에선 영상 편집 UI를 구현했다면 이번 글은 타임라인에 대한 이벤트 처리에 대해 포스팅입니다.해당 화면은 삼성 갤러리 동영상 편집화면이고, 기능은 다음과 같습니다. 화면 요구사항1️⃣타임 라인 조절 시 동영상의 시점이 변한다.2️⃣왼쪽과 오른쪽 클립 이동시 해당 시점으로 동영상 시점이 변한다.3️⃣동영상의 재생 범위는 왼쪽 클립과 오른쪽 클립 사이이다.4️⃣타임 라인 클릭 시 영상의 시간대가 나와야 한다.5️⃣재생버튼..