๐Ÿ’ปDEV-STUDY

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: ๋‘˜ ์ด์ƒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์ด๋ฏธ์ง€)์„ ์ •์˜ํ•˜๊ณ  ํ•จ๊ป˜ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ์„ค์ • ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •์„ ์‰ฝ..
1000_sang
'๐Ÿ’ปDEV-STUDY' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก