2011-07-27 5 views
1

나는 모든 종류의 측정 값을 수집하고 표시하는 제품을 가지고 있습니다 (들어 가지 않습니다). 디스플레이 부분은 예상대로 데이터베이스 + 웹 사이트 (Symfony 포함) 위에 있습니다.{REST API, 웹 사이트} -> {데이터베이스} 또는 {웹 사이트} -> {REST API} -> {데이터베이스} 중 어느 것이 더 낫습니까?

그러나 타사에도 데이터를 표시하는 API를 만들 예정입니다.

이제 우리는 데이터베이스 위에 웹 사이트와 API를 모두 작성하거나 맨 위에 API를 빌드하고 웹 사이트에서 API를 구현하도록 선택할 수 있습니다.

스키마가 변경 될 때마다 (몇 번이라도 될 수 있음) API와 웹 사이트에 대한 두 모델 레이어를 모두 적용해야하기 때문에 후자를 선호합니다. 후자가있는 경우 분명히 API 모델을 적용하는 이점이 있습니다. API 계약이 동일하게 유지되면 웹 사이트는 적응할 필요가 없습니다.

그러나 분명히 성능에는 단점이 있습니다. 웹 사이트 < -> 데이터베이스, 웹 사이트 < -> API < -> 데이터베이스를 사용하면 첫 번째 버전이 분명 가장 빠릅니다.

내 질문은 : 귀하의 의견은 어떻습니까? 성능이 거의 균등 해지기를 바랍니다. 모든 컴퓨터가 동일한 LAN에있을 것이고 캐싱이있을 것입니다. 그렇다면 개발의 용이성으로 인해 내 인생이 더 수월해집니다 .-)

귀하의 의견과 경험을 기다리십시오!

답변

2

조숙 한 최적화의 경우가 있었다면, 이것입니다! 당신은 더 많은 정보없이 답을 알지 못할 것이고, 나는이 둘 사이의 성능 차이가 당신의 영역에서 무의미 할 정도로 무시할 만하다는 것을 매우 의심합니다.

IMO의 가장 좋은 방법은 두 가지 방법을 사용하여 몇 가지 모델을 스파이크로 만들어서 어디서 볼 수 있는지 확인하는 것입니다.

+0

두 답변 (당신과 djna)은 내가 생각하기를 바랬지만 답변을 검색하는 동안 더 많은 부정적인 목소리가 들었습니다. 저는 창업 초기부터 일하므로 개발 속도가 저에게는 매우 중요한 요소입니다. 성능 차이가 미미할 경우 필자의 선택이 확실하게됩니다. 즉, API의 형태로 DB 주위에 하나의 레이어가 있고, 해당 API에 대해 작성된 다른 모든 구성 요소가 있습니다. – Dieter

1

많은 현대 웹 사이트는 JavaScript (AJAX 등)를 사용하고 API에 대한 서비스 호출을합니다. 이러한 접근 방식을 취한 경우 DB 앞에 신중하게 설계되고 재사용 가능한 API 계층을 갖게됩니다.

나는 여기에 약간의 노력이 없다는 것을 알았고 나는 당신이 주목할만한 성능 저하를 초래할 것이라는 것에 회의적이다.

1

다른 사람이 API를 직접 사용할 수 있는지 확인하는 더 좋은 방법은 없습니다. 웹 사이트 -> API -> 데이터베이스로 이동합니다. 한 번 쓰면, 나중에 튜닝하고 나중에 "속이"수 있습니다.

관련 문제