본문 바로가기
Database/Oracle

[ORACLE] ALL_METHOD_RESULTS 완벽 가이드 : 메서드 반환 타입의 모든 것

by Papa Martino V 2025. 6. 24.
728x90

오라클 ALL_METHOD_RESULTS 완벽 가이드 : 메서드 반환 타입의 모든 것
[Oracle] ALL_METHOD_RESULTS

 

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 개발이 활발한 조직에서는 이 뷰를 활용한 자동화 및 품질 관리 체계를 구축함으로써 개발 안정성, 문서화, 유지보수 효율성을 대폭 향상시킬 수 있습니다.

출처

728x90