API 설계에 대하여 학습을 진행하면서, 만난 문제점에 대해 조금 더 Deep하게 조사했습니다.

주제
API를 만들때 화면에 제공되는 모든 데이터를 포함하는 API를 만들어야 하나?
혹은
화면에서 도메인 단위로 API를 짤라야 하나..
결론
도메인 단위로 짤라서 API를 구현
이유
Front
- 사용자에게 빠른 화면을 먼저 유의미한 데이터를 빠르게 제공하는게 중요하다(fcp)
- fcp의 측정결과는 250ms내로 끊어내는것이 중요하다.
- 사용자는 유의미한 화면이 빠르게 뜨지않으면, 탈주할 확률이 높다.
- skeleton ui로 api 직전에 화면이 로드되는것을 사용자에게 노출시켜주는것이 좋다.
Backend
- client는 다양한 요구사항이 변경된다.
- client의 요구사항 변동성에 있어, 하나의 api로 의존도가 걸리게되면, 변경이 힘든구조를 가져가게된다.
- 변경이 힘들거나, 덕지덕지 붙어진다.
- 화면은 기획자의 의도에 의해 변경이된다.
- 작은 단위의 api를 제공하는것이 중요하다.
- 다만, msa구조에서 domain 별로가져갔을때, http는 connection 제한 갯수가 걸려있다.
- aggregate 할수있는 api를 제공하는것도 고려를 해야된다.
- http2 부터는 multiplexing을 제공하여, 더많은 connection을 가져갈수있다.
- chrome 기준 http/1.1 max connection 6개
- aggregate가 가능한 구조로 구현
- http/1.1을 사용한다면, front end의 connection 갯수 고려
마치며
졸업생 스터디와 개인적으로 구글링?을 진행하면서 제가 가지고 있던 논리에 대한 근거를 마련할 수 있게 되었습니다!! 혹 다른 의견이 있다면 comment 남겨주세요~~~