조건이 많은 기능들을 앱에 노출해야하는 경우, 상당히 API가 많아질수있다.
1) 홈화면에 카드형식의 데이터들을 노출해야할때, 각각의 카드는 노출해야하는 조건들이 다르다.
- 각카드별로 노출여부 조건을 조회하는 API를 호출하고 해당 API의 응답을 클라이언트가 판단하여, 카드를 노출한다.
2) 미션탭에서, 각각의 미션의 조건이 다르다.
- 각각의 미션은 미션수행의 조건이나 노출여부가 사용자마다 다르고 이또한 조건을 조회하는 API를 조회하여 노출여부를 판단한다.
일반적인 방법으로 구현을 하게되면,
클라이언트에서 각각의 조건에 맞는 API들을 다수 호출하게 되고,
그 API들또한 미묘하게 동일한 데이터를 포함하거나, 중복되는 호출의 API일 가능성이 높아진다.
이런 API들을 미션이나 홈카드 노출전용으로 묶어서 제공하게 되면,
이또한 중복이나, 각각의 전용 API들이 나오게 되어,
불필요하거나 중복된 API들이 만들어지게 되고, 관리의 문제또한 발생하게 된다.
이런경우는 이렇게 룰을 가져갔다.
홈카드, 미션수행 리스트를 내려주는 API를 만들고 해당 API안에서 각각의 카드, 미션에 대한 조건을 모두 판단하여,
실제 클라이언트가 노출해야하는 리스트를 모두 서버에서 한번에 판단하여 내려준다.
그리고 클라이언트는 해당 응답 리스트에있는 항목에 대해서만,
상세조회를 하여, 카드, 미션의 내용을 채우게 룰을 가져갔다.
이렇게 되면,
필요한 조건들은 모두 서버에서 한번에 조건 필터링하여 목록으로 내려주기때문에,
클라이언트가 불필요하게 여러 API를 호출한 필요가 없고,
향후 조건이 변경되는 경우도,
서버에서 해당 조건에 맞게 리스트를 내려주게 수정만 하면 일괄적으로 적용이 된다.
그리고 조건에서 무거운 쿼리 조회나 수행을 하는 데이터또한 내부적으로 재사용가능하기에, 성능면에서도 향상되는 이점이 있다.
API로 앱의 기능을 호출하여 구현할때는 이런 룰들이 잘정리되어야, 불필요하고, 중복된 API들이 많이 생겨나지 않게되고,
성능또한 높일수있다.
(무거운 기능인 경우는 캐시또한 일괄로 적용할수있어, 이점이 많다)
별것이 아니라고 생각을 하겠지만,
이런 작은 룰들이 결국 퍼포먼스와 유지보수 모두를 잡을수있는 초석이 된다는것 명심하자...
'MY개발생각' 카테고리의 다른 글
| [개발생각] 주소기반 데이터 조회를 위한 방법은? (0) | 2026.07.05 |
|---|---|
| [개발생각] 앱에서 한페이지에서 API를 많이 호출할때 튜닝 (0) | 2026.07.04 |
| [개발생각] API와 앱의 출시 마무리 작업 (0) | 2026.06.28 |
| [개발생각] 공포의 주간랭킹 개발하기 (0) | 2026.06.24 |
| [개발생각] 블리자드..이래서 망한건가??? (0) | 2026.06.22 |
