JDBC API๋ฅผ ๊ฐํธํ๊ฒ → JDBC Template ๐ Spring JDBC : ๊ฐํธํ JDBC API ์ฌ์ฉ์ ์ํ JDBC Template ์ ๊ณตSpring JDBC๋ ๋ฐ๋ณต์ ์ธ JDBC API ์ฝ๋๋ฅผ ๊ฐ์ํํ์ฌ ํจ์จ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์ง์ํ๋ค. JDBC API๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ํ๋ ๊ตฌ์กฐ์ ๋ฐ๋ณต ๋ฌธ์ ์ ์์ธ ์ฒ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Spring์ด JdbcTemplate์ ์ ๊ณตํ๋ค.1๏ธโฃ Spring JDBC๊ฐ ํด๊ฒฐํ๋ ๋ฌธ์ 1-1. ๋ฐ๋ณต๋๋ ์ฝ๋ ์ ๊ฑฐJDBC API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฐ๋ณต ์์
์ด ๋ฐ์ํ๋ค.Connection ๊ฐ์ฒด ์์ฑ ๋ฐ ๋ฐํStatement ์์ฑ ๋ฐ ์คํResultSet ์ฒ๋ฆฌ์์ธ์ฒ๋ฆฌ์ ์์ ์ ๋ฆฌJdbcTemplate์ ์ด ๋ชจ๋ ๊ณผ์ ์ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๊ฐ๋จํ๊ณ ๊น๋ํ ์ฝ..
๋
ผ๋ฆฌ์ ์ฐ๊ฒฐ / ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ๐ DB์ Java ์ ํ๋ฆฌ์ผ์ด์
์ฐ๊ฒฐ ๋ฐ DB ์ฟผ๋ฆฌ ์ํํ๊ธฐJava ์ ํ๋ฆฌ์ผ์ด์
์ JVM ์์์ ์คํ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ณ๋์ ์์คํ
์ด๋ค. ์ด๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด์ ๋ค์ ๋ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ค. 1๏ธโฃ DB ์ฐ๊ฒฐJava ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ๊ธฐ ์ํด์ ๋จผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํด์ผ ํ๋ค.Java์์์ DB ์ ์์ ๋ฌผ๋ฆฌ์ ์ ์ ๋
ผ๋ฆฌ์ ์ ์ ๋ ๋ฐฉ์ ์ค ํ๋๋ฅผ ์ ํํ๋ค.๋ฌผ๋ฆฌ์ ์ ์์ ๋งค ์ ์ ๋๋ง๋ค DB์ ์ง์ ๋ถ๋ ๊ฒ์ผ๋ก Create์ Close๋ฅผ ๋ฐ๋ณตํ๋ค.๋
ผ๋ฆฌ์ ์ ์์ ๋งค ์ ์ ๋๋ง๋ค DB์ ์ ์๋์ด ์๋ Connection Pool ์ค ํ๋๋ฅผ ์ฌ์ฉ ํ ๋ฐํํ์ฌ ์ฌ์ฌ์ฉํ๋ค.1-1. ๋ฌผ๋ฆฌ์ ์ ์ (DriverManager)DriverManger๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ์(C..
Spring Data JPA ์ฒซ ๋จ์ถ์๋ก Spring Data JPA๋ฅผ ๋ฐฐ์ฐ๊ธฐ์ ์์ ์์์ผ ํ ๋ด์ฉ๋ค์ด ๋ง๋ค.JDBCORMJPAHibernate(JPA ๊ตฌํ์ฒด)Spring Framework ํธ๋์ญ์
์ ์ดํด Spring Data JPA ๊ตฌ์กฐ์ ์ฃผ์ ์ธํฐํ์ด์คํด๋น ๋ด์ฉ๋ค์ ์์ผ๋ก ํ๋์ฉ ํฌ์คํ
ํด๊ฐ๋ฉฐ ์ดํดํ ์์ ์ด๋ค. ์์ํ๊ธฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Spring Boot๊ฐ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง์ ๋ํด ์์๋ณด์. ์ฌ์ค ๊ด๋ จ ๋ด์ฉ Dockerize๋ฅผ ํตํด ๋ค์ ์ด๋ฏธ ์ธ๊ธํ ๋ฐ ์๋ค. https://1000sang-dev.tistory.com/72 [Docker] Dockerize #2Docker๋ฅผ ํตํ Database ๊ตฌ๋Database: ์ฌ์ฉํ๋ ค๋ DB์ Base Docker Image ๊ธฐ๋ฐ์ ์ถ๊ฐ ์ค์ ๋ชฉ์ : Docker..
Partitioning, Sharding, Replication๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฅ (Scaling)ํ์ฅ(Scalling)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๊ฐ์ ํ๋ ์ ๋ต์ด๋ค. ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๊ฒฝ์์3๊ฐ์ ์ ๋ต์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.Partitioning(Vertical Partitioning)Sharding(Horizontal Partitioning)Replication1๏ธโฃ PartitioningPartitioning์ ํ๋์ ํ
์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋ถํ ํ์ฌ ์ ์ฅํ๋ ๊ธฐ์ ์ด๋ค.1-1. (Vertical) Partitioning: ์ปฌ๋ผ(์ด) ๋ถํ ์ปฌ๋ผ(์ด) ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๋๋ค.์: ์ฌ์ฉ์ ์ ๋ณด ํ
์ด๋ธ์ ๊ธฐ๋ณธ ์ ๋ณด์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ก ๋ถ๋ฆฌ์ฅ์ : ํน์ ํ๋์ ๋ํ ์ฟผ๋ฆฌ ์ต์ ..
๋ค์์ ์ฌ์ฉ์ ๋ค์ค์ ํธ๋์ญ์
์ฌ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ผ๊ด์ฑ ๋ณด์ฅ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋์์ฑ ์ ์ด (Concurrency Control)๋ฉํฐ์ ์ ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ์ ๊ทผํ ๋์๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ(Data Integrity)์ ์ ์งํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด DBMS์์๋ ๋์์ฑ ์ ์ด ๋งค์ปค๋์ฆ์ ๋์
ํ๋ค. ๋์์ฑ ์ ์ด๋ ๋ค์ค ์์ฒญ์ด ๊ฐ์ ๋ฐ์ดํฐ์ ์ ๊ทผํด๋ ๋ฐ์ดํฐ ์์์ด๋ ์ผ๊ด์ฑ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋๋ก ์ค๊ณ๋์๋ค. 1๏ธโฃ ๋์์ฑ ์ ์ด๋?๋ฉํฐ์ ์ ํ๊ฒฝ์์ ๋์ ์ ๊ทผ ๋ฉํฐ์ ์ : ๋จ์ผ DB ์ธ์คํด์ค ๋ด ๋ค์ ์ค๋ ๋ + ์ฌ๋ฌ ์ธ์คํด์ค๋ค์์ ํธ๋์ญ์
์ด ๋์์ ๊ฐ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ์ํฉ์ฃผ์ ๋ชฉํData Integrity(๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ)๋ณด์ฅData Consistencty(๋ฐ์ดํฐ ์ผ๊ด์ฑ) ์ ์ง๋ฐ์ดํฐ ์ถฉ๋ ๋ฐฉ์ง ๋ฐ ์ฑ๋ฅ..
ํธ๋์ญ์
๊ฐ ๋
๋ฆฝ์ฑ ๋ณด์ฅํธ๋์ญ์
๊ฒฉ๋ฆฌ ์์ค (Isolation Level)ํธ๋์ญ์
๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋์์ ์คํ๋๋ ํธ๋์ญ์
๊ฐ์ ๊ฐ์ญ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ธฐ์ค์ด๋ค. ACID ์์น ์ค "์ผ๊ด์ฑ(Consistency)"๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํ ํต์ฌ ์์์ด๋ค. 1๏ธโฃ ํธ๋์ญ์
๊ฒฉ๋ฆฌ ์์ค์ด๋ ? ํธ๋์ญ์
๊ฒฉ๋ฆฌ ์์ค์ ์ฌ๋ฌ ํธ๋์ญ์
์ด ๋์์ ์คํ๋ ๋, ํน์ ํธ๋์ญ์
์ด ๋ค๋ฅธ ํธ๋์ญ์
์ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋ ์ ๋๋ฅผ ๊ฒฐ์ ํ๋ ์ค์ ์ด๋ค.๊ฒฉ๋ฆฌ ์์ค์ ์๋์ ๊ฐ์ด ๋ฎ์ ์์ค(Low Isolation) ์์ ๋์ ์์ค(High Isolation)์ผ๋ก ๋๋๋ค.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE๊ฒฉ๋ฆฌ ์์ค์ด ๋์์ง์๋ก ๋ฐ์ดํฐ ์ ํฉ์ฑ(Data Integrity)..
RDBMS vs NoSQL ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค: RDBMS๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)๋ ๋ฐ์ดํฐ๋ฅผ ํ
์ด๋ธ(ํ๊ณผ ์ด) ๊ตฌ์กฐ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
์ผ๋ก, ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค. ACID ์์น์ ์ค์ํ๋ฉฐ ๋์ ์ ๋ขฐ์ฑ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ค. ํ๋ ฌ & ๊ด๊ณํ & Fixed Schemaํ๋ ฌ: 2์ฐจ์ ๋ฐฐ์ด ๋ฐ์ดํฐ → ๋ณต์กํ(๋ค์ฐจ์) ๋ฐ์ดํฐ ํํํ๊ธฐ์ ํ๊ณ๊ฐ ์๋ค. ๋ฐ๋ผ์ Relation์ด ํ์ํ๋ค.๊ด๊ณ: ๋ณต์กํ(๋ค์ฐจ์) ๋ฐ์ดํฐ๋ฅผ ๋ค์์ 2์ฐจ์ Entity(ํ
์ด๋ธ)๋ค๋ก ์ชผ๊ฐ์ด ๋๋๋ค. (PK-FK)Fixed Schema: ๊ณ ์ ๋ Column ์ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฌํ๋ค.1. ๊ณ ์ ๋ขฐ์ฑ (High Reliability) ๋ฐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ(Data Integrity)ACID ์ค์..
Docker Compose : ๋ ๊ฐ ์ด์์ ๋์ปค ์ด๋ฏธ์ง ๋น๋ / ์ปจํ
์ด๋ ๊ตฌ๋Docker Compose๋ชฉ์ : Docker Compose๋ฅผ ํตํ Spring Boot + Database(MySQL) ๋์ ๊ตฌ๋์ด๋ฒ ์ฑํฐ์์ Docker Compose๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์งํํ๋ Spring Boot ์ ํ๋ฆฌ์ผ์ด์
๊ณผ MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์์ ๊ตฌ๋ํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ทธ ๊ณผ์ ์ ๋ํด ์์๋ณด์. Docker Compose๋ฅผ ํตํด ์ฌ๋ฌ ๊ฐ์ Docker ์ปจํ
์ด๋๋ฅผ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค. DockerFile: ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
(์ด๋ฏธ์ง)์ ์ ์ํ๊ณ ๋น๋ํ ๋ ์ฌ์ฉํ๋ค.Docker Compose: ๋ ์ด์์ ์ ํ๋ฆฌ์ผ์ด์
(์ด๋ฏธ์ง)์ ์ ์ํ๊ณ ํจ๊ป ์คํํ ๋ ์ฌ์ฉํ๋ค. ๊ฐ ์ปจํ
์ด๋ ๊ฐ์ ๋คํธ์ํฌ ์ค์ ๋ฐ ํ๊ฒฝ ๋ณ์ ์ค์ ์ ์ฝ..