포스트

"API 호출을 여러번 해서 필요한 데이터를 따로따로 가져올까?" vs. "DB 테이블 간 참조를 잘 해놔서 한 번에 관련 데이터를 뽑아올까?"

“API 호출을 여러번 해서 필요한 데이터를 따로따로 가져올까?” vs. ““DB 테이블 간 참조를 잘 해놔서 한 번에 관련 데이터를 뽑아올까?

**가능하면 테이블 간 참조를 잘 설계해서, 한 번의 API 호출로 필요한 데이터를 가져오는 것이 일반적으로 더 낫습니다. **(특히 관계형 DB를 쓴다면 더 그렇습니다.)

항목여러 API 호출관계형 참조 기반으로 한 번에 호출
🔄 네트워크 요청 횟수많아짐 (속도 느림, 병목 위험)최소화 가능 (빠름)
🧠 코드 복잡도각 응답 합치거나 순차 호출 필요응답 하나로 필요한 데이터 포함
🔗 관계 유지클라이언트에서 join해야 함서버/쿼리에서 join 처리 가능
🧱 DB 확장성약함 (데이터 구조 중복)강함 (정규화된 테이블 구조)
🔍 쿼리 최적화어려움인덱스, JOIN 등 DB 최적화 가능

하지만 예외(여러 호출이 더 나은 경우)도 있습니다.

상황이유
🎯 페이지네이션, lazy loading최초 요청 시 데이터 양이 너무 클 경우
⚡ 비동기 처리로 병렬 API 호출동시에 여러 구성요소가 렌더링될 때
🔐 보안 분리된 API인증 수준 또는 도메인 별 API 권한 다를 경우
🧩 BFF 아키텍처 적용필요한 데이터만 전달하려고 일부러 분리한 경우

sticker

+주의) 양쪽을 연결할 때 외부 키가 상호의존하게 되면 안됩니다. 그럴 경우에는 외부키는 한쪽에만 두고, 다른 쪽에서 필요할 때에는 db table에는 상호의존을 피하기 위해 해당 키가 없지만 코드 상에서 동적으로 채워서 사용할 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.