πŸ’» Language/Java : μžλ°”

[Java] EJB(Enterprise Java Beans)λž€?

mxnxeonx 2023. 7. 27. 14:16
728x90
728x90

Spring λ˜λŠ” Javaλ₯Ό κ³΅λΆ€ν•œλ‹€λ©΄ ν•œ λ²ˆμ―€μ€ 듀어봀을 EJB에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

EJBλž€?

Java 기반의 Enterprise Application κ°œλ°œμ„ μœ„ν•œ μ„œλ²„ μΈ‘ μ»΄ν¬λ„ŒνŠΈ λͺ¨λΈλ‘œ, 주둜 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” 역할을 λ‹΄λ‹Ήν•˜μ—¬ 큰 규λͺ¨μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μΆ•ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 데 도움을 μ€€λ‹€. → κ°œλ°œμžλ“€μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 핡심 λ‘œμ§μ„ EJB μ»΄ν¬λ„ŒνŠΈλ‘œ μž‘μ„±ν•˜κ³ , 이λ₯Ό μž¬μ‚¬μš©ν•˜κ±°λ‚˜ λΆ„μ‚° ν™˜κ²½μ—μ„œ μ‹€ν–‰ 

  • Enterprise Application : λΉ„μ¦ˆλ‹ˆμŠ€ λ˜λŠ” νšŒμ‚¬ ν™˜κ²½μ—μ„œ μž‘λ™ν•˜λ„λ‘ μ„€κ³„λœ λŒ€κ·œλͺ¨ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œ ν”Œλž«νΌ. λ³΅μž‘ν•˜κ³  ν™•μž₯ κ°€λŠ₯ν•˜λ©° ꡬ성 μš”μ†Œ 기반이며 λΆ„μ‚° μ„œλΉ„μŠ€λ₯Ό 지원해야 ν•œλ‹€.
  • Component : ν”„λ‘œκ·Έλž˜λ°μ— μžˆμ–΄ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ 각각의 λ…λ¦½λœ λͺ¨λ“ˆ
λΆ„μ‚° μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ§€μ›ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ 기반의 객체둜,
μžλ°” 객체λ₯Ό μž¬μ‚¬μš© κ°€λŠ₯ν•˜λ„λ‘ 즉, μ»΄ν¬λ„ŒνŠΈν™”ν•  수 μžˆλŠ” μ½”λ”© 방침을 μ •μ˜ν•œ 것.

κΈ°μ—… λ“±μ—μ„œ μ‚¬μš©ν•˜λŠ” λŒ€κ·œλͺ¨ SWλ₯Ό κ°œλ°œν•˜κΈ° μœ„ν•΄ μ„œλ²„μ— ν¬ν•¨λ˜λŠ” 것.

 

  • Enterprise Bean : λΉ„μ§€λ‹ˆμŠ€ λ‘œμ§μ„ νƒ‘μž¬ν•œ μ„œλ²„ μ»΄ν¬λ„ŒνŠΈ
  • Container : Database, Transaction 처리 λ“±μ˜ μ‹œμŠ€ν…œ μ„œλΉ„μŠ€ λ‘œμ§μ„ 감좀. → κ°œλ°œμžκ°€ λΉ„μ§€λ‹ˆμŠ€ 둜직의 κ°œλ°œμ—λ§Œ 전념할 수 있게 ν•΄μ€Œ
  • EJB Server : μ»¨ν…Œμ΄λ„ˆλ₯Ό κ΄€λ¦¬ν•˜μ—¬ EJBλ‘œμ„œ ν•„μš”ν•œ μ‹œμŠ€ν…œ 레벨의 μ„œλΉ„μŠ€λ₯Ό μˆ˜ν–‰ β€» μ‹œμŠ€ν…œ 레벨의 μ„œλΉ„μŠ€ : Database, Transaction 처리
  • Client Application : Java Applet, Java Application, Servlet, JavaServer Pages(JSP) 베이슀의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ“±

 

EJB의 μ£Όμš” νŠΉμ§•

  1. λΆ„μ‚° ν™˜κ²½ 지원 : λΆ„μ‚° ν™˜κ²½μ—μ„œ 싀행될 수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄ λ‹€μˆ˜μ˜ μ„œλ²„μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜κ³  ν•„μš”μ— 따라 λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜λŠ” λ“±μ˜ μž‘μ—…λ„ κ°€λŠ₯.
  2. νŠΈλžœμž­μ…˜ 관리 : νŠΈλžœμž­μ…˜μ„ μžλ™μœΌλ‘œ κ΄€λ¦¬ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μ—…λ°μ΄νŠΈμ™€ 같은 μž‘μ—…μ„ μ•ˆμ „ν•˜κ³  μΌκ΄€λœ λ°©μ‹μœΌλ‘œ 처리 κ°€λŠ₯.
  3. λ³΄μ•ˆ : Java Enterprise λ³΄μ•ˆ λͺ¨λΈμ„ λ”°λ₯΄λ©° 인증, κΆŒν•œ λΆ€μ—¬, μ•”ν˜Έν™” λ“±μ˜ λ³΄μ•ˆ κΈ°λŠ₯을 제곡.
  4. μŠ€λ ˆλ“œ 관리 : μŠ€λ ˆλ“œλ₯Ό μžλ™μœΌλ‘œ κ΄€λ¦¬ν•˜μ—¬ κ°œλ°œμžκ°€ μŠ€λ ˆλ“œ 관리에 λŒ€ν•΄ κ±±μ •ν•  ν•„μš” 없이 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— 집쀑할 수 있게 ν•œλ‹€.

 

EJB의 μ’…λ₯˜

  1. Session Beans : λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” κ°€μž₯ 일반적인 μœ ν˜•μ˜ EJB. Stateless/Stateful 두 κ°€μ§€ Sub Type이 있으며, ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ— 따라 μƒˆλ‘œμš΄ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ±°λ‚˜ κΈ°μ‘΄ μΈμŠ€ν„΄μŠ€λ₯Ό μž¬μ‚¬μš©ν•œλ‹€.
    β–· Stateless Session Beans : μƒνƒœλ₯Ό μœ μ§€ν•˜μ§€ μ•Šκ³  λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰. μ—¬λŸ¬ ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ„ 처리 κ°€λŠ₯
    β–· Stateful Session Beans : ν΄λΌμ΄μ–ΈνŠΈμ™€μ˜ μƒνƒœλ₯Ό μœ μ§€ν•˜κ³ , ν΄λΌμ΄μ–ΈνŠΈλ§ˆλ‹€ κ³ μœ ν•œ μΈμŠ€ν„΄μŠ€κ°€ 생성됨
  2. Entity Beans : λ°μ΄ν„°λ² μ΄μŠ€μ™€μ˜ μƒν˜Έ μž‘μš©μ„ λ‹΄λ‹Ήν•˜λŠ” EJB. λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”μ— λŒ€μ‘ν•˜λŠ” κ°œλ…μœΌλ‘œ, Entity 클래슀λ₯Ό μž‘μ„±ν•˜μ—¬ 데이터λ₯Ό μ‘°μž‘/μ‘°νšŒν•  수 μžˆλ‹€.
    β€» Java EE 6λΆ€ν„°λŠ” Entity Beans λŒ€μ‹  JPA(Java Persistence API)λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 일반적
  3. Message-Driven Beans : 비동기 λ©”μ‹œμ§€ 기반 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ²˜λ¦¬ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” EJB μœ ν˜•. 주둜 λ©”μ‹œμ§€ 큐와 같은 λ©”μ‹œμ§€ μ€‘κ°œ μ„œλΉ„μŠ€μ™€ 톡합 λ™μž‘λ˜λ©°, λ©”μ‹œμ§€λ₯Ό μˆ˜μ‹ ν•˜κ³  이에 λŒ€ν•œ 처리λ₯Ό μˆ˜ν–‰ν•œλ‹€.

 

EJB의 μž₯점

  1. μž¬μ‚¬μš©μ„± : μ»΄ν¬λ„ŒνŠΈ 기반의 μ•„ν‚€ν…μ²˜λ₯Ό μ§€μ›ν•˜λ―€λ‘œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ 독립적인 μ»΄ν¬λ„ŒνŠΈλ‘œ μž‘μ„±ν•  수 μžˆλ‹€. → μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±, μœ μ§€λ³΄μˆ˜μ„± ν–₯상
  2. ν™•μž₯μ„± : λΆ„μ‚° ν™˜κ²½μ—μ„œ μ‹€ν–‰λ˜λ©° λΆ€ν•˜ λΆ„μ‚°κ³Ό ν΄λŸ¬μŠ€ν„°λ§μ„ μ§€μ›ν•œλ‹€. → μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯, ν™•μž₯μ„± ν–₯상
  3. ν‘œμ€€ν™” : Java EE μŠ€νŽ™μ˜ μΌλΆ€λ‘œμ„œ ν‘œμ€€ν™”λ˜μ–΄ λ‹€λ₯Έ Java EE ν˜Έν™˜ μ„œλ²„μ—μ„œλ„ λ™μΌν•œ λ°©μ‹μœΌλ‘œ EJBλ₯Ό κ°œλ°œν•˜κ³  μ‹€ν–‰ν•  수 μžˆλ‹€. → μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 이식성, ν˜Έν™˜μ„± 보μž₯
  4. νŠΈλžœμž­μ…˜ 관리 : νŠΈλžœμž­μ…˜μ„ μžλ™μœΌλ‘œ κ΄€λ¦¬ν•˜μ—¬ λ³„λ„μ˜ μ½”λ“œ μž‘μ„± 없이 λ°μ΄ν„°λ² μ΄μŠ€ μ—…λ°μ΄νŠΈ λ“±μ˜ μž‘μ—…μ„ μ•ˆμ „ν•˜κ²Œ μ²˜λ¦¬ν•  수 있으며, λΆ„μ‚° ν™˜κ²½μ—μ„œμ˜ λΆ„μ‚° νŠΈλžœμž­μ…˜λ„ μ§€μ›ν•œλ‹€.
  5. λ³΄μ•ˆ : Java EE의 λ³΄μ•ˆ λͺ¨λΈμ„ 따라 인증, κΆŒν•œ λΆ€μ—¬, 데이터 μ•”ν˜Έν™” λ“±μ˜ λ³΄μ•ˆ κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. → μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ³΄μ•ˆ μš”κ΅¬μ‚¬ν•­ μΆ©μ‘±
  6. μŠ€λ ˆλ“œ 관리 : μŠ€λ ˆλ“œλ₯Ό μžλ™μœΌλ‘œ 관리해주어 κ°œλ°œμžκ°€ μŠ€λ ˆλ“œ κ΄€λ ¨ 문제λ₯Ό κ±±μ •ν•  ν•„μš”κ°€ μ—†λ‹€. → λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— 집쀑

 

EJBλŠ” λŒ€κ·œλͺ¨ μ—”ν„°ν”„λΌμ΄μ¦ˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ— μ ν•©ν•œ κΈ°μˆ μ΄μ§€λ§Œ, Java EE ν˜Έν™˜ μ„œλ²„κ°€ ν•„μš”ν•˜κ³  EJB의 λ³΅μž‘μ„±κ³Ό μ˜€λ²„ν—€λ“œλ₯Ό κ³ λ €ν•΄μ•Ό ν•˜λŠ” 문제점이 μ‘΄μž¬ν•œλ‹€. 졜근 κ²½λŸ‰ν™”λœ Java 기반 ν”„λ ˆμž„μ›Œν¬λ“€μ΄ λ“±μž₯ν•˜λ©΄μ„œ EJB보닀 훨씬 가볍고 μœ μ—°ν•œ 개발 방식이 μ„ ν˜Έλ˜λŠ”λ°, 이것이 Spring이닀.

 

 

쀑간쀑간 λ“±μž₯ν–ˆλ˜ Java EEλž€ 뭘까?

 

[Java] Java Platform(Java SE/EE/ME/FX)μ΄λž€?

Java Platform Java ν”Œλž«νΌμ€ Java μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 개발 및 κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ ν™˜κ²½μœΌλ‘œ, 4κ°€μ§€ ν”Œλž«νΌμ΄ μ‘΄μž¬ν•œλ‹€. Java SE(Standard Edition) Java EE(Enterprise Edition) Java ME(Micro Edition) Java FX λͺ¨λ“  ν”Œλž«νΌμ€ JVM(Java Vir

idox.tistory.com

 

728x90
320x100