
Oracle 데이터베이스는 객체 지향적 프로그래밍 개념을 PL/SQL에 도입하면서, 객체 타입(TYPE)의 메서드를 지원합니다. 이러한 메서드는 값을 반환할 수 있으며, 이 반환 타입에 대한 정보를 확인할 수 있는 뷰가 바로 ALL_METHOD_RESULTS입니다. 본 문서에서는 ALL_METHOD_RESULTS의 구조와 활용 사례, 그리고 다른 관련 뷰들과의 비교 및 실무 적용 전략까지 상세히 설명합니다.
ALL_METHOD_RESULTS란?
ALL_METHOD_RESULTS는 현재 사용자가 접근할 수 있는 객체 타입(TYPE)의 메서드 중 반환값(return value)을 갖는 메서드의 결과 타입 정보를 제공하는 Oracle 데이터 딕셔너리 뷰입니다. 주로 사용자 정의 객체(Object Type)의 함수형 메서드(Function Method)를 분석할 때 활용됩니다.
주요 컬럼 설명
- OWNER: 객체 타입 소유자
- TYPE_NAME: 객체 타입 이름
- METHOD_NAME: 메서드 이름
- RESULT_TYPE_OWNER: 결과 타입의 소유자
- RESULT_TYPE_NAME: 반환 타입의 이름
- RESULT_TYPE_MOD: 결과 타입의 속성(MODEL, REF 등)
- RESULT_TYPE_LINK: 외부 객체에 대한 참조 정보 (있을 경우)
활용 예제
예제 1: 특정 객체 타입의 메서드 반환 타입 조회
SELECT method_name, result_type_name
FROM all_method_results
WHERE type_name = 'EMPLOYEE_TYPE'
AND owner = 'HR';
예제 2: 반환 타입이 객체인 메서드 목록 조회
SELECT type_name, method_name, result_type_name
FROM all_method_results
WHERE result_type_mod = 'REF';
예제 3: 결과 타입 소유자 기준 필터링
SELECT method_name, result_type_owner, result_type_name
FROM all_method_results
WHERE result_type_owner = 'HR';
ALL_METHOD_RESULTS 관련 뷰 비교
| 뷰 이름 | 설명 | 주요 용도 |
|---|---|---|
| ALL_METHOD_RESULTS | 객체 타입 메서드의 반환 타입 정보 | 함수형 메서드 결과 분석 |
| ALL_METHODS | 모든 객체 메서드 정의 | 메서드 유무/종류 파악 |
| ALL_METHOD_PARAMS | 메서드의 입력/출력 파라미터 정보 | 메서드 시그니처 분석 |
실무 활용 전략
- 객체 설계 시 품질 점검: 메서드 반환 타입이 적절한지 자동 스크립트로 점검
- 자동 문서화 도구 개발: 함수형 메서드의 결과 반환형 정보를 문서화 자동화에 활용
- 동적 SQL 생성: 반환 타입이 다른 메서드 호출 시 동적으로 SQL 생성 시 유용
- API 변경 추적: 결과 타입 변경 시 영향도 분석을 위해 활용
- ORM 매핑: Java 또는 Python ORM과의 연동 시 객체 반환 타입 확인 필수
실제 활용 사례
한 금융사의 Oracle 기반 통합 뱅킹 시스템에서는 각종 계산 로직을 객체 타입으로 캡슐화하여 재사용성을 극대화했습니다. 각 TYPE에는 수십 개의 FUNCTION 메서드가 있었고, 이들의 반환 타입이 일관되지 않아 클라이언트 애플리케이션에서 오류가 잦았습니다. 이에 따라 ALL_METHOD_RESULTS 뷰를 활용해 모든 메서드의 반환 타입을 주기적으로 수집하고, 정형화된 기준(예: NUMBER, DATE, VARCHAR2 사용)을 위반한 항목을 자동 감지하는 프로세스를 구축했습니다. 그 결과 시스템의 오류율이 크게 감소하고, 새로운 비즈니스 로직 도입 시 유지보수 비용이 30% 이상 절감되었습니다.
결론
ALL_METHOD_RESULTS는 오라클 객체 타입 메서드의 반환 타입을 중앙에서 파악할 수 있도록 도와주는 중요한 도구입니다. 특히 객체 지향 기반 PL/SQL 개발이 활발한 조직에서는 이 뷰를 활용한 자동화 및 품질 관리 체계를 구축함으로써 개발 안정성, 문서화, 유지보수 효율성을 대폭 향상시킬 수 있습니다.
출처
- Oracle Database Reference: https://docs.oracle.com/en/database/
- Oracle PL/SQL User's Guide and Reference 21c
- 현업 PL/SQL 개발자 및 DBA 인터뷰 기반 경험치
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] ALL_MVIEW_AGGREGATES 완벽 분석 : 물리적 뷰 집계 함수 추적과 최적화 전략 (0) | 2025.06.24 |
|---|---|
| [ORACLE] ALL_MVIEWS 완벽 가이드 : 물리적 뷰 관리의 핵심 (0) | 2025.06.24 |
| [ORACLE] ALL_METHOD_PARAMS 완전 정복 : 메서드 파라미터 관리의 핵심 (0) | 2025.06.24 |
| [ORACLE] ALL_LIBRARIES 뷰 실무 활용 가이드 (0) | 2025.06.24 |
| [ORACLE] ALL_INTERNAL_TRIGGERS 뷰 완벽 가이드 (0) | 2025.06.24 |