Oracle Application Express
APEX 홈으로 돌아가기
Application Express란 무엇입니까?

Oracle Application Express(Oracle APEX, 구제품명: HTML DB)는 오라클 데이터베이스 환경을 위한 RAD 웹 애플리케이션 개발 도구입니다. 웹 브라우저와 최소한의 프로그래밍 경험만으로도 빠르고 안정적인 전문 애플리케이션을 개발, 구축할 수 있습니다. Oracle Application Express는 개인용 데이터베이스의 생산성, 편의성, 유연성 면에서의 이점과 엔터프라이즈 데이터베이스의 강력한 보안, 무결성, 확장성, 가용성, 웹 지원 기능을 조합한 제품입니다. Application Express는 웹 기반 애플리케이션 구현을 위한 도구이며, 애플리케이션 개발 환경 역시 웹 기반으로 제공되고 있습니다. apex.oracle.com에 등록하신 후 Application Express를 직접 체험해 보실 수 있습니다.


Application Express 홈페이지

Application Express 애플리케이션은 클라이언트 소프트웨어를 전혀 필요로 하지 않습니다. Application Express가 제공하는 세 가지 툴이 아래와 같습니다.

  • Application Builder - 다이내믹 데이터베이스 기반의 웹 애플리케이션 생성을 위한 도구
  • SQL Workshop - 데이터베이스 오브젝트 조회, SQL 쿼리 수행, 그래픽 쿼리 빌더 등의 기능 지원
  • Utilities - 플랫 파일, 스프레드시트로부터의 로드/언로드 지원
Application Express를 이용하여 어떤 애플리케이션을 개발할 수 있나요?

Application Express는 데이터베이스 데이터에 대한 리포팅 애플리케이션의 구현을 위한 생산성 툴입니다. 리포트는 대개 다른 리포트에 대한 하이퍼텍스트 링크를 가지며, 따라서 사용자는 마치 웹 사이트를 서핑하는 것처럼 데이터베이스의 데이터를 조회할 수 있습니다. 리포트의 컬럼들은 다른 리포트, 차트, 데이터 입력 폼과 쉽게 링크가 가능하며, 모든 개발 작업은 선언적으로 실행됩니다. 또 강력한 차트 엔진을 이용하여 그래픽한 형태로 SQL 쿼리를 표현하고 보다 효과적인 데이터 커뮤니케이션을 보장할 수 있습니다. Application Express는 또 데이터베이스 데이터의 편집에 매우 유용하며, 라디오 그룹, 체크박스, 선택 목록, 셔틀, 텍스트 에디터, 날짜 선택기 등의 다양한 선언적 폼 컨트롤을 지원합니다.


하이퍼텍스트로 링크된 리포트

하이퍼텍스트로 링크된 차트

데이터 입력 폼
 
Application Express는 어떤 경우에 활용됩니까?

Application Express는 부서 단위의 애플리케이션을 짧은 기간 안에 쉽고 빠르게 개발할 수 있도록 설계되었습니다. 애플리케이션은 웹 기반으로 구현되어 강력한 성능을 제공합니다. 과거에는 부서 단위 프로젝트 또는 프로토타입, 소규모 프로젝트에서 개발 요구 사항을 충족하는 RAD 개발 툴로 데스크탑 데이터베이스가 이용되는 경우가 많았습니다. 데스크탑 데이터베이스는 데이터를 지나치게 분산된 형태로 관리하고, 기밀 정보의 관리에 취약하며, 웹 친화적이지 못하다는 문제가 있습니다. Oracle Application Express가 제공하는 브라우저 기반 디자인 타임 인터페이스, 선언적 프로그래밍 프레임워크, 단순화된 마법사를 이용하여 Microsoft Access와 같은 멀티-유저 데스크탑 애플리케이션을 효과적으로 대체할 수 있습니다.

SQL에 친숙한 애플리케이션 개발자라면 웹 개발 경험이 전무한 상태에서도 데이터베이스 애플리케이션을 쉽게 개발할 수 있습니다. 스크립트 언어나 복잡한 프레임워크 구조를 이해할 필요도 없습니다. 쿼리를 몇 개 작성하고 기존에 구현된 사용자 인터페이스 테마와 폼 컨트롤을 선택하기면 하면 매우 전문적이고 안정적이고 확장성 있는 애플리케이션이 구현됩니다.

선언적 프로그래밍

Application Express의 코딩은 선언적인 방법으로 진행됩니다. 다시 말해 직접 코드를 작성하거나 컴파일할 필요가 전혀 없으며, 개발자는 마법사와 속성 시트만을 사용합니다. 단 리포트 및 차트의 정의를 위해 SQL 언어가 이용되므로, SQL에 대한 지식은 많은 도움이 될 것입니다. 절차적 로직이 필요한 경우라면 PL/SQL을 이용하여 간단한 코드를 작성해야 할 수도 있습니다. 선언적 코딩 방법은 개발자 간에 존재하는 코딩 방식의 차이를 최소화하는 효과를 제공하며, 따라서 일관성을 개선하고 관리, 유지보수를 한층 용이하게 할 수 있습니다.

아키텍처

Application Express 엔진은 데이터베이스 테이블에 저장된 데이터를 이용하여 애플리케이션을 실시간으로 렌더링합니다. 애플리케이션이 생성, 확장된 경우, Oracle Application Express는 데이터베이스 테이블에 저장된 메타데이터를 생성, 수정합니다. 애플리케이션이 실행되면, Application Express 엔진은 메타데이터를 읽어 들인 후 애플리케이션을 디스플레이합니다. Application Express는 전적으로 오라클 데이터베이스 내부에서 실행되며, 데이터 테이블과 PL/SQL 코드로만 구현되어 있습니다. Oracle Application Express는 약 215 개의 테이블과 300,000 라인의 코드를 포함하는 200 개의 PL/SQL 오브젝트로 구성되었습니다.

애플리케이션의 "stateful" 동작을 보장하기 위해, Oracle Application Express는 데이터베이스의 세션 상태를 투명하게 관리합니다. 애플리케이션 관리자들은 간단한 대치 구문 또는 표준 SQL 바인드 변수 구문을 이용하여 세션 상태를 설정할 수 있습니다.

Application Express 아키텍처 다이어그램
주요 기능

Oracle Application Express가 제공하는 주요 기능이 아래와 같습니다.

리포팅
Oracle Application Express를 이용하여 SQL 쿼리 결과를 반환하는 HTML 리포트를 신속하게 생성할 수 있습니다. 또 리포트를 HTML, PDF, RTF (Microsoft Word 호환), XLS (Microsoft Excel 호환) 포맷으로 다운로드할 수도 있습니다.

선언적으로 리포트를 링크하여 드릴 다운 리포팅을 수행하거나, 바인드 변수를 이용하여 세션 상태 정보를 리포트에 전달하는 것도 가능합니다. 리포트는 선언적 컬럼 헤딩 정렬, 컨트롤 브레이크, 합산(sum), 페이지네이션(pagination) 등을 지원합니다. 리포트 정렬 및 페이지네이션 작업 시 PPR(Partial Page Refresh) 테크놀로지를 이용하면 전체 페이지를 리프레시하는 수고를 덜 수 있습니다. 또 리포트에 선언적 링크를 추가하여 리포트 데이터를 CSV, XML 등의 포맷으로 다운로드할 수 있으며, 템플릿을 이용하여 리포트의 룩앤필을 커스터마이즈하는 것도 가능합니다.

폼(Form)
마법사를 이용하여 테이블 또는 스토어드 프로시저에 쉽게 폼(form)을 생성할 수 있습니다. 테이블에 폼이 생성된 경우, 마법사를 통해 INSERT, UPDATE, DELETE 등의 작업뿐 아니라 업데이트 실패를 탐지할 수도 있습니다. 폼을 생성한 다음에는 비주얼 화면을 통해 폼 필드(폼 아이템이라고도 부릅니다)의 위치를 정렬하고 원하는 레이아웃을 신속하게 얻을 수 있습니다. 폼 아이템은 텍스트 필드, 텍스트 영역, 라디오 그룹, 선택 목록, 체크 박스, 날짜 선택기, 팝업 리스트 등의 다양한 디스플레이 옵션을 지원합니다.

 
실행
   다운로드

차트
마법사를 이용하여 SQL 쿼리를 기반으로 HTML 또는 SVG 차트를 생성할 수 있습니다. 또, 사용자가 특정 차트에서 다른 차트 또는 리포트로 드릴다운을 수행할 수 있도록 차트 포맷을 정의할 수 있습니다. PPR(Partial Page Refresh) 테크놀로지를 이용한 차트의 부분 리프레시가 지원되므로, 전체 페이지를 리프레시 할 필요가 없습니다. 차트를 일정한 주기로 리프레시 하도록 설정하는 것도 가능합니다. 또, 리포트 컬럼 템플릿을 이용하여 리포트에 간단한 HTML 바 차트를 추가할 수도 있습니다.

 
실행
   다운로드

PDF 프린팅
Application Express 3.0부터는 리포트 영역을 PDF로 내보내는, 다시 말해 리포트를 프린트하는 기능이 새로 제공됩니다. 커스텀 링크 또는 버튼을 임의의 리포트 영역에 추가할 수도 있습니다. 또 Shared Components에 Report Query와 Report Layout을 정의할 수 있습니다. 이렇게 생성된 커스텀 리포트는 애플리케이션 어느 곳에서든 링크가 가능합니다.

 
실행
   다운로드

웹 서비스
Application Express 웹 서비스 엔진은 느슨하게 정의된 타입과 문서 스타일 웹 서비스를 지원합니다. 따라서 JDeveloper에서 생성한 웹 서비스와 Oracle BPEL 동기식 웹 서비스를 지원하는 것이 가능합니다. 또 SSL(HTTPS) 기반 웹 서비스 또는 기본적인 인증을 요구하는 웹 서비스와 교신할 수 있습니다. 마지막으로, Application Express 엔진이 특정 서비스의 WSDL 문서를 올바르게 파싱할 수 없는 경우 웹 서비스 레퍼런스를 수작업으로 생성하는 기능이 지원됩니다. 이 방법으로 SOAP 리퀘스트 엔빌롭(request envelope)과 URL 엔드포인트를 지정할 수 있습니다.

스프레드시트 업로드
스프레드시트 마법사의 Create Application 기능을 이용하여 데이터베이스에 스프레드시트 데이터를 신속하게 업로드할 수 있습니다. 새로운 데이터베이스 테이블에 업로드된 데이터를 저장하거나, 또는 기존 데이터베이스 테이블에 저장할 수도 있습니다. 데이터 업로드가 완료된 후에는 바로 애플리케이션 생성이 가능합니다. 이처럼 편리한 마법사 기능을 이용하면, 단 몇 번의 클릭만으로 스프레드시트 환경에서 공유 애플리케이션 환경으로 이전할 수 있습니다.

세션 상태 관리
Oracle Application Express는 데이터베이스의 세션 상태(또는 애플리케이션 컨텍스트)를 투명하게 관리합니다. 폼은 자동으로 세션 상태를 저장하고, 세션이 변경되는 과정에서도 애플리케이션 컨텍스트를 기억합니다. 바인드 변수를 이용하면 SQL, PL/SQL에서 세션 상태를 쉽게 참조할 수 있습니다. 아래와 같은 SELECT 구문을 예로 들어 보겠습니다.

   SELECT * FROM EMP WHERE EMPNO = :P1_ID

위의 예에서, 아이템 P1_ID의 값은 쿼리가 실행될 때 다이내믹하게 바인딩됩니다. 또 아이템 네임의 앞부분에 "&" 기호를, 뒷부분에 "." 기호를 붙여 정적 컨텍스트(static context)에서 세션 상태를 참조할 수도 있습니다. 그 예가 아래와 같습니다.

   &P1_NAME.

Oracle Application Express는 2차원 데이터 세트의 관리를 위한 컬렉션 인프라스트럭처를 제공합니다. 세션 관리는 "stateless"로 수행되므로 메모리를 전혀 사용하지 않습니다.

사용자 인터페이스 테마
Oracle Application Express는 애플리케이션 로직으로부터 프리젠테이션(사용자 인터페이스 테마)를 분리한 형태로 설계되었습니다. 애플리케이션을 특정 테마(theme)에서 설계한 후 다른 테마로 변경하거나 커스텀 테마를 직접 생성할 수도 있습니다. 애플리케이션 로직(예: 쿼리, 프로세스, 브랜치 등)으로부터 HTML 렌더링을 분리함으로써, 애플리케이션을 재작성하지 않고도 새로운 디자인과 기타 새로운 기술을 쉽게 도입할 수 있습니다.

플로우 컨트롤 / 네비게이션
모든 웹 애플리케이션은 네비게이션(navigation)을 필요로 하며, 다이내믹 애플리케이션은 플로우 컨트롤(flow control)을 필요로 합니다. Oracle Application Express는 네비게이션 컨트롤의 개발 및 유지 보수를 단순화하기 위한 빌트인 컴포넌트를 제공합니다. 네비게이션은 선언형 탭(1 단계 또는 2 단계), 브레드크럼(breadcrumb), 트리 컨트롤, 링크 리스트 등을 통해 제어됩니다. 플로우 컨트롤은 선언형 브랜치(branch)를 이용하여 특정 이벤트 및 조건을 기준으로 수행됩니다. 네비게이션 컨트롤의 외양은 템플릿을 통해 관리되므로 변경이 용이합니다.

전체 컴포넌트의 조건부 수행
다이내믹 웹 애플리케이션의 애플리케이션 컴포넌트와 프로세싱은 대부분 조건부로 수행됩니다. 다시 말해, 애플리케이션 컨텍스트, 데이터, 이벤트, 권한 등의 조건에 따라 정보 중 일부만을 표시 또는 처리해야 합니다. Oracle Application Express는 모든 컴포넌트에 대한 조건을 선언적으로 정의하는 기능을 제공합니다. 따라서 탭, 버튼, 아이템, 리스트 엔트리 등에서 사용자에게 제공되는 정보를 정밀하게 통제할 수 있습니다.

외부 인터페이스 및 확장성
Oracle Application Express는 애플리케이션 구현을 위한 강력한 선언적 환경을 제공하고 있지만, 이와 별도로 커스텀 인터페이스/컨트롤을 개발하기 위한 옵션이 제공됩니다. 예를 들어, 컴포넌트가 환경의 요구 사항을 만족하지 않는 경우, PL/SQL을 이용하여 커스텀 HTML을 생성할 수 있습니다. 또 웹 서비스를 통해 외부 서비스를 호출하는 것도 가능합니다. Oracle Application Express는 이메일 경고를 애플리케이션에 쉽게 통합하기 위한 API를 제공하고 있습니다. 또, Oracle Application Express가 오라클 데이터베이스 내부에서 실행되므로, 외부 테이블, PL/SQL, 데이터베이스 링크, 게이트웨이, Java 등의 데이터베이스 기능을 이용하여 애플리케이션의 기능을 확장할 수 있습니다.

보안
Oracle Application Express를 이용하여 사용자 로그인이 불필요한 퍼블릭 애플리케이션을 생성하거나 인증을 요구하는 보안 애플리케이션을 생성할 수 있습니다. Oracle Application Express는 싱글사인온, Database Account Credentials, 사용자 관리 시스템 등의 빌트인 인증 환경을 제공합니다. 또는 Microsoft Active Directory, Oracle Applications와 같은 인증 서비스와 인터페이스하는 커스텀 환경을 구현할 수도 있습니다.

또, 환경의 요구 사항을 만족하는 커스텀 인증 환경을 생성하고 전체 애플리케이션, 특정 페이지 또는 페이지 컴포넌트에 인증 기능을 선택적으로 적용할 수 있습니다. 마지막으로, 혁신적인 세션 상태 보호 기능을 이용하여 URL 조작 시도, SQL 인젝션 공격, 크로스-사이트 스크립팅(XSS) 공격을 차단하는 것이 가능합니다.

SQL Workshop 툴
SQL Workshop은 웹 브라우저에서 데이터베이스 오브젝트를 조회, 관리하기 위한 툴을 제공합니다. SQL Command는 SQL, PL/SQL 구문을 실행하기 위한 툴입니다. Query Builder는 테이블의 드래그-앤-드롭 작업을 통해 오브젝트 간의 관계를 쉽게 정의할 수 있게 합니다. Object Browser는 데이터베이스 오브젝트의 조회, 생성, 수정, 삭제를 위한 편리한 그래픽 사용자 인터페이스를 제공합니다. 마지막으로, SQL Script를 이용하면 스크립트 파일을 생성, 편집, 조회, 실행, 삭제할 수 있습니다

Supporting Objects 유틸리티
패키지 애플리케이션을 이용하면 애플리케이션을 다른 Oracle Application Express에 내보내어 설치하는 작업을 단순화할 수 있습니다. Supporting Objects 유틸리티를 이용하여 애플리케이션 정의에 데이터베이스 오브젝트, 시드 데이터, 이미지, CSS, JavaScript 등의 생성을 위한 스크립트를 포함시킬 수 있습니다.

이처럼 패키지 애플리케이션을 생성함으로써 애플리케이션을 다른 개발/테스트/운영 인스턴스에 가져오고 설치하는 프로세스를 자동화할 수 있습니다.

성능
Oracle Application Express는 애플리케이션 개발자와 사용자에게 매우 뛰어난 수준의 성능을 제공합니다. Oracle Application Express는 오라클 데이터베이스 내부에서 실행되므로 네트워크 트래픽을 거의 발생시키지 않습니다. 또 Application Builder에 포함된 다양한 모니터링 리포트를 이용하여 애플리케이션 성능 문제를 확인하고 해결할 수 있습니다.

패키지 애플리케이션
패키지 애플리케이션(packaged application)이란 사용 및 커스터마이즈가 가능한, 완전한 기능을 구현한 애플리케이션을 말합니다. 패키지 애플리케이션은 단기적인 목표 하에 비즈니스 애플리케이션을 신속하게 구현하고자 할 때 매우 유용합니다. 패키지 애플리케이션은 데이터베이스 스키마, 시드 데이터, 이미지, 애플리케이션 정의 등 설치에 필요한 모든 것을 마법사를 통해 제공합니다.


패키지 애플리케이션

호스팅 개발 환경
Oracle Application Express는 단일 데이터베이스에 많은 수의 사용자를 호스팅하는 환경을 지원합니다. 사용자들을 위해 할당된 작업 영역을 워크스페이스(workspace)라 부릅니다. 이처럼 유연한 아키텍처를 통해 단일 데이터베이스 인스턴스에서 수천 개의 애플리케이션을 관리할 수 있습니다.

관리자는 워크스페이스의 프로비저닝(또는 생성)을 위한 프로세스를 정의할 수 있습니다. 프로비전 모드에서, 사용자는 로그인 페이지의 링크를 통해 워크스페이스를 요청합니다. 워크스페이스에 대한 요청이 허용되면, 사용자에게 로그인 정보가 이메일로 전달됩니다.


멀티-호스팅 환경
E-mail this page
Printer View Printer View