EJB에 관해
Java EE(Java Platform Enterprise Edition)은 간편하고 견고하며 확장가능 안전한 서버측 자바 애플리케이션을 위한 산업 표준. Servlet,JSP등 기능 제공
이외
- JMS(Java Message Service) 비동기 메세지 처리
- JDBC(Java Database Connectivity) 데어터 베이스 처리용 API
- JTA(Java Transaction API) 분산 트랜젝션 지원
- JNDI(Java Naming and Directory Interface) 디렉토리 서비스
- Java Mail API 메일지원
등 있으며 이중 EJB는 분산 애플리케이션을 지원하는 컴포넌트 객체다.
(Servlet이 TOMCAT같은 Servlet Container에 올려서 서비스 하듯 EJB는 JBoss와 같은 EJB Container에 올려 서비스한다)
JPA란
Spring의 역사
- 코드 존슨의 J2EE책 출간
- EJB없이도 고품질 확장 가능 애플리케이션 개발할 수 있음을 증명
- BeanFactory, ApplicationContext, POJO, 제어의 역전,의존관계 등 있음
- 책 출간 이후 유겐휠러, 얀카르포와 오픈소스 프로젝트 제작
- 스프링 핵심 코드의 대부분이 유겐휠러가 개발
- EJB라는 겨울을 넘어 새로운 시작이라는 뜻으로 Spring이라 작명
Spring이란
스프링 데이터: CRUD편리하게 사용할 수 있게 도와주는 것
스프링 세션: 세션 기능
스피링 시큐리티: 보안
스프링 Rest Docs: API와 문서를 편하게 엮어서 API를 편하게 해줌
스프링 배치: 예를 들어 테스트를 할 때 천만건의 데이터를 몇건 씩 나누어 처리하고 저장하는 걸 도와주는 기술
스프링 클라우드: 클라우드
Spring FrameWork
- 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타
- 웹기술: 스프링MVC, 스프링 WebFlux
- 데이터 접근 기술: 트랜잭션, JDBC, ORM지원, XML지원
- 기술 통합: 캐시, 이메일, 원격접근, 스케줄링
- 테스트: 스프링 기반 테스트 지원
- 언어: 코틀린, 그루비
Spring Boot
- 스프링을 편하게 사용할 수 있도록 지원, 최근에는 기본으로 사용
- 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
- Tomcat같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨
(예전에는 스프링 프로젝트 빌드된걸 Tomcat서버에 넣고 띄우고 복잡 부트는 빌드하고 띄우는거까지 자체적으로 됨)
- 손쉬운 빌드 구성을 위한 starter 종속성 제공
- 스프링과 3rd parth(외부) 라이브러리 자동 구성
(스프링프레임워크 버전에 따라 JSON이나 외부 라이브러리 잘맞고 안맞는게 따로 있었음 부트는 외부라이브러리 버전에 관해 크게 고민하지 않아도 된다)
- 메트릭, 상태확인, 외부구성같은 프로덕션 준비 기능 제공
- 관례에 의한 간결한 설정
Spring 단어?
- 스프링이라는 단어는 문맥에 따라 다르게 사용 됨
- 스프링 DI컨테이너 기술
- 스프링 프레임워크
- 스프링 부트, 스프링 프레임워크 모두 포함한것
Spring을 만든 이유
- 스프링은 자바 언어 기반의 프레임워크
- 자바 언어의 가장 큰 특징 - 객체 지향 언어
- 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크