Web Profile 8개
1. Servlet - 서버측 프로그램 혹은 그 사양을 말하며, 흔히 서블릿이라 불린다. 서블릿은 웹서버의 성능을 향상시키기 위해 사용되는 자바 클래스의 일종이다.
2. JSP
Java를 이용한 서버 사이드 템플릿 엔진이다. jsp는 자바를 웹서버에서 쉽게 쓰기 윈한 기술이며 언어가 아니다. Java Server Pages의 약자. java의 점유율을 대폭 상승시킨 1등 공신이다. JSP는 주로 대규모 기업용 시스템 구축에 사용된다. J2EE는 JSP의 실행 뿐만 아니라 DB커션풀, 메시징 시스템, 로드밸런싱 등 화려한 기능들로 무장하고 있다. J2EE 웹서버계의 최고봉은 BEA의 WebLogic이었지만 오라클에 인수되었고, 한국에서는 공공기관 등에 자주 쓰이는 티맥스소프트의 JEUS도 J2EE어플리케이션 서버다. (JSP도 결국 서블릿이 된다.)
요즘 트레드인 API 주도형 사이트 구축과 SPA는 JSP가 필요없다. 자바로 json 출력하기만 되기 때문이다. 대기업이나 금융권, 관공서 등 규모가 크고 안정적인 서비스가 중요한 곳에서는 여전히 수요가 있지만, 이러한 곳이 아니라면 서비스 내용 대비 쓸데없이 무겁고 느린 JSP는 점점 메리트가 떨어져가고 있다. 결국 스프링프레임워크 5버전부터는 공식지원을 중단했다.
3. JSF
Java Server Faces는 서블릿, JSP, MVC 다음으로 나온 4세대 모델이다. 이 모델에서는 특히 View부분의 태그라이브러리가 강화 되어 Ajax 기반의 Rich UI Component를 사용할 수 있게 되었다. JSF는 MVC모
4. CDI (Context and Dependency Injection)
5. EJB( Enterprise Java Bean)
기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 어플리케이션을 EJB라고 한다.
https://woongsin94.tistory.com/357
6. JTA (Java Transaction API) 은 플랫폼마다 상이한 트랙재션 매니저들과 어플리케이션들이 상호작용할 수 있는 인터페이스를 정의하고 있다. Java에서 제공되는 대부분의 API와 마찬가지로, JTA는 실제 구현은 다르지만 어플리케이션이 공통적으로 사용할 수 있는 하나의 인터페이스를 제공한다.
7. JPA( Java Persistence API)
자바 진영에서 ORM기술[애플리케이션 Class와 Relational Database의 테이블을 매핑, 어플리케이션의 객체를 RDB테이블에 자동으로 영속화] 표준으로 사용되는 인터페이스의 모음이다. 그말은 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다.
8. Bean Validation (유효검증)
Java EE내 Web Profile 제외 16개
1. 어노테이션을 사용하여 JAX-WS 웹서비스 개발
https://www.ibm.com/docs/ko/was/9.0.5?topic=up-developing-jax-ws-web-services-annotations
JAX-WS는 두개의 서로 다른 서비스 엔드포인트 구현 유형, 표준 웹서비스 엔드포인트 인터페이스 및 새 프로바이더 인터페이스를 지원하여 서비스가 XML메시지 레벨에서 작동할 수 있게 한다. 서비스 엔드포인트 구현 또는 클라이언트에서 어노테이션을 사용하여 서비스 엔드포인트를 웹 서비스로 정의할 수 있다.
JAX-WS 엔드포인트는 Java API for XML-based RPC (JAX-RPC) 스펙의 엔드포인트 구현과 같다
2. JAX-RS
JAX-RS(Java API for RESTful Web Services)는 자바 플랫폼에서 경량화된 REST (Representational State Transfer
:자원의 표현에 의한 상태 전달)방식의 웹 애플리케이션 구현을 지원하는 자바 API 이다.
https://sarc.io/index.php/development/1159-jax-rs
3. JASPIC(Java Authentication SPI for Containers)
4. JNDI
JNDI(Java Naming and Directory Interface)는 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup) 하기 위한 자바 API다.
연결하고 싶은 데이터베이스의 DB Pool을 미리 Naming 시켜주는 방법 중 하나이다.
우리가 저장해놓은 WAS 의 데이터베이스 정보에 JNDI를 설정해 놓으면 웹 애플리케이션은 JNDI만 호출하면 간단해진다.
https://go-coding.tistory.com/76
5. JAX-RPC(Java API for XML-based RPC)
JAX-RPC(Java API for XML-based RPC) 스펙을 사용하면 SOAP 기반의 상호 운용 및 이식 가능 웹 서비스와 웹 서비스 클라이언트 개발이 가능합니다
6. JAXB(Java Architecture for XML Binding)
자바 클래스를 XML로 표현하는 자바API다
자바 객체를 XML로 직렬화하는 것이고 반대로 XML에서 자바 객체로 역직렬화하는 것이다. 즉, JAXB는 메모리의 데이터를 XML 형식으로 변환하여 저장할 수 있고, 이 과정을 위해 프로그램의 각 클래스에서 XML을 읽고 저장하는 일을 구현해야 한다.
7. JACC(Java Authorization Contract for Containers)
EJB와 서블릿의 접근 권한을 정의하고 처리하는 표준적인 방법을 제시하는 스펙이다. 따라서, JACC Provider를 작성해 두면, JACC 호환 Java EE 애플리케이션 서버에서 사용할 수 있다.
8. RMI
- 다른 실행 환경에 있는 객체의 메소드를 로컬에서 생성한 객체의 메소드와 다름 없이 호출할 수 있도록 하는 "자바의 분산 객체 기술"이다. - RMI를 사용하면 객체가 다른 JVM에서 실행중인 객체의 메서드를 호출할 수 있다
9. JAXR(Java API for XML Registries)
다양한 메타 레지스트리들을 다룰 수 있는 자바 플랫폼 애플리케이션들의 표준화된 자바 API이다.
10. JMS
JMS 클라이언트 프로그래밍 모델 외에도 J2EE 플랫폼 응용 프로그램 컨텍스트에서 사용하는, 보다 특수화된 JMS 버전이 있습니다. 이 특수화된 클라이언트를 Message-Driven Bean이라고 부르며, EJB(Enterprise JavaBeans) 구성 요소 중 하나로서EJB 2.0 이상 사양(http://java.sun.com/products/ejb/docs.html)에 설명되어 있습니다.
JMS MDB(message driven bean)는 JMS MessageListener 인터페이스를 구현하는 EJB입니다. onMessage 메소드(MDB 개발자가 작성)는 MDB 컨테이너가 메시지를 수신할 때 호출됩니다.
11. JCA : 자바 암호 구조(Java Cryptography Architecture)
12. DEPLOY
https://dataonair.or.kr/db-tech-reference/d-lounge/technical-data/?mod=document&uid=235636
13. SAAJ
SAAJ(SOAP with Attachments API for Java)는 사용자가 직접 SOAP 메세징 애플리케이션을 작성할 수 있는 API로써, 즉 JAX-RPC API를 대체하는 것이다. SAAJ를 사용하여 메소드를 호출함으로써 사용자는 SOAP 기반 XML 메세지를 읽고 작성할 수 있으며, 인터넷을 통해 이런 타입의 메세지들을 주고받을 수도 있다.
14. JAAS
Java™ 인증 및 권한 서비스 (JAAS)
JAAS 는 CORBA (Common Object Request Broker Architecture) 프로그램 로그인 API를 대체하는 인증을 위한 WebSphere Application Server 전략적 응용프로그램 프로그래밍 인터페이스 (API) 입니다.
15. JavaMail [ JavaMail API]
https://m.blog.naver.com/kwpark61/2414384
https://javaee.github.io/javamail/
16. MGMT
자바 EE를 살펴보았다. Web Profile 8개와 나머지 16개 총 24개다.
쭈욱 관련 조사해보다 보면 문서가 IBM 에서 상세히 설명되어 나온다.
[1] IBM은 이클립스 초기 개발한 것으로 알고 있는데 그래서일까?
[2] API를 분류별로 쪼개 놨는데 스프링이 없으면 다 수동으로 해야했다는 말이니 과거 얼마나 고생했는지 짐작이 간다. 뭐.. 저기 나오는 JSP도 사양 산업이고.. XML도 사양산업이라고 하는데 자바11에서 왜 Java EE가 빠졌는지 알것 같다.
자바 11부터 SPA,스프링이 대세를 넘어 압도한 것이다. (2018년 9월 25일)
다음에는 그렇다면 스프링의 변천사 버전에 관해 살펴보겠다.
'4차산업혁명의 일꾼 > Java&Spring웹개발과 서버 컴퓨터' 카테고리의 다른 글
스프링과 스프링부트의 차이 (0) | 2023.03.14 |
---|---|
스프링 버전 변경 변천사 3.0에서 6.0까지 (0) | 2023.03.14 |
자바의 버전 변천사를 통한 자바 이해 (0) | 2023.03.14 |
자바개발자의 툴 이클립스에서 인텔리제이 비교 (0) | 2023.03.14 |
스프링의 정석 : 남궁성과 끝까지 간다 1 : 스프링MVC , SpringMVC (0) | 2023.03.13 |