4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터

스프링이전의 Java EE에 대해 알아보자

르무엘 2023. 3. 14. 20:19

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)

https://dymn.tistory.com/9

 

CDI를 이용한 Java 개발

Spring Framework에서 다양한 Annotation을 지원해주기 때문에 프로그램 개발 시 필요한 Bean을 찾아서 사용하면 되는 강력한 기능을 제공하고 있다. 그러나 Spring Framework를 사용하지 않는 일반 POJO 프로

dymn.tistory.com

5. EJB( Enterprise Java Bean)

기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 어플리케이션을 EJB라고 한다.

https://woongsin94.tistory.com/357

 

EJB(Enterprise Java Bean)

개념 EJB(Enterprise Java Bean), 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 어플리케이션을 EJB라고 한다. Enterprise JavaBeans(EJB)는 독립한

woongsin94.tistory.com

 

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 웹 서비스 개발

JAX-WS (Java™ API for XML-Based Web Services) 는 두 개의 서로 다른 서비스 엔드포인트 구현 유형, 표준 웹 서비스 엔드포인트 인터페이스 및 새 프로바이더 인터페이스를 지원하여 서비스가 XML 메시지

www.ibm.com

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

 

JAX-RS 란?

Tech Note 정보 애리얼 님이 작성하신 글입니다. 카테고리: [ Development ] 게시됨: 23 March 2018 작성됨: 23 March 2018 최종 변경: 23 March 2018 조회수: 7530 1. 개요    JAX-RS(Java API for RESTful Web Services)는 자바 플

sarc.io

 

 

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

 

[JAVA] JNDI란?

JNDI란? 회사에서 개발환경을 세팅하다가 JNDI를 설정할 일이 있었다. 처음에는 JNDI가 뭐지? 생각하고 있다가 이것 저것 알아보니 매우 중요한 기술인것을 알고 내 나름대로 정리해본다. JNDI(Java Nam

go-coding.tistory.com

 

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 

 

Deployment: 개발 작업의 완결

Deployment: 개발 작업의 완결 Lonneke Dikmans│Oracle deployment profile과 Ant를 이용하여 다수의 애플리케이션 서버에 J2EE 애플리케이션을 deploy하는 방법을 설명합니다. 이제 <J2EE 애플리케이션 개발 마스

dataonair.or.kr

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) 입니다.

 

https://www.ibm.com/docs/ko/was/8.5.5?topic=SSEQTP_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/rsec_logmod.htm 

 

Java 인증 및 권한 부여 서비스의 로그인 구성

Java™ 인증 및 권한 서비스 (JAAS) 는 WebSphere® Application Server의 기능입니다. JAAS 는 CORBA (Common Object Request Broker Architecture) 프로그램 로그인 API를 대체하는 인증을 위한 WebSphere Application Server 전략적

www.ibm.com

15. JavaMail [ JavaMail API]

https://m.blog.naver.com/kwpark61/2414384

 

[J2EE] JAVAMAIL API를 사용해서 HTML 이메일 보내기

2004년 4월 28일     Enterprise Java Technologies Tech Tips에 오신 여러분을 ...

blog.naver.com

 

https://javaee.github.io/javamail/

 

JavaMail

The JavaMail API provides a platform-independent and protocol-independent framework to build mail and messaging applications. The JavaMail API is available as an optional package for use with the Java SE platform and is also included in the Java EE platfor

javaee.github.io

 

 

16. MGMT

https://www.ibm.com/docs/ko/was-liberty/base?topic=SSEQTP_liberty/com.ibm.websphere.liberty.autogen.nd.doc/ae/rwlp_feature_j2eeManagement-1.1.htm 

 

J2EE Management 1.1

이 기능에 의존하는 기능을 개발 중이면 기능 Manifest 파일의 Subsystem-Content 헤더에 다음 항목을 포함하십시오. com.ibm.websphere.appserver.j2eeManagement-1.1; type="osgi.subsystem.feature"

www.ibm.com

 

 

 자바 EE를 살펴보았다. Web Profile 8개와 나머지 16개 총 24개다.

 쭈욱 관련 조사해보다 보면 문서가 IBM 에서 상세히 설명되어 나온다.

 

[1] IBM은 이클립스 초기 개발한 것으로 알고 있는데 그래서일까?

[2] API를 분류별로 쪼개 놨는데 스프링이 없으면 다 수동으로 해야했다는 말이니 과거 얼마나 고생했는지 짐작이 간다. 뭐.. 저기 나오는 JSP도 사양 산업이고..  XML도 사양산업이라고 하는데 자바11에서 왜 Java EE가 빠졌는지 알것 같다. 

 

자바 11부터 SPA,스프링이 대세를 넘어 압도한 것이다. (2018년 9월 25일)

다음에는 그렇다면 스프링의 변천사 버전에 관해 살펴보겠다.

 

LIST