๐ŸƒSpring๊ณผ POJO

Plain Old Java Object

less than 1 minute read

POJO

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ์˜ ์–ด๋ ค์›€์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด EJB๊ฐ€ ๋‚˜์™”์ง€๋งŒ ๋ฐฉํ–ฅ์„ ์ž˜๋ชป์žก์•˜๋‹ค.
๋ณต์žก์„ฑ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋” ํฐ ๋ณต์žก์„ฑ์ด ๋„์ž…๋œ ๊ฒƒ์ด๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ดํ•ดํ•˜์ง€ ์•Š๊ณ ์„œ๋Š” ์ˆœ์ˆ˜ Java ๊ฐœ๋ฐœ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค.
์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ์นจํˆฌ์ ์ธ(invasive) ๋ฐฉ์‹์ด๋ผ ํ•œ๋‹ค.
์–ด๋–ค ๊ธฐ์ˆ ์„ ์ ์šฉํ–ˆ์„ ๋•Œ ๊ทธ ๊ธฐ์ˆ ๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋‚˜ ๊ทœ์•ฝ ๋“ฑ์ด ์ฝ”๋“œ์— ๋“ฑ์žฅํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

์Šคํ”„๋ง์€ ๋น„์นจํˆฌ์ ์ธ(non-invasive) ๊ธฐ์ˆ ์ด๋‹ค.
EJB๋ž‘ ์ฐจ๋ณ„๋˜๋Š” ํ•ต์‹ฌ ์ฒ ํ•™์ด๋‹ค.
์–ด๋А ์ •๋„๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์œ„ํ•œ ์ž‘์—…์ด ์žˆ๊ฒ ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ”๋“œ์˜ ์„ค๊ณ„์™€ ๊ตฌํ˜„๋ฐฉ์‹์„ ์ œํ•œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค.
AOP์™€ ๊ฐ™์€ ๊ธฐ์ˆ ๋„ ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์— ๊ธฐ์ˆ ์ ์ธ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ์ถ”๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
(์ด๋ฅผ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๋™์  ํ”„๋ก์‹œ๋„ ์ ์šฉํ•˜๊ณ  ์˜ค๋ฆฌ์˜ ๋ฐœ์ฒ˜๋Ÿผ ์—ด์‹ฌํžˆ ์›€์ง์ธ๋‹ค)
๊ทธ๋ฆฌ๊ณ  ๊ถ๊ทน์ ์ธ ๋ชฉ์ ์€ ์ž๋ฐ” ์–ธ์–ด๊ฐ€ ๊ฐ€์ง„ ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋ฅผ ๊ทน๋Œ€ํ™”ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ฒƒ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์Šคํ”„๋ง์˜ ํ•ต์‹ฌ POJO

POJO(Plain Old Java Object)๋Š” ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ๊ฐ€ 2000๋…„์— ์ปจํผ๋Ÿฐ์Šค ๋ฐœํ‘œ๋ฅผ ์ค€๋น„ํ•˜๋‹ค๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ์šฉ์–ด๋ผ๊ณ  ํ•œ๋‹ค.
ํ’€์–ด์„œ ์„ค๋ช…ํ•˜๋ฉด โ€œ๊ฐ„๋‹จํ•œ ์ž๋ฐ” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”โ€ ์ด๋‹ค.

์Šคํ”„๋ง์˜ ์ •์ˆ˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์„œ๋น„์Šค ๊ธฐ๋Šฅ์„ POJO์— ์ œ๊ณตํ•˜๋Š” ๊ฒƒ
=> 3๋Œ€ ์š”์†Œ์ธ IoC/DI, AOP, PSA๋Š” ๋ชจ๋‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ POJO๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” enabling technology๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.
(PSA :Potable Service Abstraction => ํ™˜๊ฒฝ๊ณผ ์„ธ๋ถ€ ๊ธฐ์ˆ ์˜ ๋ณ€ํ™”์—†์ด ์ผ๊ด€๋œ ๋ฐฉใ…Š์‹์œผ๋กœ ๊ธฐ์ˆ ์— ์ ‘๊ทผ๊ฐ€
์ด๋ ‡๊ฒŒ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค ๊ธฐ์ˆ ์„ ๋‚ด๋ถ€์— ์ˆจ๊ธฐ๊ณ  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์„œ๋น„์Šค ์ถ”์ƒํ™”(Service Abstraction)์ž…๋‹ˆ๋‹ค.)

POJO๋Š” ํŠน์ • ๊ทœ์•ฝ์ด๋‚˜ ํŠน์ • ํ™˜๊ฒฝ์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค.
๋„๋ฉ”์ธ์— ๊ฐ€๊นŒ์šด ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ์„ค๊ณ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.