만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/backend&devOps

[Spring] J2EE란?, EJB란?, Spring framework 의 탄생 배경

D36choi 2021. 5. 22. 16:45
728x90

 

J2EE (자바 to 플랫폼 엔터프라이즈 에디션)

  • client 단에 J2EE 는 순수 HTML 지원. HTML, 다른 포맷 data 를 만들어 제공하기 위해서는 JSP, servlet code 가 필요
  • EJB 는 플랫폼의 로직이 저장되는 별도 레이어를 제공. EJB 서버는 스레딩, 동시성제어, 보안, 메모리 관리 등을 지원하는 함수들 제공
  • JDBC(자바 데이터베이스 연결성) 을 제공. 자바 데이터베이스를 위한 표준 인터페이스다.
  • GUI (그래픽 사용자 인터페이스) 를 요구하는 일 없이 개발자들에게 일관성을 향상시켜주는 자바 서블릿 API 제공

스프링이랑 J2EE는 다른거야?

스프링 프레임워크 또한 J2EE application 이다.

스프링은 J2EE를 대체할 수 없다. 다만 스프링은 J2EE를 만족한다.


우리가 작성한 코드는 스프링 컨테이너에게 뭘해야할지를 알린다.

그러면 스프링은 J2EE 클래스들에게 이야기를 전달한다.

말하자면, J2EE 없이는 스프링 프레임워크 또한 없다.

 

EJB

EJB 는 엔터프라이즈 자바빈의 약어. Sun 사가 만들어낸, 확장성 있고 안정성있는 분산형 어플리케이션을 개발하기 위해 만든 명세다.

Weblogic 등으로 대표되는 어플리케이션 서버가 있어야만 EJB 어플리케이션을 돌릴 수 있다.

  • 생명주기 관리
  • 보안
  • 트랜잭션 관리
  • 오브젝트 풀링

등 기능을 지원한다. Server-side component 이다.

 

스프링의 탄생 배경

스프링 이전엔 EJB가 자바를 사용한 기업 소프트웨어 개발 세계를 지배했었다.

그러나 현업개발자들이 기업형 애플리케이션을 EJB 로 개발하는건 어려웠다. 너무 다양한 작업을 수행하기를 개발자에게 요구했다. 예를 들어, Home, Remote 인터페이스를 변도로 만들어야 했고, EJB 에는 복잡함을 증가시키는 lifecycle callback 메서드들이 도입되어있었다. 그래서 개발자들은 더 쉽게 엔터프라이즈 애플리케이션을 개발할 방법을 찾아나섰다.

이 시기를 개발자들은 자바의 겨울에 비유했고, 스프링이 등장함으로써 그 겨울이(EJB를 사용하던 시기) 끝나고 봄이 찾아오게 될 것이라는 의미로 이 J2EE framework를 스프링이라 이름지었다.

 

무슨 영웅의 탄생 서사 같다.

 

정리하자면

스프링의 의미는 자바 언어 생태계의 긴 겨울을 끝내고 봄을 맞이한다는 것

EJB 를 대체하는 새로운 자바 기반 프레임워크

스프링의 진짜 존재 의의는

좋은 객체 지향 애플리케이션 개발을 위한 도구이다.

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 개발자가 되어보세요! 📣 확인해주

www.inflearn.com

 

https://www.quora.com/What-is-the-difference-between-J2EE-and-Spring

 

What is the difference between J2EE and Spring?

Answer (1 of 3): The difference between advanced java and normal java, whether that is j2se or j2ee, is that the 'normal' java, or more commonly called, core java is: Core java is the core of java, this includes: - making classes and interfaces, - program

www.quora.com

https://www.javatpoint.com/what-is-ejb

 

What is EJB - javatpoint

what is EJB in java : EJB Tutorial for beginners and professionals. When we use EJB Enterprise Java Bean?, Types of EJB, 3 types of enterprise bean in java, Session Bean, Message Driven Bean, Entity Bean, difference between RMI and EJB, EJB and Webservice,

www.javatpoint.com