2024.01.22 - [๐ Language/Java] - [Java] Hibernate๋? [Java] Hibernate๋? ์ด๋ฒ ์๊ฐ์๋ Hiberante์ ๋ํ์ฌ ์์๋ณด๋ ค๊ณ ํ๋ค. Java ๊ธฐ๋ฐ์ ๊ฐ๋ฐ์์ ๋ง์ด ์ฌ์ฉ๋๋ ORM (Object-Relational Mapping) ํ๋ ์์ํฌ์ด๋ค. Java ์ธ์ด๋ก ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํธ์ boom-94.tistory.com ์ด์ ์ Hibernate๋ ๋ฌด์์ผ๊น์ ๋ํ์ฌ ์ ์๋๋ง ์ดํด๋ดค์ต๋๋ค. Hiberante์์ ๊ฐ์ฅ ๋ง์ด ๋์ค๋ ORM๊ณผ ์์์ฑ(Persistence)์ ๋ํ์ฌ ์์ธํ ํ๋ฒ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. ORM(Object-relational mapping) ์ด๋? ๊ฐ์ฒดํ ๋ฐ์ดํฐ(Objcet)์ ๊ด๊ณํ ๋ฐ์ดํฐ(Releational..
๐ Language
์ด๋ฒ ์๊ฐ์๋ Hiberante์ ๋ํ์ฌ ์์๋ณด๋ ค๊ณ ํ๋ค. Java ๊ธฐ๋ฐ์ ๊ฐ๋ฐ์์ ๋ง์ด ์ฌ์ฉ๋๋ ORM (Object-Relational Mapping) ํ๋ ์์ํฌ์ด๋ค. Java ์ธ์ด๋ก ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํธ์์ฉ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ ์ค ํ๋์ด๋ฉฐ, Hibernate๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋งคํ์ ๋ด๋นํ์ฌ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ฒด ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ ์ ์๊ฒ ํด์ค๋ค. Hibernate ๋? Java ํด๋์ค๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๋งคํํ๋ ํธ๋ฆฌํ๊ณ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ Java์ฉ ORM(๊ฐ์ฒด ๊ด๊ณํ ๋งคํ) ํ๋ ์์ํฌ ์ฃผ์์ ์ฌ์ฉํ๋ฉด ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ฝ๊ฒ ์ ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ฉฐ ์ํฐํฐ ํด๋..
1. JVM(Java Virtual Machine) ์๋ฐ ๊ฐ์ ๋จธ์ ์ ์ฝ์๋ก ์๋ฐ ํ๋ก๊ทธ๋จ ๋ฐํ์ ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ํด๋์ค ๋ก๋๋ฅผ ํตํด ์ฝ์ด ๋ค์ฌ, ์๋ฐ API์ ํจ๊ป ์คํํ๋ ์ญํ JAVA์ OS ์ฌ์ด์ ์ค๊ฐ์ ์ญํ ์ ์ํ, JAVA๊ฐ OS์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์คํ Garbage Collection, ์ฆ ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ํ๋ฉฐ ์ต์ ํ ์ํ 2. Java ํ๋ก๊ทธ๋จ ์คํ ์์ Java ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด JVM์ OS๋ก๋ถํฐ ํด๋น ํ๋ก๊ทธ๋จ์ด ํ์๋ก ํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น, JVM์ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฉ๋์ ๋ฐ๋ผ ์ฌ๋ฌ ์์ญ์ผ๋ก ๋๋์ด ๊ด๋ฆฌ ์๋ฐ ์ปดํ์ผ๋ฌ(javac)๊ฐ ์๋ฐ ์์ค ์ฝ๋(.java)๋ฅผ ์ฝ์ด ๋ค์ฌ ์๋ฐ ๋ฐ์ดํธ ์ฝ๋(.class)๋ก ๋ณํ Class Loader๋ฅผ ํตํด ์๋ฐ ..
1. ์๋ฐ(Java) ๋? - JAVA๋ ๋คํธ์ํฌ์์์ ์ธ ์ ์๋๋ก ๋ฏธ๊ตญ์ ์ ๋ง์ดํฌ๋ก ์์คํ
์ฆ๊ฐ ๊ฐ๋ฐํ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์ธ์ด 1-1. ์๋ฐ(Java)์ ํน์ง ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ด ๋๋ค ์ฝ๋์ ๋ณ๊ฒฝ์ด ์ฉ์ด ์ง๊ด์ ์ธ ์ฝ๋ ๋ถ์ ๊ฐ๋ฐ์๋ ํฅ์ ์์์ ํตํ ์ฅ์ ๊ทน๋ํ 2. Object - Object(๊ฐ์ฒด)๋ OOP์์ ์์ฑ(๋ณ์)์ ๊ทธ ๋ฐ์ดํฐ์ ๊ด๋ จ๋๋ ๋์(ํจ์). - ์๋ฐ์์๋ ์ด๋ฌํ ๊ฐ์ฒด์ ์์ฑ์ ํ๋(field), ๋์์ ๋ฉ์๋(method)๋ผ๊ณ ํ๋ค. 3. Overloading vs Overriding Overloading (์ค๋ฒ๋ก๋ฉ) ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ ๋งค๊ฐ๋ณ์์ ํ์
์ด ๋ค๋ฅด๊ฑฐ๋ ๊ฐ์๊ฐ ๋ฌ๋ผ์ผ ํ๋ค. ์์ฑ์ ์ค๋ฒ๋ก๋ฉ ์์ฑ์์ธ๋ฐ ๋งค๊ฐ๋ณ์์ ํ์
, ๊ฐ์, ์์๋ฅผ ๋ค๋ฅด..
1. ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋จ(Object Oriented Programming)? - ํ๋ก๊ทธ๋๋ฐ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ํ์์ผ ์ํ์ ํ์๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๊ฐ์ฒด๋ค ๊ฐ์ ์ ๊ธฐ์ ์ธ ์ํธ์์ฉ์ ํตํด ๋ก์ง์ ๊ตฌ์ฑํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ 2. OOP์ ์ฅ, ๋จ์ > ์ฅ์ ์ฝ๋ ์ฌ์ฌ์ฉ์ด ์ฉ์ด ๋จ์ด ๋ง๋ ํด๋์ค๋ฅผ ๊ฐ์ ธ์์ ์ด์ฉํ ์ ์๊ณ ์์์ ํตํ์ฌ ํ์ฅํด์ ์ฌ์ฉ ์ ์ง๋ณด์๊ฐ ์ฌ์ ๋ํ ํ๋ก์ ํธ์ ์ ํจ > ๋จ์ ์ฒ๋ฆฌ ์๋๊ฐ ์๋์ ์ผ๋ก ๋๋ฆผ ๊ฐ์ฒด๊ฐ ๋ง์ผ๋ฉด ์ฉ๋์ด ์ปค์ง ์ ์์ ์ค๊ณ ์ ๋ง์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ ํผ์ 3. OOP ํค์๋ 5๊ฐ์ง ํด๋์ค + ์ธ์คํด์ค (๊ฐ์ฒด) ํด๋์ค : ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ถ์ํ๋ฅผ ๊ฑฐ์ณ ์ง๋จ์ ์ํ๋ ์์ฑ(attribute)๊ณผ ํ์(behavior)๋ฅผ ๋ณ์์ ๋ฉ์๋๋ก ์ ์..