오라클 ADF

IT 위키
계발자 (토론 | 기여)님의 2025년 10월 7일 (화) 08:48 판 (새 문서: 오라클 ADF(Oracle Application Development Framework)은 자바 엔터프라이즈 애플리케이션 개발을 위한 프레임워크이다. 이 프레임워크는 선언적(declarative) 개발, 시각적 도구, MVC 구조, 데이터 바인딩 추상화를 결합하여 개발 생산성을 높이기 위해 설계되었다. ==개요== Oracle ADF는 Java EE 표준과 일부 오픈 소스 기술을 기반으로 구축된 엔드투엔드 애플리케이션 프레임워크이다....)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

오라클 ADF(Oracle Application Development Framework)은 자바 엔터프라이즈 애플리케이션 개발을 위한 프레임워크이다. 이 프레임워크는 선언적(declarative) 개발, 시각적 도구, MVC 구조, 데이터 바인딩 추상화를 결합하여 개발 생산성을 높이기 위해 설계되었다.

개요[편집 | 원본 편집]

Oracle ADF는 Java EE 표준과 일부 오픈 소스 기술을 기반으로 구축된 엔드투엔드 애플리케이션 프레임워크이다. 웹, 모바일, 데스크톱 등 다양한 인터페이스를 지원하며, 전체 애플리케이션의 모델, 뷰, 컨트롤러 계층을 아우르는 통합 구조를 제공한다.

ADF는 다음과 같은 주요 개념을 중심으로 동작한다:

  • 선언적 데이터 바인딩 (UI ↔ 모델)
  • 비즈니스 로직 및 유효성 검증의 재사용
  • 모듈화된 페이지 흐름 (Task Flows)
  • 리치 UI 구성 요소 (ADF Faces 등)
  • 보안 및 커스터마이징을 위한 메타데이터 기반 접근

주요 구성 요소[편집 | 원본 편집]

Oracle ADF는 다음 계층 또는 구성 요소들로 나뉜다.

비즈니스 서비스 계층[편집 | 원본 편집]

비즈니스 서비스 계층은 애플리케이션이 데이터를 액세스하고 조작하는 핵심 기능을 제공한다. ADF는 ADF Business Components (ADF BC)를 이용해 관계형 데이터베이스에 대한 CRUD, 트랜잭션 제어, 유효성 검증 등을 선언적으로 정의할 수 있게 한다.

ADF BC의 주요 구성 요소로는 다음이 있다:

  • Entity Object — 데이터베이스 테이블의 레코드 단위 객체
  • View Object — 쿼리 기반 또는 엔터티 기반의 뷰 추상화
  • Application Module — 여러 View Object를 묶고 트랜잭션 범위를 관리하는 단위
  • Association / ViewLink — 엔터티 간 관계 및 뷰 객체 간의 연결

모델 계층 (Model)[편집 | 원본 편집]

모델 계층은 비즈니스 서비스 계층과 UI 계층 사이의 추상화 계층이다. UI 개발자는 모델 계층을 통해 데이터를 조작하며, 내부적으로는 데이터 컨트롤(Data Controls)과 바인딩(Bindings)을 통해 서비스 계층과 연계된다. 이 방식은 UI와 비즈니스 로직 간의 결합도를 낮추고 유연성을 제공한다.

컨트롤러 계층[편집 | 원본 편집]

컨트롤러 계층에서는 사용자 요청 흐름과 네비게이션을 제어한다. ADF는 JSF 기반 네비게이션을 확장한 ADF Task Flow 개념을 제공한다. Task Flow는 모듈화된 흐름(유한 경계 범위, 재사용 가능)과 선언적 전환, 예외 처리, 트랜잭션 처리를 지원한다.

Task Flow는 크게 Bounded Task Flow와 Unbounded Task Flow로 나눌 수 있으며, Bounded Task Flow는 진입점(entry point)과 흐름 경계가 정의된 작은 흐름 단위이다.

뷰 계층 (View)[편집 | 원본 편집]

뷰 계층은 사용자 인터페이스를 담당한다. ADF는 여러 UI 기술을 지원하며, 대표적으로 ADF Faces 라는 JSF 기반 리치 UI 컴포넌트 라이브러리를 제공한다. ADF Faces는 AJAX, 부분 페이지 렌더링(partial page rendering), 다이얼로그, 팝업, 드래그 앤 드롭, 스킨(테마) 지원 등을 포함한다.

또한 ADF는 모바일 UI, 데스크톱 통합, 브라우저 및 디바이스 대응을 위한 기능을 포함할 수 있다.

개발 프로세스 개관[편집 | 원본 편집]

ADF 애플리케이션 개발은 일반적으로 다음 단계로 진행된다.

  1. 애플리케이션 워크스페이스 및 프로젝트 구조 생성
  2. 비즈니스 서비스 모델 설계 및 정의 (ADF BC 등)
  3. UI 뷰 생성 및 바인딩 설정
  4. Task Flow 구성 및 페이지 흐름 정의
  5. 보안, 인증/인가 설정
  6. 테스트, 디버깅
  7. 배포 및 운영

JDeveloper IDE는 ADF 개발을 위한 시각적 도구, 마법사, 드래그 앤 드롭 바인딩 기능 등을 제공한다.

장점 및 고려사항[편집 | 원본 편집]

장점[편집 | 원본 편집]

  • 개발 생산성 향상 — 선언적, 시각적 개발을 통해 수작업 코딩을 줄일 수 있다
  • 일관된 아키텍처 구조 — MVC 기반으로 모듈화, 계층 분리를 강제
  • 재사용성 및 유지보수성 — Task Flow, 컴포넌트, 비즈니스 객체의 재활용 가능
  • 보안 및 사용자 맞춤화 지원 — 메타데이터 기반 권한 제어, 커스터마이징 가능
  • Oracle 제품군 및 Java EE 환경과의 통합이 용이

고려사항 및 단점[편집 | 원본 편집]

  • 학습 곡선 — ADF의 구조와 메타데이터 바인딩 개념이 복잡할 수 있다
  • 성능 튜닝 필요성 — 자동화된 구성이나 리치 UI 사용 시 성능 저하가 발생할 수 있다
  • 벤더 종속성 — Oracle ADF 자체에 종속되는 코드와 구성이 많아 이식성이 낮을 수 있다
  • 라이센스 및 배포 제약 — 핵심 ADF 기능은 유료 라이센스가 필요할 수 있다 (ADF Essentials는 핵심 기능만 무료 제공)

버전 및 최근 동향[편집 | 원본 편집]

Oracle은 지속적으로 ADF를 발전시키고 있으며, ADF 12c 버전에서는 Maven 통합 강화, 스킨 에디터 개선, SVG 인라인 지원, 새로운 ADF Faces 컴포넌트 등이 도입되었다.

같이 보기[편집 | 원본 편집]

각주[편집 | 원본 편집]