편집자 주:웹 응용 프로그램 아키텍처의 유형 및 구성 요소 모델의 선택은 웹 응용 프로그램 개발에서 가장 중요하면서도 어려운 중 하나입니다. 아래,사이언스 소프트는 스마트하고 정보통 결정을 내리는 데 필요한 모든 정보를 제공합니다. 당신은 여전히 의심이 있거나 웹 솔루션을 구현하는 전문가의 도움이 필요한 경우,우리의 웹 응용 프로그램 개발 팀에 문의하여 주시기 바랍니다.
30 년 동안 사이언스소프트는 온프레미스에서 웹기반 소프트웨어로 느리게 변해왔다. 온-프레미스 소프트웨어에 대한 나의 사랑과 존경에도 불구하고,우리는 오늘날 웹 앱이 소프트웨어 개념이 넓은 청중에 도달하고 가치가 투자 수익을 수신 확인하는 가장 좋은 방법이라는 사실을 부정 할 수 없다.
이 글에서,나는 웹 응용 프로그램 아키텍처의 다른 유형에 대해 말해 당신이 바로 하나를 선택하는 데 도움이,주요 웹 개발 용어를 분해.
주요 용어
웹 응용 프로그램 구성 요소
시작하기 전에 주요 기술 웹 관련 용어와 관련하여 동일한 페이지에 있는지 확인하십시오. 즉,모든 웹 앱이 클라이언트 및 서버 측으로 구성된 두 가지 구조적 웹 앱 구성 요소입니다.
클라이언트는 사용자가 상호 작용하는 웹 앱의 기능을 사용자에게 친숙한 표현입니다. 그것은 사용자의 웹 브라우저 내에 존재하며 특정 운영 체제/장치 관련 조정이 필요하지 않습니다.
서버 측을 구축하려면
웹 앱 아키텍처
웹 응용 프로그램 아키텍처는 웹 응용 프로그램 구성 요소 간의 상호 작용 패턴입니다. 이 상호 작용이 계획되는 방식에 따라 향후 웹 응용 프로그램의 복원력,성능 및 보안이 결정됩니다.
그러나 웹 앱 구성 요소가 서로 상호 작용할 수있는 방법은 적어도 두 가지가 있으며’아키텍처’라는 용어는 모호해질 수 있습니다. 이 문서에서는’웹 앱 구성 요소 모델’이라는 용어를 사용하여 웹 서버/데이터베이스 인스턴스 수에 중점을 둔 아키텍처를 앱 논리 배포를 다루는 아키텍처와 쉽게 구분할 수 있도록 합니다.
웹 앱 구성 요소 모델
사이언스소프트는 고객에게 구성 요소의 올바른 웹 앱 아키텍처를 선택하는 것이 미래의 웹 애플리케이션 성능의 품질을 보장한다는 점을 항상 상기시킨다. 의 가능한 모델의 장점과 단점을 살펴 보자.
하나의 웹 서버(데이터베이스 포함)
단일 데이터베이스가 웹 앱의 유일한 서버의 일부인 가장 간단하고 위험한 모델입니다. 서버가 다운되면 웹 앱도 다운됩니다. 사이언스 소프트에서,우리는 일반적으로 웹 응용 프로그램이 테스트 프로젝트 또는 개인 연습하지 않는 한이 모델을 사용하는 것이 좋습니다.
두 개의+웹 서버,하나의 데이터베이스
이 모델의 아이디어는 웹 서버가 데이터를 저장할 필요가 없다는 것입니다:클라이언트로부터 정보를 얻더라도 웹 서버는 데이터를 처리하고 데이터를 데이터베이스(물리적으로 분리 된 시스템에 있음)에 쓰고 잊어 버립니다.
두 개 이상의 웹 서버를 사용하면 오류 위험을 크게 줄일 수 있습니다. 웹 서버 중 하나가 다운 되더라도 다른 서버가 즉시 인계됩니다; 모든 요청은 자동으로 새 서버로 다시 지정되며 웹 앱은 계속 실행됩니다. 그러나,하나의 데이터베이스로,당신은 여전히 성능 위험이:이 충돌하는 경우,전체 시스템뿐만 아니라 충돌합니다.
두 개의+웹 서버,두 개의+데이터베이스
이 모델은 가장 장애 방지 기능으로 간주될 수 있습니다. 당사의 웹 개발 프로젝트에 5 개 이상의 웹 서버 또는 데이터베이스가 포함된 경우,사이언스소프트는 들어오는 모든 요청을 분석하여 작업 부하를 통제할 수 있도록 신중하게 할당하는 로드 밸런서를 설치합니다.
대부분의 경우,’두+데이터베이스’조건은 데이터가이 모델에서 작동하는 방식에 대해 궁금 왼쪽,그리고 진실은-그것은 당신이 할 수있는 또 다른 선택이다. 첫 번째 옵션은 각 데이터베이스 컴퓨터에 동일한 데이터를 저장하는 것입니다. 우리의 경험에 따르면,이 경우 일반적으로 데이터베이스가 2 개 이상 필요하지 않습니다.이 데이터베이스는 하나가 다운되었을 때 다른 데이터베이스가 손실없이 대체 할 수 있기 때문입니다.
대안은 데이터베이스 간에 데이터를 균등하게 분배하는 것입니다. 저장소 공간 절약의 명백한 이점에도 불구하고 이 옵션은 데이터베이스 충돌 시 일부 데이터를 일시적으로 사용할 수 없게 될 위험이 있습니다. 최고의 웹 앱 성능을 보장하기 위해,우리는 일반적으로 두 가지 접근 방식을 결합하고 나머지를 배포하는 동안 중요한 데이터를 복제합니다.
마이크로 서비스 및 서버리스
위의 세 가지 모델은 웹 서버의 안정적이고 엄격한 특성으로 인해 종종’모 놀리 식’이라고 불립니다. 마이크로 서비스 및 서버리스 아키텍처는 업그레이드 및 확장을 단순화하여 웹 앱에 더 많은 민첩성을 제공하기 위해 개발되었습니다. 이 두 모델 모두에서 웹 서버는 마이크로 서비스의’서비스’와 서버리스의’기능'(서비스가 구성하는 작은 코드 조각)과 같은 더 작은 구성 요소로 나뉩니다. 이러한 각 작은 구성 요소는 별도의 컨테이너에 존재하며 독립적으로 처리되므로 쉽게 수정하거나 확장 할 수 있습니다.
사이언스소프트는 마이크로서비스 프로젝트 중 하나인 만큼 유지 비용이 저렴하고 시장 출시 시간을 단축할 수 있기 때문에 이러한 아키텍처 모델에서 훌륭한 비즈니스 기회를 볼 수 있다. 그러나 여러 구성 요소 간의 상호 작용이 증가함에 따라 마이크로 서비스와 서버리스 웹 앱은 성능이 저하되고 잘못 구현되면 보안 위험이 발생할 수 있습니다.
우리 팀은 웹 응용 프로그램의 안정성,보안 및 고성능을 보장하는 웹 응용 프로그램 아키텍처를 계획하고 개발합니다.
웹 응용 프로그램 아키텍처 유형
모델에 관계없이 모든 웹 응용 프로그램 구성 요소가 통합 웹 응용 프로그램을 만들기 위해 작동합니다. 클라이언트 및 서버 측 간에 앱 논리가 분산되는 방식에 따라 다양한 유형의 웹 응용 프로그램 아키텍처가 있을 수 있습니다. 지금,그들의 각자가 너의 사업에 제안할 수 있는 것을 보자.
레거시 웹앱
아주 기본적인 웹앱 아키텍처에 따르면,웹페이지 구성 로직과 비즈니스 로직으로 구성된 서버는 클라이언트와 상호 작용하여 완전한 웹페이지를 발송한다. 업데이트를 보려면 사용자가 페이지를 완전히 다시 로드해야 합니다. 이 유형의 웹 응용 프로그램 아키텍처 다이어그램을 아래에서 확인하십시오.이 아키텍처 유형은 모든 논리와 데이터가 서버에 저장되고 사용자에게 액세스 권한이 없기 때문에 매우 안전합니다. 그러나 지속적인 콘텐츠 다시로드 및 무거운 데이터 교환으로 인해 꾸준히 죽어 가고 더 민첩하고 대화 형 웹 앱 유형으로 나아가는 정적 웹 사이트가 더 일반적입니다.
위젯 웹 앱
이 유형에서는 웹 페이지 구성 논리가 웹 서비스로 대체되고 클라이언트의 각 페이지에는 위젯이라는 별도의 엔터티가 있습니다. 이 프로그램은 자바 바이트코드 프로그램의 갯수를 카운트하고,스크립트의 메인 형식을 합계냅니다,그리고 확인되지 않은 실행 텍스트 파일을 찾습니다..
실시간 위젯 업데이트를 통해 이러한 유형은 다음 유형만큼 역동적이고 모바일 친화적이며 고객들 사이에서 거의 인기가 있습니다. 그러나 노출 된 클라이언트 측으로 부분적으로 이동 된 앱 논리로 인해 이러한 앱의 보안 저하에 대해 항상 상기시켜줍니다. 그리고 사이언스소프트의 경험에 비추어 볼 때,이 웹 애플리케이션 아키텍처는 가장 긴 개발 시간을 필요로 한다.
단일 페이지 웹 앱 아키텍처
단일 페이지 응용 프로그램(스파)을 사용하면 단일 웹 페이지를 한 번만 다운로드합니다. 클라이언트 측에서,이 페이지는 자유롭게 웹 서비스의 데이터를 사용하여,서버에 웹 서비스와 통신 자체에 실시간으로 업데이트를 할 수있는 자바 스크립트 계층이 있습니다. 작동 방식은 아래의 웹 앱 아키텍처 다이어그램에 나와 있습니다:
서버에서 클라이언트로 전송되는 데이터 청크는 특히 첫 번째 유형에 비해 최소화됩니다. 우리는이 웹 응용 프로그램 유형을 매우 민첩 하 게,반응,그리고 경량,쉽게 이러한’래퍼’코르도바/폰 갭 등의 도움으로 하이브리드 모바일 앱에 웹 응용 프로그램의이 유형을 변환 하는 것이 좋습니다.
프로그레시브 웹 앱 아키텍처
프로그레시브 웹 앱은 성능 속도 향상,푸시 알림,오프라인 기능 및 홈 화면 설치와 같은 추가 기능을 도입하는 스파라고 할 수 있습니다. 당신이 알 수 있듯이,이러한 기능의 대부분은 모바일 장치에서 웹 앱의 유용성을 개선하는 것을 목표로하고 있습니다.
현명한 선택
웹 앱 아키텍처를 선택할 때는 비즈니스 요구 사항을 자세히 살펴보고 가능한 모든 옵션을 평가해야 합니다. 당신이 울타리에 여전히 올바른 선택을하기 위해 더 많은 정보가 필요한 경우,우리의 웹 개발 팀의 상담에 대한 사이언스 소프트와 요청에 밖으로 도달하는 것을 망설이지 말라.
