EUNJIHA / Dev-Tips

👩🏻‍💻Develop 중에 해결한 문제들 issue 작성

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API 구현할 때, 클라이언트한테 어느정도까지 해서 보내야 해?

EUNJIHA opened this issue · comments

commented

❓ [의문점]

: 특정 Band의 Posts를 보여줄 때, 사진과 동영상이 같이 있는 경우 항상 동영상이 사진보다 앞선다. 서버 개발자는 이 순서도 고려하여 API를 설계 구현 해야 하는가? 아니면 클라이언트 영역으로 넘길 것인가?

💯[해결법]

: 정렬(Order by 등), 필터(Where절, LIKE등), 값 계산(SUM 등) 처럼 SQL 구문으로도 처리할 수 있는 것들은 모두 서버 개발자가 구현해놓는 게 좋다.

💥[이유]

: Client-Server 관계는 보통 (N:1)의 관계이다. 서버에서 할 수 있음에도 클라이언트에게 넘긴다면 다수의 클라이언트는 각자 모두 구현해야 한다. (전체구조상 비효율적임.)

✔[추가설명]

Client - Server - DB
Client에는 (Android, IOS, WEB, WebApp, HybridApp) 등이 있다.

  • 그럼 클라이언트에서 처리해야 할 부분은 무엇인가?
    가령, 각 클라이언트 마다 형식이 다른 경우. Android와 IOS는 각각 ListView - TableView / RecycleView - CollcView 일 때는 서버 쪽에서는 단순히 기본 값으로 넘겨주고 각 클라이언트 형식에 맞게 처리하도록 하면 된다.

  • 물론, 각 Client 별로 API를 여러 개 만들 수도 있다. 이를 관리 Point라고 하는데, 관리 Point가 많아질 수록 유지 보수가 복잡해진다.

따라서 서버에서 할 수 있는 것은 서버에서 처리하고, 클라이언트에게 위임할 부분은 위임하자.