Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

Oracle Application Express(APEX) 완벽 가이드: 저코드 개발의 특징부터 설치까지

조직이 더 민첩해져서 애플리케이션을 더 빠르고, 더 저렴하고, 더 효율적으로 개발할 수 있다면 어떨까요? Oracle® Application Express(APEX)와 드래그 앤 드롭 방식의 시각적 개발 기법을 활용하는 저코드(low-code) 개발을 고려해 보세요.

소개

APEX를 활용하면 끊임없이 변화하는 요구 사항에 유연하게 대응할 수 있으며, 개발자는 물론 조직 전체가 솔루션 구축에 신속하게 참여할 수 있습니다.

Oracle Application Express(APEX) 완벽 가이드: 저코드 개발의 특징부터 설치까지

이미지 출처: https://apex.oracle.com/en/

APEX를 선택해야 하는 이유

APEX는 개발자가 자신의 데이터를 기반으로 시각적으로 매력적인 앱을 만들 수 있는 가장 쉬운 방법입니다. APEX의 주요 특징은 다음과 같습니다.

  • 간편함(Simple): 애플리케이션 빌더(Application Builder)의 직관적인 브라우저 기반 GUI가 단계별로 앱 제작 과정을 안내합니다. 학습 부담이 적고, 강력한 컴포넌트를 통해 최소한의 코드만으로 고급 기능을 추가할 수 있습니다. 사용자는 일주일 이내에 실무에 바로 활용할 수 있습니다.

  • 강력함(Powerful): 간단한 스프레드시트 웹 버전부터 하루에 수만 명이 사용하는 복잡한 미션 크리티컬(mission-critical) 애플리케이션까지 APEX 하나로 구축할 수 있습니다.

  • 검증됨(Proven): APEX는 오랜 기간 전 세계에서 수천 개의 애플리케이션을 성공적으로 지원해 온 검증된 플랫폼입니다.

  • 보안성(Secure): APEX는 설계 단계부터 높은 수준의 보안을 갖춘 웹 애플리케이션을 기본으로 제공합니다. 보안·웹 표준이 진화하고 해킹 기법이 정교해질수록, APEX의 보안 중심 설계는 최신 수준의 보호 기능을 보장합니다.

  • 이식성(Portable): APEX는 온프레미스든 클라우드든 Oracle Database가 있는 곳이라면 어디서든 실행됩니다. 어떤 환경에도 손쉽게 배포할 수 있습니다.

아키텍처

개요

Oracle APEX는 브라우저에서 웹 서버를 거쳐 데이터베이스로 요청이 전달되는 단순한 3계층(three-tier) 아키텍처를 사용합니다. APEX는 모든 처리, 데이터 조작, 비즈니스 로직을 데이터베이스 내부에서 실행합니다. 이러한 구조 덕분에 지연 없는(zero-latency) 데이터 접근, 최상의 성능, 뛰어난 확장성이 보장됩니다.

사용자가 APEX 페이지를 제출하면, 아래 이미지와 같이 페이지 요청이 Oracle REST Data Services(ORDS)를 통해 APEX로 전달된 후 다시 되돌아오는 흐름으로 처리됩니다.

Oracle Application Express(APEX) 완벽 가이드: 저코드 개발의 특징부터 설치까지

이미지 출처: https://apex.oracle.com/en/platform/architecture/

구체적으로 살펴보면, APEX는 웹 브라우저에서 발생한 웹 요청을 ORDS로 전송하고, ORDS는 이를 실행하기 위해 Oracle Database로 넘깁니다. 데이터베이스 내부에서 APEX가 요청을 처리한 뒤, 그 결과가 다시 ORDS를 거쳐 브라우저로 반환됩니다.

Oracle RAD 스택

Oracle RAD 스택은 세 가지 핵심 구성 요소, 즉 Oracle REST Data Services(ORDS), Oracle APEX, Oracle Database로 이루어진 통합 기술 스택입니다.

이 스택만으로 세계적 수준의 강력하고 아름답고 확장 가능한 앱을 개발·배포하는 데 필요한 모든 요소를 갖추게 됩니다. 추가로 필요한 부품이나 외부 구성 요소가 전혀 없습니다. 더욱이 Oracle APEX와 ORDS는 Oracle Database에 무료로 포함된 기능이므로, Oracle Database를 보유하고 있다면 이미 Oracle RAD 스택을 함께 갖추고 있는 셈입니다.

REST Data Services(ORDS)

Oracle Application Express(APEX) 완벽 가이드: 저코드 개발의 특징부터 설치까지

ORDS는 SQL과 데이터베이스 역량을 갖춘 개발자가 Oracle Database, Oracle Database 12c JSON Document Store, Oracle NoSQL Database를 위한 REST API를 개발할 수 있게 해주는 Java 애플리케이션입니다.

APEX

Oracle Application Express(APEX) 완벽 가이드: 저코드 개발의 특징부터 설치까지

Oracle Database의 네이티브 저코드 개발 플랫폼으로, 세계적 수준의 기능을 갖춘 멋지고 확장 가능하며 안전한 앱을 어디서든 배포할 수 있도록 지원합니다.

Database

Oracle Application Express(APEX) 완벽 가이드: 저코드 개발의 특징부터 설치까지

Oracle Database는 어떤 규모의 배포에도 대응할 수 있는 가장 완전하고 통합적이며 안전한 데이터베이스 솔루션입니다. 이 견고한 기반 위에서 Oracle APEX로 만든 앱은 첫날부터 엔터프라이즈급 품질을 갖출 수 있습니다.

APEX 18.1 설치하기

설치 전제 조건

Oracle Application Express 18.1 릴리스를 설치하려면 Oracle Database 11.2.0.4 이상이 필요합니다. Enterprise Edition과 Express Edition(Oracle Database XE)을 포함합니다.

공식 사이트에서 APEX 18.1 소프트웨어를 다운로드한 후 Accept를 클릭합니다.

Oracle Application Express(APEX) 완벽 가이드: 저코드 개발의 특징부터 설치까지

1단계: APEX 18.1.0.00.45 소프트웨어 압축 해제

unzip apex_18.1.zip -d /oradb/

2단계: 새 APEX 테이블스페이스 생성

CREATE TABLESPACE APEX DATAFILE '/oradb/app/oracle/oradata/clone/apex01.dbf' SIZE 1G;

3단계: APEX 설치 여부 확인

SELECT comp_name, version, status FROM dba_registry WHERE comp_id='APEX';
no rows selected

4단계: APEX 18.1 설치 시작

SQL> @apexins APEX APEX TEMP /i/

각 매개변수의 의미는 다음과 같습니다.

  • apex_tbs: APEX 사용자용 테이블스페이스 이름
  • apex_files_tbs: APEX 파일 사용자용 테이블스페이스 이름
  • temp_tbs: 임시 테이블스페이스 이름
  • images: APEX 이미지용 가상 디렉터리. 향후 업데이트를 위해 /i/로 지정합니다.

앞선 스크립트는 데이터베이스에 여러 개의 스키마를 생성합니다. 다음 명령으로 ALL_USERS 뷰를 조회해 정상 생성 여부를 확인할 수 있습니다.

SQL> select username,created from all_users where USERNAME like '%APEX%';

USERNAME                      CREATED
———————                       ——————-
APEX_PUBLIC_USER             29-MAY-18
APEX_180100                  29-MAY-18
APEX_INSTANCE_ADMIN_USER     29-MAY-18

5단계: 설치 버전 및 상태 확인

SELECT comp_name, version, status FROM dba_registry WHERE comp_id='APEX';

COMP_NAME                       VERSION          STATUS
—————                           ——————           ———-
Oracle Application Express     18.1.0.00.45       VALID

6단계: APEX 릴리스 버전 확인

select * from apex_release;

VERSION_NO            API_COMPAT      PATCH_APPL
———-                  ———-            ———————
18.1.0.00.45          2018.04.04      APPLIED

7단계: 내장 PL/SQL 게이트웨이(EPG) 구성 실행

이 단계부터 본격적인 APEX 구성이 시작됩니다. 다음 스크립트는 APEX 이미지를 XDB에 로드합니다.

@apex_epg_config.sql <apex 디렉터리의 상위 경로>

SQL> @apex_epg_config.sql /oradb

8단계: 특정 계정 잠금 해제 확인

이 단계에서도 APEX 구성 작업이 계속됩니다.

ALTER USER anonymous ACCOUNT UNLOCK;
ALTER USER xdb ACCOUNT UNLOCK;
ALTER USER apex_public_user ACCOUNT UNLOCK;
ALTER USER flows_files ACCOUNT UNLOCK;

9단계: APEX용 데이터베이스 파라미터 구성

SHOW PARAMETER job_queue_processes

NAME                        TYPE           VALUE
———                         —————          ———–
job_queue_processes         integer        4000

SHOW PARAMETER shared_servers

NAME                        TYPE           VALUE
————                        ————           ———–
max_shared_servers          integer
shared_servers              integer        1

shared_servers 파라미터를 다음과 같이 변경합니다.

ALTER system SET shared_servers=5 scope=both;

10단계: XDB HTTP 리스너 포트 및 APEX ADMIN 비밀번호 설정

이 단계로 APEX 구성이 마무리됩니다. 관리자 계정은 기본값인 ADMIN을 그대로 사용할 수 있으며 이메일 입력은 건너뛰어도 됩니다. HTTP 포트도 변경할 수 있지만 기본 포트는 8080입니다.

SQL>@/oradb/apex/apxconf.sql

PORT
———-
8080

XDB HTTP 리스너 포트 값과 APEX ADMIN 사용자의 비밀번호를 입력합니다. 대괄호 [ ] 안에는 기본값이 표시되며, Enter 키를 누르면 기본값이 적용됩니다.

다음 스크립트는 APEX 인스턴스 관리자의 비밀번호를 변경하는 데 사용됩니다. 해당 사용자가 아직 없으면 새로 생성합니다.

Enter the administrator's username [ADMIN]
User "ADMIN" does not yet exist and will be created.
Enter the ADMIN's email [ADMIN]
Enter the ADMIN's password []
Created instance administrator ADMIN.
Enter a port for the XDB HTTP listener [ 8080]
…changing HTTP Port
APEX configuration finishes.

11단계: HTTP 포트 확인

SQL> select dbms_xdb.gethttpport from dual;

GETHTTPPORT
———–
8080

12단계: 리스너 상태 및 HTTP 포트 활성화 확인

[oracle@clone:apex clone] lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 – Production on 29-MAY-2018 19:20:08
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=clone.localdomain.com)(PORT=1521)))

STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 – Production
Start Date 25-MAY-2018 21:52:41
Uptime 3 days 21 hr. 27 min. 26 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oradb/app/oracle/product/12.2.0.1/db_1/network/admin/listener.ora
Listener Log File /oradb/app/oracle/diag/tnslsnr/clone/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=clone.localdomain.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=clone.localdomain.com)(PORT=5500))(Security=(my_wallet_directory=/oradb/app/oracle/admin/CLONE/xdb_wallet))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=clone.localdomain.com)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary…
Service "CLONE.localdomain.com" has one instance.
Instance "clone", status READY, has one handler for this service…
Service "cloneXDB.localdomain.com" has one instance.
Instance "clone", status READY, has one handler for this service…
The command completed successfully

13단계: 관리 서비스 로그인 페이지 접속

브라우저에서 ADMIN 사용자로 관리 서비스(Administration Services) 로그인 페이지에 접속합니다: https://clone.localdomain.com:8080/apex/apex_admin

결론

Oracle APEX는 더 나은 기능성, 더 우수한 성능, 향상된 최종 사용자 경험을 갖춘 애플리케이션을 구축하고자 할 때 가장 적합한 도구입니다. 엔터프라이즈 애플리케이션의 개발과 배포 과정을 획기적으로 단순화해 줍니다. 이 글에서 살펴본 내용을 종합해 보면, 다음 개발 프로젝트에 Oracle APEX를 선택하는 것이 충분히 합리적인 결정이 될 것입니다.