728x90 ๊ฐ์ธ ๊ณต๋ถ84 ์คํ๋ง๋ถํธ h2 database, h2 console ์ค์ โ ์คํ๋ง๋ถํธ์์ h2 database๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒpom.xml์ h2 ์์กด์ฑ์ ์ถ๊ฐํ๊ณ , application.properties์ ๊ด๋ จ ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. ๐ h2 database ์คํ์ ์ํ ์ต์ ์ค์ pom.xml com.h2database h2 runtime application.properties# h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ (mem) ๋ก ์คํํ๋ ์ค์ . ์ด๋ db์ด๋ฆ์ testdb๋ก ์์ฑ๋๋ค.spring.datasource.url=jdbc:h2:mem:testdb# ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ด๋, ๋น๋ฐ๋ฒํธ ์ค์ (๋ํดํธ username: sa, ๋ํดํธ password: ์์) spring.datasource.username=saspring.datasource.pass.. 2025. 3. 6. [jdbc] ํธ๋์ญ์ ๊ด๋ฆฌ (feat. ์คํ๋ง ํ๋ ์์ํฌ) ๐ ์ด์ ๊ธ: ํธ๋์ญ์ โ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํธ๋์ญ์ ๊ด๋ฆฌํธ๋์ญ์ ์ ๋น์ง๋์ค ๋ก์ง์ด ์๋ ์๋น์ค ๊ณ์ธต์์ ์์ํด์ผ ํ๋ค.๋น์ง๋์ค ๋ก์ง์์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด, ๋ฌธ์ ๊ฐ ์๊ธด ๋ถ๋ถ์ผ๋ก ์ธํด ์คํ์ทจ์๋์ด์ผ ํ๋ ์์ ๋ค์ ์ ๋ถ ๋กค๋ฐฑํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ํธ๋์ญ์ ์ ์์ํ๋ ค๋ฉด Connection์ด ์์ด์ผ ํ๋ค!์๋น์ค ๊ณ์ธต์์ ํธ๋์ญ์ ์ ์ ์งํ๋ ค๋ฉด์๋น์ค ๊ณ์ธต์์ ์ปค๋ฅ์ ์ ๋ง๋ค๊ณ , ํธ๋์ญ์ ์ ๋๋ ๋๊น์ง ๋์ผํ ์ปค๋ฅ์ ์ ์ ์งํด์ผ ํ๋ค. ๐ ๋ฌธ์ ์ ์ ์ง๋ณด์๋ฅผ ์ํด์๋ ํ๋์ ํด๋์ค๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋๋จธ์ง ํด๋์ค๋ค์ ๋ณ๊ฒฝ์ด ์ต์ํ๋์ด์ผ ํ๋ค. ์ฆ UI๊ฐ ๋ฐ๋๊ณ , ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ์ ์ด ๋ฐ๋๋ค๊ณ ํ๋๋ผ๋ํต์ฌ ๋น์ง๋์ค ๋ก์ง์ธ ์๋น์ค ๊ณ์ธต์ ์ต๋ํ ์์ ๋์ง ์์์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ ํธ๋์ญ์ ์ ์๋น์ค ๊ณ์ธต์์ ์์ํด๋ฒ๋ฆฌ๋ฉด์๋น์ค ๊ณ์ธต์ jdbc.. 2025. 2. 5. JVM ํ ์์ญ๊ณผ GC โ JVM ์ํคํ ์ฒ ์ด๋ฏธ์ง ์ถ์ฒ: https://medium.com/java-for-beginners/understanding-java-virtual-machine-jvm-architecture-e68d1c611026 JVM ๊ตฌ์ฑ์์๋ ํฌ๊ฒ Class Loader, Runtime Data Area, Execution Engine, ๊ทธ๋ฆฌ๊ณ JNI์ Native method library๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฐ ์ปดํ์ผ๋ฌ๊ฐ ์์ค์ฝ๋(.java)๋ฅผ ์ปดํ์ผํ์ฌ ๋ฐ์ดํธ์ฝ๋(.class)๋ก ๋ณํ์ํจ๋ค.ํด๋์ค ๋ก๋๊ฐ ํ์ํ ์์ ์ ํด๋น ํด๋์ค์ ๋ฐ์ดํธ์ฝ๋(.class)๋ฅผ JVM์ Runtime Data Area์ ๋ก๋(์ ์ฌ)ํ๋ค.JVM Execution engine์ ๋ก๋๋ ํด๋์ค์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ํ ์ค์ฉ ํด์(interp.. 2025. 1. 30. ํธ๋์ญ์ ๐ ์ด์ ๊ธ: [Jdbc] ์ปค๋ฅ์ ํ๋ง๊ณผ DataSource ์ธํฐํ์ด์ค โ ํธ๋์ญ์ ๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํธ๋์ญ์ ์ ์ง์ํ๋ค.ํ์ผ ์์คํ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ค ํ๋์ด๊ธฐ๋ ํ๋ค. ํธ๋์ญ์ ์ด๋, ํ๋์ ์์ ์ ์์ ํ๊ฒ ์ฒ๋ฆฌํ๋๋ก ๋ณด์ฅํด์ฃผ๋ ๊ฒ์ด๋ค.ํธ๋์ญ์ ์์ ๋ชจ๋ ์์ ์ด ์ฑ๊ณตํด์ DB์ ์ ์ ๋ฐ์๋๋ ๊ฒ์ Commit์ด๋ผ๊ณ ํ๋ค.ํธ๋์ญ์ ์์ ์์ ์ค ํ๋๋ผ๋ ์คํจํด์ ํธ๋์ญ์ ์์ ์ ์ํ๋ก ๋๋๋ฆฌ๋ ๊ฒ์ Rollback์ด๋ผ๊ณ ํ๋ค. ๐ ํธ๋์ญ์ ACID- ํธ๋์ญ์ ์ ์์์ฑ(Atomicity), ์ผ๊ด์ฑ(Consistency), ๊ฒฉ๋ฆฌ์ฑ(Isolation), ์ง์์ฑ(Durability)์ ๋ชจ๋ ๋ณด์ฅํด์ผ ํ๋ค. ๐ฅ ์์์ฑ (Atomicity)- ํธ๋์ญ์ ์์์ ์คํํ ์์ ๋ค์ ๋ง์น ํ.. 2025. 1. 30. [Jdbc] ์ปค๋ฅ์ ํ๋ง๊ณผ DataSource ์ธํฐํ์ด์ค ๐ ์ด์ ๊ธ: JDBC์ SQL Mapper, ORM ๊ฐ๋จํ ์ ๋ฆฌ โ DriverManager- JDBC๊ฐ ๋ฑ์ฅํจ์ผ๋ก์จ "๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ - SQL ์ฟผ๋ฆฌ ๋ ๋ฆฌ๊ธฐ - ์๋ต ๋ฐ๊ธฐ" ๊ณผ์ ์ด ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ์์ํด์ก๋ค. - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์ ์์ฑํ๋ ์ฌ์ด ๋ฐฉ๋ฒ ์ค ํ๋๋ DriverManager.getConnection() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ๐ฅ ์์ ์ฝ๋// DriverManager๋ฅผ ์ด์ฉํ ์ปค๋ฅ์ ํ๋String url = "jdbc:h2:tcp://localhost/~/test";String username = "sa";String password = "";Connection connection = DriverManager.getConnection(url, username, passwor.. 2025. 1. 28. JDBC์ SQL Mapper, ORM ๊ฐ๋จํ ์ ๋ฆฌ โ JDBC๋ ์ ๋ฑ์ฅํ๊ฒ ๋์์๊น?- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋ํ์ฌ ๊ฐ์ ์กฐํํ๊ฑฐ๋, ์ ์ฅํ์ฌ ๊ด๋ฆฌํ๋ค.- ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋ ์์ ์ ํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ์ฟผ๋ฆฌ ์คํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ์๋ต ๋ฐ๊ธฐ์ ๊ณผ์ ์ ์์ค์ฝ๋๋ก ์์ฑํด์ผ ํ๋ค.- ๊ณผ๊ฑฐ์๋ DB ์ปค๋ฅ์ ์คํ์ด๋ SQL ๋ฌธ๋ฒ ๋ฑ์ด ๋ชจ๋ ๋ฌ๋๊ธฐ ๋๋ฌธ์, DB๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ ์ ๋ถ ์์ ํด์ผ ํ๋ค. - ๊ทธ๋์ JDBC๊ฐ ๋ฑ์ฅํ๋ค. โ JDBC๋?- JDBC๋ ์๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์, ์ฟผ๋ฆฌ, ์๋ต๋ฐ๋ ๋ฐฉ๋ฒ์ ์ ์ํด๋ ํ์ค ์ธํฐํ์ด์ค์ด๋ค.- JDBC ํ์ค ์ธํฐํ์ด์ค๋ java.sql ํจํค์ง์ ์ ์๋์ด ์๋ค. (์ฐ๊ฒฐ ๊ด๋ จ - java.sql.Connection, ์ฟผ๋ฆฌ ๊ด๋ จ - java.sql.Stat.. 2025. 1. 21. ์ด์ 1 2 3 4 ยทยทยท 14 ๋ค์ 728x90