마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱 개발 관련해서 질문 있습니다.ㅠ

0 추천
1. 앱 개발 시 회원가입, 로그인 기능에서 예외처리(아이디 중복체크, 비밀번호 중복체크 등)를 할 시 안드로이드 스튜디오 상에서 예외처리를 하는 것이 좋을까요? 아니면 DB 중계 서버로 사용중인 jsp에서 예외처리를 하는 것이 좋을까요?

2. 안드로이드 스튜디오 통신 라이브러리인 레트로핏에서 @Field를 사용하는 것이 좋나요 @Body를 사용하는 것이 좋을까요?
pair (130 포인트) 님이 2022년 2월 11일 질문

1개의 답변

+1 추천

1. UI 로직은 앱에, 비지니스 로직은 서버에 두시면 됩니다. (상황에 따라 앱에 비지니스 로직이 들어가기도 합니다.)

예를 들어, 로그인 화면에 입력값이 들어오지 않은 경우 로그인 버튼의 상태를 enabled=false로 한다던가 하는 건 UI 로직이므로, 앱에 있으면 되고, 아이디나 비밀번호 중복 체크는 서버에서만 가능한 로직이므로 서버에 두면 됩니다. 서버에서 유효성 검사가 실패할 경우는 에러코드 같은 걸 반환하면 되겠죠. 모든 API를 일정한 포맷으로 해서 리턴하시면 앱에서 처리하기가 편할 겁니다. 예를 들어,

public class ApiResponse<T> {
     private final boolean success;
     private final T data;
     private final int error;
   
     // 생성자, getter.생략
}

 

error는 int, enum, Custom class 등등 상황에 맞게 설계하시면 될 것 같구요.

2. 어떤 게 정답이다라고 말씀 드리기는 힘들 것 같네요. 다만 갯수가 적다면 @Field를 써도 될 것 같고 그렇지 않다면 @Body를 사용하는 것이 처리하기가 편할 수 있다고 생각되네요. 아니면 모두 @Body만 사용하셔도 상관없을 것 같구요. 딱히 정답은 없기 때문에 기준을 정하셔서 거기에 맞춰서 하시면 될 듯합니다.

spark (227,530 포인트) 님이 2022년 2월 11일 답변
답변 너무 감사드립니다. 또 하나 배워가네요 ㅎㅎ
...