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

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

mxnxeonx 2023. 7. 28. 11:04
728x90
728x90

Java Platform

Java ν”Œλž«νΌμ€ Java μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 개발 및 κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ ν™˜κ²½μœΌλ‘œ, 4κ°€μ§€ ν”Œλž«νΌμ΄ μ‘΄μž¬ν•œλ‹€.

  • Java SE(Standard Edition)
  • Java EE(Enterprise Edition)
  • Java ME(Micro Edition)
  • Java FX

λͺ¨λ“  ν”Œλž«νΌμ€ JVM(Java Virtual Machine)κ³Ό API(Application Programming Interface)둜 κ΅¬μ„±λœλ‹€. → 즉, 각각의 ν”Œλž«νΌμ€ JVMκ³Ό APIλ₯Ό μ œκ³΅ν•˜λ©°, Target Platformμ—μ„œ λ™μž‘λ˜λ„λ‘ μž‘μ„±λœ Application듀이 Java ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ μž₯점(Platform에 비쒅속적, μ•ˆμ •μ„±, 개발 용이 λ“±..)듀을 μœ μ§€ν•  수 μžˆλ„λ‘ ν•œλ‹€.

  • JVM(Java Virtual Machine) : ν•˜λ“œμ›¨μ–΄μ™€ μ†Œν”„νŠΈμ›¨μ–΄ ν”Œλž«νΌμ—μ„œ Java κΈ°μˆ μ„ μ‚¬μš©ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ™μž‘μ‹œν‚€κΈ° μœ„ν•œ ν”„λ‘œκ·Έλž¨. μ˜€νΌλ ˆμ΄νŒ… μ‹œμŠ€ν…œμ΄λ‚˜ μ›Ή λΈŒλΌμš°μ €μ— μΆ”κ°€ν•  수 μžˆλŠ” λŸ°νƒ€μž„ ν™˜κ²½μœΌλ‘œ, Java μ»΄νŒŒμΌλŸ¬κ°€ μƒμ„±ν•˜λŠ” λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•œλ‹€. JVM은 μ›λž˜ 개발된 ν”Œλž«νΌμ— 상관없이 μ–΄λ–€ ν”Œλž«νΌμ—μ„œλ„ Java 클래슀 파일이 μ‹€ν–‰λ˜λ„λ‘ λ°”μ΄νŠΈμ½”λ“œ 인터프리터 및 λŸ°νƒ€μž„μœΌλ‘œ κ΅¬μ„±λœλ‹€.
    → Java ν”„λ‘œκ·Έλž¨μ€ JVM, κ°œλ°œμ— ν•„μš”ν•œ ν‘œμ€€ 라이브러리 μ„ΈνŠΈ, 컴파일러의 ν™˜κ²½λ§Œ λ§žμΆ”λ©΄ μš΄μ˜μ²΄μ œλ‚˜ ν•˜λ“œμ›¨μ–΄μ— 영ν–₯을 λ°›μ§€ μ•Šκ³  λͺ¨λ“  ν™˜κ²½μ—μ„œ λ™μΌν•˜κ²Œ λ™μž‘ν•œλ‹€. 
  • API(Application Programming Interface) : κ°œλ°œμžλ“€μ΄ 직접 μ»΄ν¬λ„ŒνŠΈλ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈμ˜ μ§‘ν•©. (=κ°œλ°œμ— 도움이 λ˜λŠ” Function듀을 λͺ¨μ•„λ‘” 것)
 

Java ν”Œλž«νΌ

Java™ ν”Œλž«νΌμ€ Java μ• ν”Œλ¦Ώ 및 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 개발 및 κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ ν™˜κ²½μž…λ‹ˆλ‹€. 이 ν”Œλž«νΌμ€ μ„Έ 개의 1μ°¨ κ΅¬μ„±μš”μ†ŒμΈ Java μ–Έμ–΄, Java νŒ¨ν‚€μ§€ 및 JVM(Java Virtual Machine)μž…λ‹ˆλ‹€. Java μ–Έμ–΄ 및 νŒ¨ν‚€μ§€λŠ”

www.ibm.com

 

Java SE(Standard Edition)

κ°€μž₯ λŒ€μ€‘μ μΈ(기본적인) μžλ°” ν”Œλž«νΌμ΄μž ν”νžˆ Java μ–Έμ–΄λΌκ³ ν•˜λŠ” λŒ€λΆ€λΆ„μ˜ νŒ¨ν‚€μ§€(java.lang.*, java.util.*, java.awt.*, javax.rmi.*, javax.net.* λ“±)κ°€ ν¬ν•¨λœ μ—λ””μ…˜μ΄λ‹€.

  • Java SE의 APIλŠ” Java ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ 핡심기λŠ₯듀을 μ œκ³΅ν•œλ‹€.
    : 기초적인 νƒ€μž… / λ„€νŠΈμ›Œν‚Ή / λ³΄μ•ˆ / λ°μ΄ν„°λ² μ΄μŠ€ 처리 / κ·Έλž˜ν”½ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ 개발 / XML νŒŒμ‹± / 가상머신, κ°œλ°œλ„ꡬ, λ°°ν¬κΈ°μˆ , λΆ€κ°€ ν΄λž˜μŠ€ λΌμ΄λΈŒλŸ¬λ¦¬, νˆ΄ν‚· λ“± μ œκ³΅
  • SDK(Java Software Development Kit)으둜 κ΅¬ν˜„
  • JDK(Java Development Kit) : Java SE의 ν‘œμ€€μ•ˆμ— 따라 λ§Œλ“€μ–΄μ§„ ꡬ체적인 μ†Œν”„νŠΈμ›¨μ–΄. Java ν”„λ‘œκ·Έλž¨ μ‹€ν–‰μ‹œ Java μ½”λ“œλ₯Ό μ»΄νŒŒμΌν•˜λŠ” μ»΄νŒŒμΌλŸ¬μ™€, κ°œλ°œμ— ν•„μš”ν•œ 각쒅 도ꡬ, JREκ°€ 포함. (Java κ°œλ°œμ„ μœ„ν•΄ ν•„μˆ˜ / 개발자)
  • JRE(Java Runtime Environment) : Javaκ°€ μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ” 데 ν•„μš”ν•œ JVM, 라이브러리, 각쒅 νŒŒμΌλ“€μ΄ 포함. (Java 싀행을 μœ„ν•΄ ν•„μˆ˜ / 일반인)

 

Java EE(Enterprise Edition)

.Java SE에 μ—”ν„°ν”„λΌμ΄μ¦ˆμš© μ—¬λŸ¬ κΈ°λŠ₯(라이브러리 λ“±)을 μΆ”κ°€ν•œ ν™•μž₯ λ²„μ „μœΌλ‘œ, Java SE ν”Œλž«νΌμ„ 기반으둜 κ·Έ μœ„μ— νƒ‘μž¬λ¨. → κ°„νŽΈν•˜κ³  κ²¬κ³ ν•˜κ³  이식/ν™•μž₯ κ°€λŠ₯ν•˜λ©° μ•ˆμ „ν•œ μ„œλ²„μΈ‘ Java μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μœ„ν•œ μ‚°μ—… ν‘œμ€€

  • 곡톡 ν‘œμ€€ μ„œλΉ„μŠ€ κΈ°λŠ₯듀을 μ œκ³΅ν•œλ‹€.
    : 이름 μ§€μ • / νŠΈλžœμž­μ…˜ 관리 / λ™μ‹œμ„± / λ³΄μ•ˆ / λ°μ΄ν„°λ² μ΄μŠ€ μ•‘μ„ΈμŠ€ λ“±
  • μ›Ή ν”„λ‘œκ·Έλž˜λ°μ— ν•„μš”ν•œ κΈ°λŠ₯을 λ‹€μˆ˜ ν¬ν•¨ν•œλ‹€. (JSP, Servlet, JDBC, JNDI, JTA, EJB λ“±)
    β–· 비동기 λ©”μ‹œμ§€ 처리λ₯Ό μœ„ν•œ JSM(Java Message Service)
    β–· νŠΈλžœμž­μ…˜ 처리, λΆ„μ‚° νŠΈλžœμž­μ…˜ 지원을 μœ„ν•œ JTA(Java Transaction API)
    β–· 디렉토리 μ„œλΉ„μŠ€λ₯Ό μœ„ν•œ JNDI(Java Naming and Directory Interface)
    β–· 메일 μ„œλΉ„μŠ€λ₯Ό μœ„ν•œ Java Mail API

  • λŒ€κ·œλͺ¨, 닀계측, ν™•μž₯μ„±, μ‹ λ’°μ„±, λ³΄μ•ˆ λ„€νŠΈμ›Œν‚Ή API, ν™˜κ²½ 등을 제곡
Java EEλŠ” Java SEμ—μ„œ API(lib λ””λ ‰ν† λ¦¬μ˜ JAR νŒŒμΌλ“€)κ°€ μΆ”κ°€λœ 것

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ νŠΈλžœμž­μ…˜ 관리, μ›Ή μ»¨ν…Œμ΄λ„ˆ λ˜λŠ” λ³΄μ•ˆ λ“±μ˜ μ„œλΉ„μŠ€λ₯Ό μš”κ΅¬ν•˜λŠ” 경우 ν•„μš”ν•œ (1) Java ν™•μž₯ κΈ°λŠ₯을 Java SE ν”Œλž«νΌμ— μΆ”κ°€ν•˜κ±°λ‚˜, (2) Java EE μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λ₯Ό λ³€κ²½ν•  수 μžˆλ‹€.

Java SE와 Java EE

 

Java ME(Micro Edition)

λͺ¨λ°”일 폰과 같이 Java ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 기반의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 보닀 쑰그만 가상 λ¨Έμ‹ μœΌλ‘œ λ™μž‘μ‹œν‚¬ 수 μžˆλŠ” κΈ°λŠ₯κ³Ό API μ œκ³΅ν•œλ‹€.

  • Java EE처럼 Java SEλ₯Ό 기반(Java SE API의 ν•˜λΆ€ ꡬ쑰둜 APIκ°€ ꡬ성됨)으둜 ν•˜μ—¬ μΌκ΄€μ„±μžˆλŠ” 개발 κ°€λŠ₯
  • μž‘μ€ μž₯μΉ˜μ—μ„œ λ™μž‘ν•˜λŠ” Java μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ— ν•„μš”ν•œ μ „μš© 클래슀 λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ„ 제곡
  • Java EE ν”Œλž«νΌ μ„œλΉ„μŠ€μ˜ ν΄λΌμ΄μ–ΈνŠΈ 역할을 μˆ˜ν–‰ν•˜κΈ°λ„ 함 

 

Java FX

κ²½λŸ‰ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ APIλ₯Ό μ‚¬μš©ν•˜μ—¬ 리치 인터넷 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ λ•Œ μ‚¬μš©λœλ‹€.

  • ν•˜λ“œμ›¨μ–΄ μˆ˜μ€€μ—μ„œ 가속 κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλŠ” κ·Έλž˜ν”½κ³Ό λ―Έλ””μ–΄ 엔진을 κ°–μΆ”κ³  μžˆμ–΄ ν΄λΌμ΄μ–ΈνŠΈμ˜ μ„±λŠ₯에 신경을 μ¨μ•Όν•˜λŠ” λΆ„μ•Όμ—μ„œ μ‚¬μš©
  • Java EE ν”Œλž«νΌ μ„œλΉ„μŠ€μ˜ ν΄λΌμ΄μ–ΈνŠΈ 역할을 μˆ˜ν–‰ν•˜κΈ°λ„ 함

 

 

Java SE와 Java EE μ• ν”Œλ¦¬μΌ€μ΄μ…˜

Java™ Platform, Standard Edition(Java SE) 및 Java Platform, Enterprise Edition(Java EE)은 Java ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λ₯Ό ν”„λ‘œκ·Έλž˜λ°ν•˜κΈ° μœ„ν•΄ ν­λ„“κ²Œ μ‚¬μš©λ˜λŠ” ν”Œλž«νΌμž…λ‹ˆλ‹€. κ·œμΉ™ μ„Έμ…˜μ„ μ‚¬μš©ν•˜μ—¬

www.ibm.com

 

728x90
320x100