회사 소식
제품 릴리즈/패치

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 입니다.

oracle-monaco-sql-editor — EXCEPTION 예약어 도움말 팝업과 쿼리 실행 결과

함께 공개한 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 까지 인식하며, 테이블·컬럼·패키지 정보는 Oracle ALL_* 딕셔너리에서 가져옵니다.
  • 문장 분리 — 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.jsFastify + node-oracledb
PythonFastAPI + python-oracledb
JavaSpring 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 저장소에서 누구나 참여할 수 있습니다.