요구 사항에 따라 다릅니다. 많은 작은 작업에 의존하는 고성능, 대기 시간이 짧은 솔루션이 필요한 경우 설명하는 것과 유사한 구조를 사용할 수 있습니다. Java, PHP 및 C #에서 가장 일반적인 솔루션은 기본값이 아닙니다.
대부분의 웹 응용 프로그램은 데이터베이스에 크게 의존합니다. 대부분의 웹 응용 프로그램은 한 번 이상의 호출없이 페이지를 렌더링 할 수 없습니다. 분명히 몇 가지 이유로 데이터베이스를 공개적으로 노출하고 싶지 않습니다.
- 보안 ( Oded 언급 한 것처럼 )- 네트워크를 공개적으로 노출시키고 싶지 않습니다 ! 이상적으로 외부에서 시스템에 대한 유일한 인터페이스는 서버에 대한 https 여야합니다.
- 당신이 정말로, - 개발의 용이성 정말 , 정말 자바 스크립트에서 쓰기 SQL 싶지 않아, 웹 프리젠 테이션 용으로 설계된 언어는 RDB에 잘 작동하지 않습니다. 예를 들어 국가 개념이 없습니다.
따라서 데이터베이스가 필요할 때 Java, C #, PHP 등과 같이 잘 작동하는 언어를 사용합니다. 페이지를 생성하는 가장 쉬운 방법은 다음과 같습니다. 템플릿 언어 (대부분 PHP, 그러나 JSP와 ASP는 페이지를 구성하는 다른 두 가지 일반적인 언어입니다. 이 언어는 다른 모듈을 호출하는 구문을 제공합니다. PHP에서 이것은 일반적으로 MVC 패턴을 사용하여 페이지 또는 다른 PHP 파일에 있습니다. JSP에서는 스크립틀릿 또는 JSP 표현식 언어를 사용합니다. 이러한 다른 모듈은 DB에 연결하고 로직을 수행하며 값을 뷰 계층으로 반환하는 많은 작업을 수행 할 수 있습니다. 최종 결과는 서버에서 렌더링되어 클라이언트로 전송 된 생성 된 HTML 페이지입니다.
데이터베이스가 페이지 렌더러와 동일한 네트워크에 있으면 성능도 향상됩니다. 클라이언트는 하나의 요청 만 수행하고 페이지를받습니다. 사용자가 필요한 모든 정보를 얻기 전에 10-15 개의 DB 요청을 수행해야 할 수도 있습니다. 클라이언트가 모든 작업을 수행해야하는 경우 네트워크에서 대기 시간 (밀리 초)은 몇 초에서 몇 분입니다.
시스템이 커지면 우려와 핵심 역량의 분리가 중요해집니다. HTML은 표시하기에 좋습니다. 자바 스크립트는 동적 콘텐츠에 적합합니다. SQL은 데이터베이스 쿼리에 적합하고 다른 언어는 비즈니스 논리에 능숙합니다. 개발자로서 우리의 임무는 유지 관리 가능한 시스템을 구축하는 데 사용할 수있는 모든 도구를 사용하는 것입니다. 손쉬운 개발은 좋은 시스템 의 큰 부분입니다. 제 생각에는 성능과 유용성만큼이나 중요합니다. 훌륭한 시스템은 시간이 지남에 따라 진화합니다. 불쌍한 시스템은 처음부터 잘못 작성되었으며 결코 개선되지 않았습니다.