맨위로가기

자카르타 서버 페이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

자카르타 서버 페이스(JSF)는 자바 커뮤니티 프로세스를 통해 개발된 웹 애플리케이션 프레임워크로, 사용자 인터페이스를 구축하기 위한 표준 기술이다. 2004년 JSF 1.0 버전이 처음 출시된 이후 여러 버전을 거치며 발전해왔으며, 2020년에는 패키지 이름이 Javax에서 Jakarta로 변경되었다. JSF는 컴포넌트 기반의 UI 디자인 모델을 따르며, 페이스릿이라는 템플릿 엔진을 사용하여 뷰를 구성한다. AJAX 지원, HTML5 지원 등 다양한 기능을 제공하며, 다른 웹 GUI 프레임워크들과 비교되기도 한다. 하지만 ThoughtWorks, DZone, TheServerSide 등에서 비판을 받기도 하였으며, 이에 대한 반박도 존재한다.

더 읽어볼만한 페이지

  • 자바 사양 요청 - 자바 플랫폼, 마이크로 에디션
    자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다.
  • 자바 사양 요청 - 자바 커뮤니티 프로세스
    자바 커뮤니티 프로세스는 자바 기술 명세의 개발 및 관리를 담당하는 조직으로, 자바 기술 표준화와 발전에 기여해왔으나 운영 방식에 대한 비판과 여러 논란에 직면해 있다.
  • 자바 플랫폼, 엔터프라이즈 에디션 - IBM 웹스피어
    IBM 웹스피어는 IBM에서 출시한 기업용 소프트웨어 제품군 브랜드로, 다양한 애플리케이션 인프라, 비즈니스 프로세스 통합, 정보 통합 및 개발 도구를 포함한다.
  • 자바 플랫폼, 엔터프라이즈 에디션 - 자카르타 서버 페이지
    자카르타 서버 페이지(JSP)는 웹 애플리케이션 개발에 사용되는 서버 측 스크립팅 기술로, 서블릿으로 변환되어 실행되고 HTML 형태로 결과를 반환하며, 지시어, 스크립틀릿, 표현식, 액션 등의 문법 요소, 표현 언어(EL), JSTL을 통해 동적인 웹 페이지를 구현하고 개발 편의성을 높였다.
  • 웹 프레임워크 - 드루팔
    드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다.
  • 웹 프레임워크 - 실버스트라이프 CMS
    실버스트라이프 CMS는 PHP로 제작된 오픈 소스 콘텐츠 관리 시스템으로, 웹사이트 및 웹 애플리케이션을 개발하고 관리하는 데 사용되며, MVC 패턴과 Sapphire ORM 프레임워크를 활용하여 사용자 친화적이고 확장 가능한 플랫폼을 제공한다.
자카르타 서버 페이스 - [IT 관련 정보]에 관한 문서
개요
이름자카르타 페이스
종류웹 애플리케이션 프레임워크
설명사용자 인터페이스 구축을 단순화하는 데 중점을 둔 MVC 웹 프레임워크
개발
개발자이클립스 재단
작성자썬 마이크로시스템즈
프로그래밍 언어자바
릴리스 정보
최신 안정화 버전2.3.2
최신 안정화 버전 출시일2019년 8월 20일
최신 미리보기 버전3.0.0 RC1
최신 미리보기 버전 출시일2020년 3월 7일
기타 정보
웹사이트자카르타 페이스 깃허브

2. 역사

JSF는 자바 커뮤니티 프로세스(JCP)를 통해 개발된 표준 기술이다. 2001년에 JavaServer Faces 기술에 대한 최초의 Java Specification Request(JSR)가 제안되었고,[4] 같은 해 6월, ''JavaWorld''는 에이미 파울러(Amy Fowler) 팀이 설계한 "JavaServer Faces API"(일명 "Moonwalk")를 "웹 기반 사용자 인터페이스를 만들기 위한 애플리케이션 프레임워크"라고 보도했다.[5]

2004년 3월, JSF 1.0이 처음 릴리스된 이후 지속적인 개선과 기능 추가를 거쳐 발전해왔다.

JSF는 컴포넌트 기반 접근 방식을 취하며, 사용자 인터페이스(UI) 컴포넌트의 상태는 클라이언트가 새로운 페이지를 요청할 때 저장되고, 요청에 대한 응답이 반환될 때 복원된다. 초기에는 자바서버 페이지(JSP)를 화면 표시 기술로 사용했지만, 2.0 이후에는 더 일반적인 HTML에 가까운 페이스릿이 채택되었다.

JSF는 UI 컴포넌트 표현, 상태 관리, 이벤트 처리, 값 변환, 페이지 네비게이션 정의, 국제화 및 접근성 지원 등을 위한 API 세트를 포함한다. 또한 JSP 페이지 내에서 JavaServer Faces 인터페이스를 표현하기 위한 두 개의 JSP 커스텀 태그 라이브러리, 서버 측 이벤트 모델, 관리형 빈(Managed Bean) 등을 제공한다.

2. 1. 버전의 역사

다음은 자카르타 서버 페이스(JSF) 버전의 역사이다.

자카르타 페이스 역사
JSF 버전발표자바 플랫폼주요 변경 사항
JSF 1.02004년 3월 11일JSR 127, 초기 사양 릴리스.
JSF 1.12004년 5월 27일JSR 127, 버그 수정 릴리스. 사양 변경 없음.
JSF 1.22006년 5월 11일자바 EE 5JSR 252, 코어 시스템 및 API 개선. Java EE 5에 포함.
JSF 2.02009년 7월 1일자바 EE 6JSR 314, 사용 편의성, 기능, 성능 향상. AJAX 지원. Java EE 6에 포함.
JSF 2.12010년 11월 22일JSF 2.0의 유지 관리 릴리스. 매우 사소한 수의 사양 변경.[9][10]
JSF 2.22013년 5월 21일HTML5 지원, 페이지 흐름, 상태 비저장 뷰 등 새로운 개념 도입.[8] Java EE 7에 포함.
JSF 2.32017년 3월 28일검색 표현식, 확장자 없는 URL, 전체 클래스에 대한 빈 유효성 검사, WebSocket을 사용한 푸시 통신, CDI와의 향상된 통합.[7] Java EE 8에 포함.
JSF 3.02020년 10월 28일패키지 이름이 Javax에서 Jakarta로 변경됨.
JSF 4.02022년 5월 15일일부 사용 중단된 사항 삭제(네이티브 관리형 빈, 네이티브 EL 참조), 기본적으로 확장된 보기가 없음, ClientWindowScoped 추가


2. 2. 발전 과정

페이스릿은 JSF 2.0에서 공식 뷰 기술로 채택되었다. 이로 인해 JSP와 존재했던 생명 주기 충돌이 제거되어 Java 개발자가 우회 방법을 사용해야 했던 문제가 해결되었다.[6]

새로운 JSF 개발은 @ManagedBean, @ManagedProperty@FacesComponent와 같은 자바 어노테이션을 광범위하게 활용하여, 프레임워크 확장을 제외한 대부분의 경우 faces-config.xml 파일이 필요하지 않게 되었다. 탐색 또한 단순화되어 faces-config.xml 탐색 케이스가 필요 없어졌다. 페이지 전환은 원하는 뷰 또는 페이스릿의 이름을 전달하는 것만으로 가능하다.

부분 상태 저장 및 DOM 업데이트는 내장된 표준 AJAX 지원의 일부로 추가되었다.

최신 JSF 릴리스는 이미지, CSS, 자바스크립트와 같은 리소스를 처리하기 위한 내장 지원을 갖추고 있다. 이를 통해 아티팩트를 컴포넌트 라이브러리에 포함하거나, JAR 파일로 분리하거나, 웹 애플리케이션 내의 일관된 위치에 배치할 수 있다. 리소스의 논리적 명명 및 버전 관리도 지원한다.

JSF 2.0에는 루비 온 레일스의 RAILS_ENV와 유사한 이벤트 지원 추가, 개발, 스테이징 및 프로덕션 모드 분리, 표준 컴포넌트 세트의 확장 등 여러 변경 사항이 포함되었다.

3. 구성 요소 및 작동 방식

JSF는 UI 디자인 모델의 컴포넌트 기반을 따르며, '''뷰 템플릿''' 또는 페이스릿 뷰라고 불리는 XML 파일을 사용한다.[1] `FacesServlet`은 요청을 처리하고, 적절한 뷰 템플릿을 로드하며, 컴포넌트 트리를 구축하고, 이벤트를 처리하고, 응답(일반적으로 HTML 언어)을 클라이언트에 렌더링한다.[1] UI 컴포넌트의 상태와 관심 범위에 있는 다른 객체는 각 요청이 끝날 때 '''상태 저장'''(일시적 ''true'')이라는 프로세스에서 저장되며, 해당 뷰가 다음에 생성될 때 복원된다.[1] 객체와 상태는 클라이언트 측 또는 서버 측에서 저장할 수 있다.[1]

JSF에는 다음 요소가 포함된다.[3]


  • UI 컴포넌트의 표현, 상태 관리, 이벤트 핸들링, 값 변환, 페이지 네비게이션 정의, 국제화 및 접근성 지원 등을 위한 API 세트[3]
  • UI 컴포넌트의 기본 세트[3]
  • JSP 페이지 내에서 JavaServer Faces 인터페이스를 표현하기 위한 두 개의 JSP 커스텀 태그 라이브러리[3]
  • 서버 측 이벤트 모델[3]
  • 상태 관리[3]
  • 관리형 빈(Managed Bean)[3]
  • JSP 2.0과 JSF 1.2를 위한 식 언어 (EL 3.0 이후는 독립적인 규격이 되었다.)[3]

4. 주요 특징

JSF는 다음과 같은 주요 특징을 가진다.


  • UI 컴포넌트 표현, 상태 관리, 이벤트 처리, 값 변환, 페이지 네비게이션 정의, 국제화 및 접근성 지원을 위한 API 제공.
  • UI 컴포넌트의 기본 세트.
  • JSP 페이지 내에서 JavaServer Faces 인터페이스를 표현하기 위한 두 개의 JSP 커스텀 태그 라이브러리.
  • 서버 측 이벤트 모델.
  • 상태 관리.
  • 관리형 빈(Managed Bean).
  • JSP 2.0과 JSF 1.2를 위한 식 언어 (EL 3.0 이후는 독립적인 규격).[1]

5. 페이스릿 (Facelets)

페이스릿(Facelets)은 JSF를 위해 개발된 웹 템플릿 엔진이다. JSF 2.0부터 JSP를 대체하여 JSF의 기본 화면 표시 기술로 채택되었다. 페이스릿의 첫 번째 버전은 2005년에 등장했으며[17], 당시에는 JSF 1.1, 1.2를 대상으로 했다. JSF와 같은 컴포넌트 기반의 웹 애플리케이션 프레임워크인 Apache Tapestry와 유사하며, 페이스릿 자체도 Tapestry의 아이디어를 일부 도입했다[18]

페이스릿의 템플릿은 주로 XHTML로 작성된다[18]。템플릿을 기술하는 방법은 두 가지가 있다. 페이스릿 고유의 XML 태그를 직접 삽입하는 방법과 일반적인 XHTML 태그에 `jsfc` 속성을 사용하여 간접적으로 삽입하는 방법이다. 다음은 고유의 XML 태그를 사용하는 경우의 예이다.

```xml


Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



















```

`jsfc` 속성을 사용한 경우는 다음과 같다.

```html


Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



















```

`jsfc` 속성을 사용한 템플릿의 경우, 다른 애플리케이션에서는 일반 XHTML로 취급할 수 있으므로, 브라우저에서 표시를 확인하거나 WYSIWYG 디자인 툴을 사용하여 편집할 수 있다.

6. AJAX 지원

JSF는 AJAX를 사용하여 리치 인터넷 애플리케이션 개발을 지원한다. 초기에는 Mojarra (JSF의 참조 구현)와 Apache MyFaces의 사용자 인터페이스 구성 요소가 HTML만을 위해 개발되어, AJAX를 사용하려면 자바스크립트를 추가해야 했다.[11] 그러나 JSF 2.0부터는 AJAX 요청 수명 주기를 표준화하고, AJAX 이벤트에 대한 간단한 개발 인터페이스를 제공하여 AJAX 지원을 강화했다. 클라이언트에서 트리거된 이벤트는 유효성 검사, 변환 및 메서드 호출을 거친 후 XML DOM 업데이트를 통해 브라우저에 결과를 반환한다. 또한, JSF 2는 브라우저에서 자바스크립트가 비활성화된 경우 점진적 기능 저하를 지원한다.

6. 1. AJAX 지원 컴포넌트 및 프레임워크


  • 아파치 마이페이스(Apache MyFaces) - 아파치 재단(Apache Foundation)의 JSF 구현으로, AJAX 컴포넌트를 포함한다.[11]
  • 프라임페이스(PrimeFaces) - JSF 컴포넌트를 갖춘 오픈 소스 AJAX 프레임워크이다.
  • 아이스페이스(ICEfaces) - 오픈 소스, 자바 JSF 확장 프레임워크 및 리치 인터넷 애플리케이션(rich) 컴포넌트로, 자바스크립트 없이 AJAX를 구현한다.
  • JBoss ''리치페이스(RichFaces)'' (''Ajax4jsf(AJAX4jsf)''에서 파생 및 대체됨) - 레이아웃, 파일 업로드, 양식, 입력 등 다양한 기능을 위한 AJAX 지원 JSF 컴포넌트를 제공하였으나, 2016년 6월에 지원이 종료되었다.
  • 옴니페이스(OmniFaces) - 오픈 소스 JSF 유틸리티 라이브러리이다.
  • 오라클(Oracle Corporation) ''ADF Faces Rich Client'' - 오라클 애플리케이션 개발 프레임워크(Oracle Application Development Framework)의 일부이다.

7. 다른 웹 GUI 프레임워크와의 비교

자카르타 서버 페이스(JSF)는 다른 웹 GUI 프레임워크와 비교했을 때 몇 가지 유사점과 차이점을 보인다.
아파치 스트럿츠아파치 소프트웨어 재단에서 제공하는 MVC 프레임워크이다. 스트럿츠는 페이지 단위의 MVC 프레임워크를 제공하지만, JSF와 같은 컴포넌트 모델은 없다. 스트럿츠 애플리케이션은 뷰를 표시하기 위해 주로 JSP를 사용한다.
WebObjects는 원래 넥스트 소프트웨어에서 개발되었고, 이후 애플 컴퓨터가 인수하였다. WebObjects는 JSF와 유사한 컴포넌트 및 이벤트 모델, 라이프 사이클을 가지고 있다. 컴포넌트는 JSP 파일에 정의되지 않고, `html/xml/wml` 템플릿 파일, 필드와 액션을 Java 코드에 매핑하는 파일, `.java` 클래스 파일을 포함하는 `.woc` 디렉터리에 정의된다. Wotonomy는 WebObjects 프레임워크의 오픈 소스 재구현이다.
아파치 태피스트리자바로 웹 애플리케이션을 개발하기 위한 오픈 소스 프레임워크이다. 태피스트리는 자바 서블릿 API를 기반으로 하며, JSP를 표시 기술로 사용하지 않고, 다른 템플릿 엔진을 사용한다.
마이크로소프트 ASP.NET은 JSF와 유사하게 웹 애플리케이션 개발에서 컴포넌트 기반 접근 방식을 취한다. JSF는 렌더링과 컴포넌트의 인터페이스를 분리하여 출력 부분을 커스터마이징할 수 있지만, ASP.NET v1에서는 컴포넌트의 출력 코드가 UI 컴포넌트에 결합되어 있었다. ASP.NET v2는 제어 어댑터 프레임워크를 도입하여 표준 출력 엔진을 서드파티 코드로 대체할 수 있게 되었다.

7. 1. Apache Struts

아파치 소프트웨어 재단에서 제공하는 MVC 프레임워크이다. 스트럿츠는 페이지 단위의 MVC 프레임워크를 제공하며, JSF 스타일의 컴포넌트 모델을 갖추고 있지 않다.

페이지는 입력을 액션에 연결하는 디스패치 서블릿(controller)을 갖춘 모델에 매핑된다. 스트럿츠 애플리케이션은 뷰를 표시하기 위해 주로 JSP를 사용하므로, 사용 가능한 태그 라이브러리의 사용법에 영향을 받기 쉽다.

7. 2. WebObjects / Wotonomy

WebObjects는 가장 초기의 웹 애플리케이션 프레임워크 중 하나로, 원래 넥스트 소프트웨어에서 개발되었다. 이후 애플 컴퓨터가 넥스트를 인수하면서 획득되었다. WebObjects는 JSF와 유사한 컴포넌트 및 이벤트 모델, 라이프 사이클을 갖추고 있다. J2EE 없이도 배포할 수 있으며(원래의 구성), 서블릿 컨테이너 내에 배치할 수도 있다. 이 경우 디스패처 객체가 J2EE 웹 애플리케이션의 엔트리 포인트로 작동한다.

JSF(의 기본 동작)와 달리 컴포넌트는 JSP 파일에 정의되지 않고, `html/xml/wml` 템플릿 파일, 필드와 액션을 Java 코드에 매핑하는 파일, `.java` 클래스 파일 중 하나 또는 전부를 포함하는 `.woc` 디렉터리에 정의된다. 템플릿 파일은 표시 및 레이아웃 부분을 제공하며, 다른 WebObjects 컴포넌트를 포함할 수도 있다. 이는 JSF가 기본적으로 사용하는 RenderKit에 위임하는 접근 방식과는 다르며, JSF의 위임 모델과 직접 렌더링 모델의 중간점에 있다.

WebObjects는 가장 초기의 객체 관계 매핑 프레임워크인 Enterprise Objects Framework를 갖춘 계층화된 아키텍처를 포함하고 있다.

Wotonomy는 WebObjects 프레임워크의 오픈 소스 재구현으로, 클린룸에서(독점 코드를 사용하지 않도록 주의하여) 개발되었으며, LGPL로 라이선스된다. Wotonomy는 WebObjects의 모든 부분을 구현하려고 시도했으며, 완전한 MVC 웹 GUI 스택을 구현했다. WebObjects의 클론이며, 미완성 부분을 제외하면 JSF와의 차이점은 WebObject와 완전히 동일하다.

7. 3. Apache Tapestry

태피스트리는 동적이고, 견고하며, 확장 가능한 웹 애플리케이션을 자바로 개발하기 위한 오픈 소스 프레임워크이다. 태피스트리는 표준 자바 서블릿 API를 기반으로 구축되었으며, 임의의 서블릿 컨테이너나 애플리케이션 서버에서 작동한다. JSF와는 달리, 태피스트리는 JSP를 표시 기술로 사용하지 않는다. 대신, 쉽게 HTML을 미리 보고 편집할 수 있는 (JSF 기반의 페이스렛과 유사한) 다른 템플릿 엔진을 선택했다.

7. 4. Microsoft ASP.NET

JSF는 웹 애플리케이션 개발에서 마이크로소프트의 ASP.NET과 유사한 컴포넌트 기반 접근 방식을 취하고 있다. JSF에서는 렌더링과 컴포넌트의 인터페이스를 분리하여 출력 부분을 커스터마이징할 수 있지만, ASP.NET v1에서는 컴포넌트의 출력 코드가 UI 컴포넌트에 결합되어 있었다. ASP.NET v2는 제어 어댑터 프레임워크를 도입하여 표준 출력 엔진을 서드파티 코드로 대체할 수 있게 되었다.

컴포넌트에서 생성되어, 컴포넌트와 별도의 파일("code behind")에 저장되는 이벤트를 통해 비즈니스 코드가 UI 컴포넌트에 연결된다. 따라서, 전형적인 ASP.NET 페이지는 시각적인 페이지 레이아웃(디자인)을 기술한 HTML 파일과, 페이지의 로직(코드)을 기술한 파일로 구성된다. 마이크로소프트의 개발 도구를 사용하면 두 파일을 하나의 요소로 취급할 수 있다.

도서 ''Core JSF''의 저자에 따르면, JSF는 Visual Studio 2005와 유사한 래피드 애플리케이션 개발(RAD) 영역에서 Java가 ASP.NET/Visual Studio와 경쟁할 수 있는 수단을 제공하며, 개발 비용과 개발 시작 시의 장벽을 낮추고 있다.

8. 비판

ThoughtWorks는 2014년 1월 ''기술 레이더(Technology Radar)''에서 JSF가 HTML, CSS, HTTP를 추상화하려 시도하는 것이 결함이 있으며, 상태가 없는 프로토콜인 HTTP 위에 상태유지를 만들려고 시도하여 공유 서버 측 상태와 관련된 문제를 야기한다고 비판했다.[12]

2014년 11월 DZone 웹사이트에 게재된 "JSF를 피해야 하는 이유"라는 기사에서는 JSF의 관심사 분리 원칙 위반과 서버 측 라이프 사이클 변경 등을 비판했다.[14]

2016년 2월, 엔터프라이즈 자바 커뮤니티 웹사이트 ''TheServerSide''는 JSF의 유연성 부족, 가파른 학습 곡선, AJAX 지원 미흡 등을 이유로 JSF 사용을 권장하지 않는다는 기사를 게재했다.[15]

8. 1. 비판에 대한 반박

2014년 2월, 프라임페이스 리드인 차타이 치비지(Çağatay Çivici)는 "JSF는 더 이상 당신이 들었던 것이 아니다"라는 제목의 게시물에서 ThoughtWorks의 비판에 응답했다.[13] 치비지는 JSF가 수년에 걸쳐 개선되면서 자체 JavaScript, HTMLCSS를 작성할 수 있는 옵션을 제공하며 현대 웹 개발을 수용하는 많은 기능을 제공한다고 주장한다. 또한 상태와 관련하여 다음과 같이 적었다.[13]

JSF는 본질적으로 상태 유지 프레임워크이며 상태는 웹 애플리케이션을 개발하기 쉽게 만든다. JSF 2.0+에서 도입된 향상된 상태 관리 기술(예: 상태 비저장 모드, 부분 상태 저장)을 통해 JSF는 확장될 수 있다.

참조

[1] 웹사이트 Jakarta Faces 4.0 https://jakarta.ee/s[...]
[2] 웹사이트 JSF 2.0 Tutorial http://www.mkyong.co[...] mkyong 2010-12-12
[3] 웹사이트 NoVDL: Write your JSF views in pure Java https://rogerkeays.c[...]
[4] 웹사이트 JSR 127: JavaServer Faces https://www.jcp.org/[...] Oracle Corporation 2014-08-05
[5] 뉴스 Java Web services: What's not to like? https://www.infoworl[...] 2001-06-06
[6] 웹사이트 Improving JSF by dumping JSP http://onjava.com/pu[...] O'Reilly 2011-08-18
[7] 웹사이트 What's new in JSF 2.3? https://arjan-tijms.[...] 2020-07-27
[8] 웹사이트 JSF 2.2 (JSR-344) is final |techscouting through the java news https://blog.oio.de/[...]
[9] 웹사이트 JSR 314 JavaServer Faces 2.1 JSF 2.1 |techscouting through the java news https://blog.oio.de/[...]
[10] 웹사이트 Was ist neu in JSF 2.1 http://it-republik.d[...] it-republik.de 2010-11-29
[11] 웹사이트 Project Mojarra - the JSF RI gets a code name https://blogs.oracle[...] Sun Microsystems 2007-12-05
[12] 웹사이트 Technology Radar http://thoughtworks.[...] ThoughtWorks 2014-01
[13] 웹사이트 JSF is not what you've been told anymore https://www.primefac[...] 2020-11-24
[14] 웹사이트 Why You Should Avoid JSF https://dzone.com/ar[...] DZone 2014-11
[15] 웹사이트 Five drawbacks to choosing JSF as your web application framework https://www.theserve[...] 2020-12-22
[16] 웹사이트 Java EE 7でさらに使いやすく、便利になったJSF 2.2、CDI 1.1、EL 3.0の主な強化ポイント http://builder.japan[...] ZDNet 2013-09-30
[17] 웹사이트 https://web.archive.[...]
[18] 웹사이트 FaceletsはぴったりとJSFにフィットします http://www.ibm.com/d[...] IBM 2006-02-21



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com