전체 글

안드로이드 개발 로그
Android

[Android] Android Architecture

MVP/MVVM/Clean Architecture 등 아키텍처 설계 혹은 적용 경험이 있으신 분 안드로이드 채용 공고를 보면 자주 등장하는 말이다. 그래서 아키텍쳐에 대해 자세하게 알아보려고 한다. 소프트웨어 아키텍쳐 소프트웨어를 구성하는 구성요소간의 관계를 관리하는 시스템의 구조이자 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다. 말 그대로 소프트웨어를 개발할 때 지켜야 하는 규칙같은 것이다. 이러한 규칙을 정하고 지키는 이유는 협업을 할 때 본인이 마음대로 짠 코드를 다른 사람들이 본다면 그 사람들은 코드를 이해하기 어려워 할 것이다. 물론 협업이 아니더라도 코드의 수정이 매우 힘들거나 구조를 이해하기 힘들어진다. 이러한 이유 때문에 아키텍쳐 패턴이라는 개념이 나오고 사용되는 것이다. 실제..

Android

[Android] 안드로이드 에러 분석 방법 및 에러 종류에 따른 설계 방법

안드로이드를 개발하다 보면 에러를 마주하게 된다. 이러한 에러들을 어떻게 분석하는지와 에러를 개선하는 방법에 대해 알아볼 것이다. 에러를 개선할 때 에러 종류에 따라 어떤 식으로 설계해야 하는지도 같이 알아볼 것이다. 에러 분석 방법 먼저 에러를 분석하는 방법은 크게 어플리케이션이 출시 전과 출시 후로 나뉜다 어플리케이션 출시 전 어플리케이션 출시 후 Logcat, JUnit Test, JVM 테스트, 실 기기 테스트 Android Vitals 어플리케이션 출시 전 코딩하면 흔하게 사용하는 방법으로 에러를 확인하고 분석한다. Logcat -> IDE에서 제공하는 로그 창에서 에러 로그를 확인 JUnit Test -> JUnit과 같이 테스트 도구를 사용해서 단위 테스트를 하며 에러를 확인 JVM 테스트 ..

Android

[Android] REST API 예외처리

REST API를 사용해서 통신을 하다보면 통신에 실패했을 때에 대한 예외 처리도 해주어야 한다. 오른쪽 위에 200 OK라고 뜬 것이 통신 코드이다. 통신에 성공하면 저렇게 내용도 뜨고 통신 코드도 잘 나온다. 하지만 통신에 실패하면 아래와 같은 통신 코드와 에러 내용을 받게 된다. 클라이언트에서 REST API로 통신을 했는데 에러를 받으면 정상적으로 내용이 나오지 않을 것이다. 이것에 대해 예외 처리를 해주는 것이다. 보통은 예외 종류에 따라 에러 메세지를 출력해주게 만든다. 쉽게 말해 클라이언트에서는 사용자가 통신에 실패한 것을 두 눈으로 확인할 수 있게 출력해주는 처리를 해야하는 것이다. 프로젝트에서 REST API 통신은 레트로핏을 이용하였고, 코루틴을 사용해서 통신 처리를 했다. 예외 처리는..

Android

[Android] Retrofit Multipart로 이미지 전송하기

Multipart HTTP 요청의 한 종류로 HTTP 서버로 파일 혹은 데이터를 보내기 위한 요청 방식이다. 위와 같이 백엔드에서 REST API 명세서를 작성해주면 해당 명세서에 맞게 통신 코드를 구현해야 한다. 상황에 따라 Multipart 데이터 내용은 달라질 수 있기 때문에 명세서를 잘 보고 명세서에 맞게 값을 넣어야 한다. 이미지가 여러개일 수도 있고, 여러개의 String 값이 들어올 수도 있고, 하나의 이미지에 JSON 값을 요청할 수도 있다. 위 상황에서는 하나의 이미지에 JSON 값을 요청하는 경우이다. 포스트맨에서 Multipart 요청을 보내기 위해서는 다음과 같이 사용된다. 회원가입을 할 때 사진과 아이디, 닉네임 등 여러 데이터를 전달하는 상황이다. Body에 form-data로 ..

Android

[Android] Retrofit + Kotlin Coroutine 서버 통신하기

지난번에 포스팅 했던 Retrofit을 사용해서 서버와 통신하는 글을 보고 오시는 것을 추천합니다. [Android] Retrofit을 사용해서 서버와 통신하기 Retrofit이란? Rest API 통신을 위해 구현된 라이브러리 Squareup사의 OkHttp 라이브러리의 상위 구현체 Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축됨 초창기 안드로이드 네트워크 통신은 sangyoon98.tistory.com Intro Retrofit을 사용해서 자바와 코틀린 두가지 언어로 통신하는 방법을 포스팅했었다. 하지만 CallBack 메소드를 호출하던 방식이라 코드의 길이도 길었고 완전한 비동기 프로그래밍 방법이 아니었다. 그래서 이번에는 Coroutine을 사용해서 서버 통신을 비동기 ..

Android

[Android] Retrofit을 사용해서 서버와 통신하기

Retrofit이란? Rest API 통신을 위해 구현된 라이브러리 Squareup사의 OkHttp 라이브러리의 상위 구현체 Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축됨 초창기 안드로이드 네트워크 통신은 HttpURLConnection / Apache HTTP Client 사용 하지만 단점이 많아 Deprecated 되고 OkHttp, Volley, Retrofit 등 라이브러리 사용 근데 왜 하필 Retrofit이냐! 서버 통신은 비동기 처리를 위해 스레드를 사용해야 하는데 스레드 성능이 제일 빠르기 때문이다 Retrofit 장점 매우 빠른 성능!! 위에서 보았듯이 매우매우매우 빠르기 때문에 안 쓸 이유가 없다 간단한 구현HttpURLConnection의 Connectio..

Sangyoon98
Sangyoooooon