HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
👼
[팀2] 극락이들
/
📰
[극락이들] 3주차 프로젝트 공유사항
/
✏️
API 설계에 대하여
✏️

API 설계에 대하여

생성자
우선순위
1순위
태그
API
Backend
Frontend
💚해결 완료
조수연
조수연
최민석
최민석
김동건
김동건
남명훈
남명훈
이소진
이소진
황일용
황일용
완료
Yes
API 설계에 대하여 학습을 진행하면서, 만난 문제점에 대해 조금 더 Deep하게 조사했습니다.
 
notion image
 

주제

API를 만들때 화면에 제공되는 모든 데이터를 포함하는 API를 만들어야 하나?
혹은
화면에서 도메인 단위로 API를 짤라야 하나..

결론

도메인 단위로 짤라서 API를 구현
 

이유

Front

  • 사용자에게 빠른 화면을 먼저 유의미한 데이터를 빠르게 제공하는게 중요하다(fcp)
  • fcp의 측정결과는 250ms내로 끊어내는것이 중요하다.
  • 사용자는 유의미한 화면이 빠르게 뜨지않으면, 탈주할 확률이 높다.
First Contentful Paint(최초 콘텐츠풀 페인트, FCP)
업데이트됨 최초 콘텐츠풀 페인트(FCP)는 사용자가 화면에서 콘텐츠를 볼 수 있는 페이지 로드 타임라인의 첫 번째 지점을 표시하기 때문에 사용자가 감지하는 로드 속도를 측정할 수 있는 중요한 사용자 중심 메트릭입니다. FCP가 빠르면 사용자가 페이지에서 뭔가가 진행되고 있음 을 인지해 안심할 수 있습니다. 최초 콘텐츠풀 페인트(FCP) 메트릭은 페이지가 로드되기 시작한 시점부터 페이지 콘텐츠의 일부가 화면에 렌더링될 때까지의 시간을 측정합니다.
First Contentful Paint(최초 콘텐츠풀 페인트, FCP)
https://web.dev/i18n/ko/fcp/
First Contentful Paint(최초 콘텐츠풀 페인트, FCP)
  • 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 갯수 고려
HTTP/2 소개 | Web Fundamentals | Google Developers
참고: 다음 콘텐츠는 High Performance Browser Networking(O'Reilly, Ilya Grigorik)에서 발췌한 것입니다. 전체 버전과 관련 콘텐츠에 대해서는 hpbn.co 를 참조하세요. HTTP/2는 이전에 애플리케이션 내에서 수행되던 상당수의 HTTP/1.1 임시 방편을 실행취소하고 이러한 문제를 전송 계층 내에서 해결할 수 있도록 함으로써 애플리케이션을 더 빠르고, 단순하고, 강력하게 만들어줍니다. 게다가 애플리케이션을 최적화하고 성능을 개선할 수 있는 새로운 기회를 다양하게 제공합니다!
HTTP/2 소개 | Web Fundamentals | Google Developers
https://developers.google.com/web/fundamentals/performance/http2?hl=ko
HTTP/2 소개 | Web Fundamentals | Google Developers
 

마치며

졸업생 스터디와 개인적으로 구글링?을 진행하면서 제가 가지고 있던 논리에 대한 근거를 마련할 수 있게 되었습니다!! 혹 다른 의견이 있다면 comment 남겨주세요~~~