/
์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ์—ญ์‚ฌ(๋ฐฐ๊ฒฝ)

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ์—ญ์‚ฌ(๋ฐฐ๊ฒฝ)

์—ญ์‚ฌ

๋กœ๋“œ ์กด์Šจ์ด 2002๋…„ 10์›”์— ์ถœํŒํ•œ ์ž์‹ ์˜ ์ €์„œ์ธ Expert One-on-One J2EE Design and Development ์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ดˆ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ฒŒ ๋จ.

(์ดํ›„ ์œ ๊ฒ ํœ„๋Ÿฌ์™€ ํ•จ๊ป˜ Expert One-on-One J2EE Development without EJB ๋ผ๋Š” ์ œ๋ชฉ์˜ ์ €์„œ๋ฅผ ๋ฐœ๊ฐ„ํ•จ)

2006๋…„์— 1.2.6 ๋ฒ„์ „์œผ๋กœ Jolt Productive Award ์™€ Jax Innovation Award ๋ฅผ ์ˆ˜์ƒํ•˜์˜€์Œ.

๋ฒ„์ „๋‚ ์งœ
5.0 M52017๋…„ 2์›”
4.32016๋…„ 6์›”
4.22015๋…„ 7์›”
4.12014๋…„ 9์›”
4.02013๋…„ 12์›”
3.22012๋…„ 12์›”
3.12011๋…„ 12์›”
3.02009๋…„ 12์›”
2.52007๋…„ 11์›”
2.02006๋…„ 10์›”
1.02004๋…„ 3์›”

๋ฐฐ๊ฒฝ

1. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ์–ด๋ ค์›€

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ž€ ๊ธฐ์—…๊ณผ ์กฐ์ง์˜ ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์„ ์˜๋ฏธํ•จ.

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ด ์–ด๋ ค์šด ์›์ธ์€ ๊ฐœ๋ฐœ์˜ ๋ณต์žก์„ฑ(complexity)์ด ์ฆ๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž„.

  • ๊ณผ๊ฑฐ์— ๋น„ํ•ด ์‚ฌํšŒ๋Š” ์ ์  ๋ณต์žกํ•ด์กŒ์œผ๋ฉฐ, ์ด์— ๋”ฐ๋ผ IT ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์˜์กด๋„๊ฐ€ ๋†’์•„์ ธ ์‹œ์Šคํ…œ์—์„œ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋Š” ์—…๋ฌด์˜ ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง.
  • ๋งŽ์€ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ๋น ๋ฅด๊ณ , ์•ˆ์ •์ ์ด๋ฉด์„œ, ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๋กœ์šฐ๋ ˆ๋ฒจ ์ˆ˜์ค€์˜ ๊ธฐ์ˆ ์  ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•ด์ง.

์ฐธ๊ณ 

๊ณผ๊ฑฐ J2EE ํ”„๋กœ์ ํŠธ๊ฐ€ ์™œ ์‹คํŒจํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ํ† ๋ก ์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋‹น์‹œ์˜ ์ƒํ™ฉ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Œ.

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ๋ณต์žก์„ฑ์€ ํฌ๊ฒŒ ๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žก์„ฑ๊ณผ ๊ธฐ์ˆ  ๋ณต์žก์„ฑ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ.

๋น„์ฆˆ๋‹ˆ์Šค(์—…๋ฌด) ๋ณต์žก์„ฑ๊ธฐ์ˆ  ๋ณต์žก์„ฑ
  • ๋„“์€ ์—…๋ฌด๋ฒ”์œ„
  • ๋ณต์žกํ•œ ํ”„๋กœ์„ธ์Šค
  • ์—…๋ฌด ์—ฐ๊ด€์„ฑ
  • ์ง€์†์ ์ธ ์—…๋ฌด ๋ณ€ํ™”
  • ...
  • ๋ณด์•ˆ
  • ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ
  • ์ƒํƒœ ๊ด€๋ฆฌ
  • ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ
  • ๋ฆฌ์†Œ์Šค ํ’€๋ง
  • ํƒ€ ์‹œ์Šคํ…œ ์—ฐ๊ณ„
  • ํ’ˆ์งˆ ์†์„ฑ(์„ฑ๋Šฅ, ๊ฐ€์šฉ์„ฑ, ์•ˆ์ •์„ฑ, ํ™•์žฅ์„ฑ, ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ, ...)
  • ...

์œ„์™€ ๊ฐ™์€ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žก์„ฑ๊ณผ ๊ธฐ์ˆ  ๋ณต์žก์„ฑ์„ ๋‚˜๋ˆ„์–ด์„œ ์ •๋ณตํ•˜๋Š” ์ „๋žต(Divide and Conquer)์ด ํ•„์š”ํ•จ.

2. Java EE์™€ EJB

2.1. Java EE (Java Platform, Enterprise Edition)

์ปค๋ฎค๋‹ˆํ‹ฐ(JCP, Java Community Process)์—์„œ ์ฃผ๋„ํ•˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ‘œ์ค€ [1]

์ฐธ๊ณ 

Java EE์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.



2.2. EJB (Enterprise JavaBeans)

Java EE๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜ [2]

EJB์˜ ๋ชฉํ‘œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์— ์žˆ์—ˆ์Œ [3]

2.1 Overall goals

We have set the following goals for the Enterprise JavaBeans (EJB) architecture:

  • ...
  • The Enterprise JavaBeans architecture will make it easy to write applications: Application
    developers will not have to understand low-level transaction and state management details,
    multi-threading, connection pooling, and other complex low-level APIs.

  • ...

2.1 ๋ชฉํ‘œ

์šฐ๋ฆฌ๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ž๋ฐ”๋นˆ์ฆˆ (EJB) ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง„๋‹ค.

  • ...
  • ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ž๋ฐ”๋นˆ์ฆˆ ์•„ํ‚คํ…์ฒ˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑ์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ๋กœ์šฐ ๋ ˆ๋ฒจ์˜ ํŠธ๋žœ์žญ์…˜์ด๋‚˜ ์ƒํƒœ ๊ด€๋ฆฌ, ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ, ์ปค๋„ฅ์…˜ ํ’€๋ง, ๊ทธ๋ฆฌ๊ณ  ๊ธฐํƒ€ ๋ณต์žกํ•œ ๋กœ์šฐ ๋ ˆ๋ฒจ์˜ API๋ฅผ ์ดํ•ดํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
  • ...


2.3 ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ

EJB๋Š” ์นจํˆฌ์ ์ธ(invasive) ๊ธฐ์ˆ ๋กœ ์†Œ์Šค์ฝ”๋“œ ์ธก๋ฉด์—์„œ์˜ ๊ฐ•์ œ์‚ฌํ•ญ(EJB ๊ด€๋ จ ํด๋ž˜์Šค๋ฅผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ)๊ณผ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์ธก๋ฉด์—์„œ์˜ ๊ฐ•์ œ์‚ฌํ•ญ(EJB ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉ) ๋–„๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Œ.

  • ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ์ €ํ•˜
  • ์œ ์ง€ ๋ณด์ˆ˜์„ฑ ์ €ํ•˜
  • ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ์ด ๋–จ์–ด์ง
  • ๋ฐฐํฌ์˜ ์–ด๋ ค์›€

์ฐธ๊ณ 

EJB๋ฅผ ์ด์šฉํ•œ ์˜ˆ์ œ์ฝ”๋“œ๋Š” ์•„๋ž˜์—์„œ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ์Œ.

  • [์ž‘์„ฑ์ค‘] EJB ์˜ˆ์ œ์ฝ”๋“œ(github)๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ด๊ณณ์— ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒƒ.


3. ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋“ฑ์žฅ

EJB์—์„œ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋˜ ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋น„ ์นจํˆฌ์ ์ธ(non-invasive) ๋ฐฉ์‹์„ ๋„์ž…ํ•˜์˜€๊ณ , ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ฆ.

์ด๋Ÿฌํ•œ ์‚ฌ์ƒ์€ Spring Mission Statement์— ์ž˜ ๋‚˜ํƒ€๋‚˜ ์žˆ์Œ.



[1] ^ http://www.oracle.com/technetwork/java/javaee/overview/index.html

[2] ^ http://www.oracle.com/technetwork/java/javaee/ejb/index.html

[3] ^ EJB 1.1 - Final Release Specification