본문으로 건너뛰기

애플리케이션

Netuno는 다중 애플리케이션 서버로, 도메인과 서브도메인을 통해 애플리케이션 접근을 분배합니다.

공개 또는 비공개일 수 있는 여러 웹 애플리케이션을 다룰 수 있으며, Netuno는 백오피스 구축을 수행합니다. 따라서 일반적으로 애플리케이션에는 항상 비공개 접근이 있으며, 공개 인터페이스는 선택 사항입니다.

Netuno에서 여러 애플리케이션을 개발할 때 애플리케이션은 데이터베이스 수준에서 분리될 수도 있고 결합될 수도 있습니다.

즉, 여러 애플리케이션이 동일한 데이터베이스를 공유하거나 각 애플리케이션마다 별도의 데이터베이스를 사용할 수 있습니다.

여러 데이터베이스를 사용하는 분리된 애플리케이션​

완전히 다른 영역을 다루는 애플리케이션의 경우 동일한 데이터베이스를 공유하는 것은 의미가 없습니다.

뉴스레터 발송을 위한 애플리케이션, 도서 관리를 위한 애플리케이션, 배송 관리를 위한 애플리케이션이 있다고 가정해 보겠습니다. 어느 것도 다른 애플리케이션에 저장된 정보가 필요하지 않으며, 이들은 완전히 독립적입니다.

따라서 동일한 데이터베이스를 공유할 이유가 없으며, 각 애플리케이션이 자체 데이터베이스를 가져야 합니다:

분리된 애플리케이션.

이렇게 하면 어떤 애플리케이션도 다른 애플리케이션에 저장된 정보를 알지 못하며, 모든 동작은 기존 다른 애플리케이션과 독립적입니다.

동일 데이터베이스에 결합된 애플리케이션​

정보를 공유해야 하고 대량의 데이터가 발생할 수 있는 애플리케이션을 다룰 때, 데이터베이스 공유는 성능 측면에서 가장 실행 가능한 해결책이지만 보안 및 데이터 무결성 측면에서는 최선의 해결책이 아닙니다.

따라서 보안과 무결성 문제로 인해 일반적으로 모든 것이 하나의 복잡한 애플리케이션에 중앙 집중화되고 해당 애플리케이션이 전용 데이터베이스를 사용하는 대규모 웹 애플리케이션이 만들어집니다. 애플리케이션에 외부 데이터가 필요하면 필요에 따라 다른 데이터베이스 및 웹 서비스와 통합할 수 있습니다.

이 경우 Netuno는 이미 이러한 유형의 애플리케이션 개발을 위한 모든 수단을 제공하지만, 데이터베이스를 공유하는 애플리케이션에도 좋은 솔루션을 제공합니다.

주요 문제가 보안과 데이터 무결성이므로, Netuno에서는 여러 애플리케이션이 동일한 데이터베이스를 사용할 때 각 애플리케이션이 자동으로 자신의 폼과 관련된 테이블로 제한됩니다.

폼과 그에 따른 테이블을 데이터베이스에 결합된 다른 애플리케이션과 공유할 수 있습니다.

고객 관리를 위한 애플리케이션, 공급업체 관리를 위한 애플리케이션, 청구를 위한 애플리케이션이 있는 시나리오를 가정해 보겠습니다. 지불해야 할 공급업체 인보이스와 수금해야 할 고객 인보이스가 모두 있기 때문입니다.

고객 애플리케이션은 공급업체 애플리케이션과 데이터를 공유해서는 안 됩니다. 서로 다른 애플리케이션이기 때문입니다.

그러나 청구 애플리케이션은 고객 및 공급업체 애플리케이션의 데이터를 가져와 인보이스를 연결하고 다양한 상황에서 수금 및 지불을 관리하기 위해 두 애플리케이션 모두와 통합해야 합니다.

결합된 애플리케이션.

애플리케이션들이 서로의 민감한 데이터에 간섭하지 않도록 하려면 각 애플리케이션에 서로 다른 데이터베이스 접근을 사용하는 것이 권장되며, 원치 않는 간섭이 발생하지 않도록 데이터베이스를 통해 각 애플리케이션의 테이블 접근 권한을 제어할 수도 있습니다.

그 외에도 Netuno는 한 애플리케이션의 것과 다른 애플리케이션의 것을 구분하고, 이들 간에 공유되는 것까지 제어합니다.

각 애플리케이션의 주소​

Netuno는 도메인과 서브도메인을 통해 애플리케이션 접근을 자동으로 분배합니다.

Netuno에 요청이 들어오면 도메인은 다음과 같이 처리됩니다:

서브도메인이 있는 애플리케이션 주소의 예시 이미지.

Netuno는 첫 번째 점(.) 이전까지의 이름을 기준으로 해당 이름의 애플리케이션이 있는지 확인합니다.

해당 이름의 애플리케이션이 있으면 그 애플리케이션이 요청을 받습니다.

해당 이름의 애플리케이션이 없으면 요청은 기본 애플리케이션(default)으로 전달됩니다.

이 도메인 해석은 서브서브도메인인 경우에도 동작합니다. 예:

서브서브도메인이 있는 애플리케이션 주소의 예시 이미지.

즉, 첫 번째 점 이전까지의 이름으로 요청을 받아 처리할 애플리케이션이 결정됩니다.

또한 Netuno는 애플리케이션에 대해 도메인이 포함된 정확한 주소를 정의할 수 있으며, 애플리케이션이 동작할 정확한 주소를 정의하기만 하면 됩니다.

도메인을 자동으로 처리하는 방식을 사용하면 대부분의 경우 애플리케이션이 정상적으로 동작할 수 있습니다. 그래도 애플리케이션 동작에 완전히 다르고 특정한 주소가 필요한 상황이 있다면 해당 애플리케이션의 구성에서 이를 정의해야 합니다.