회사 소식
제품 릴리즈/패치
Oracle SQL·PL/SQL 에디터 React 컴포넌트 'oracle-monaco-sql-editor' 오픈소스 공개
데이터다이나믹스가 Oracle SQL·PL/SQL 자동완성과 함수·예약어 도움말 팝업을 제공하고, Node·Python·Java 게이트웨이로 실제 쿼리까지 실행할 수 있는 React 에디터 컴포넌트를 MIT 라이선스로 GitHub에 공개했습니다.
발행: 2026년 10월 30일
데이터다이나믹스가 Oracle SQL과 PL/SQL을 위한 웹 에디터 React 컴포넌트 oracle-monaco-sql-editor 를 GitHub에 공개했습니다. VS Code의 편집기 엔진인 Monaco Editor를 기반으로 하며, 라이선스는 MIT 입니다.

함께 공개한 Trino용 Monaco SQL 에디터의 구조를 바탕으로, Oracle 고유의 문법과 SQL*Plus·SQL Developer 사용 방식에 맞춰 새로 만들었습니다. 사내 데이터 포털이나 운영 도구에 Oracle 쿼리 편집·실행 화면을 넣어야 하는 개발팀이 컴포넌트 하나로 바로 붙여 쓸 수 있습니다.
주요 기능
Oracle SQL·PL/SQL 편집
- Oracle 전용 구문 강조 —
q'[…]'대체 인용, 옵티마이저 힌트/*+ … */, 바인드 변수:name, 치환 변수&var, DB 링크@dblink,%TYPE/%ROWTYPE, 단독 라인/종결자까지 구분합니다. - 문맥 기반 자동완성 — 커서가 있는 문장을 ANTLR 문법으로 파싱해 그 위치에서 문법상 가능한 것만 제안합니다. 테이블 별칭, CTE·인라인 뷰 컬럼, PL/SQL 변수·파라미터, 트리거의
:NEW/:OLD까지 인식하며, 테이블·컬럼·패키지 정보는 OracleALL_*딕셔너리에서 가져옵니다. - 문장 분리 — SQL*Plus·SQL Developer 규칙에 따라 SQL, PL/SQL 블록, SQL*Plus 명령을 나눠 실행합니다.
- 포매터 — PL/SQL 블록 들여쓰기를 지원하고, 문자열·주석·힌트는 그대로 보존합니다.
함수·예약어 도움말 팝업
Shift+F1이나Ctrl/Cmd+클릭으로 커서 아래 항목의 구문·설명·예제 를 팝업으로 보여 줍니다. 내장 함수 약 250개, 예약어·문장 약 90개, 의사 컬럼, 데이터 타입, Oracle 제공 패키지(DBMS_*,UTL_*)를 담았고, Oracle 19c·21c·23ai 매뉴얼 링크도 함께 제공합니다.- 함수 괄호 안에서는 현재 입력 중인 파라미터를 강조하는 시그니처 도움말 을, 패키지 프로시저에서는
p_name =>형태의 이름 인자 완성 을 제공합니다. - 테이블·컬럼·시퀀스·PL/SQL 변수에 마우스를 올리면 타입, NOT NULL 여부, 코멘트, 객체 상태(
INVALID) 등을 보여 줍니다. - 대상 버전(
19c·21c·23ai)을 지정하면 해당 버전에 없는 새 구문은 자동완성에서 숨기고 검증에서 경고합니다. 화면 문구와 도움말은 한국어·영어·일본어·중국어를 지원합니다.
실제 쿼리 실행 — Node·Python·Java 서버 연동
브라우저는 Oracle에 직접 접속할 수 없기 때문에, 저장소에 같은 API와 보안 방식을 가진 게이트웨이 서버 3종 을 함께 담았습니다. 운영 환경의 기술 스택에 맞춰 하나를 고르면 됩니다.
| 게이트웨이 | 구성 |
|---|---|
| Node.js | Fastify + node-oracledb |
| Python | FastAPI + python-oracledb |
| Java | Spring Boot + ojdbc11 |
- 사용자마다 전용 Oracle 세션 을 열어 트랜잭션(커밋·롤백),
ALTER SESSION, 결과 페이징, 실행 취소,DBMS_OUTPUT출력을 지원합니다. Ctrl/Cmd+Enter로 현재 문장,F5로 스크립트 전체,F10으로 실행 계획(EXPLAIN PLAN)을 실행합니다. 바인드 변수와 치환 변수는 값을 입력받아 채웁니다.- ORA 오류와 PL/SQL 컴파일 오류는 에디터의 해당 위치에 표시됩니다. 입력을 멈추면 쿼리를 실행하지 않고 EXPLAIN PLAN만으로 테이블·컬럼 오류를 미리 잡아내는 서버 검증도 선택해 쓸 수 있습니다.
- 별도 서버를 두기 어렵다면 Oracle REST Data Services(ORDS)로 연결하는 방식도 제공합니다.
참여
설치와 사용 방법, 게이트웨이 설정은 저장소의 README와 설계 문서에 정리했습니다. 버그 제보와 기능 제안, 풀리퀘스트는 GitHub 저장소에서 누구나 참여할 수 있습니다.