๐ŸŒฑ Spring Boot ์‹œ์ž‘ํ•˜๊ธฐ 13 - ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL ๊ธฐ์ดˆ

๊น€์„ธํ˜„ยท2025๋…„ 10์›” 23์ผ

Spring

๋ชฉ๋ก ๋ณด๊ธฐ
13/19

๋‚ ์งœ:2025-10-23


ํ•™์Šต ๋ชฉํ‘œ

-๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Relational Database) ๊ฐœ๋…๊ณผ ํŠน์ง• ์ดํ•ด
-ํ…Œ์ด๋ธ”, ํ–‰(Row), ์—ด(Column), ๊ธฐ๋ณธํ‚ค(PK)/์™ธ๋ž˜ํ‚ค(FK) ๊ฐœ๋… ์ดํ•ด
-SQL ๊ธฐ์ดˆ ๋ฌธ๋ฒ•(SELECT, INSERT, DELETE ๋“ฑ)์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ
-IntelliJ์—์„œ MySQL ํ™œ์šฉ ์‹ค์Šต


โœ… 1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database) ๊ฐœ๋…

1.1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database)**

๐Ÿ“Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„

-๋‹จ์ˆœ ํŒŒ์ผ ์ €์žฅ๋ณด๋‹ค ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋ฐฉ์ง€, ๊ฒ€์ƒ‰ ํšจ์œจ์„ฑ, ์ผ๊ด€์„ฑ ํ™•๋ณด ๊ฐ€๋Šฅ


1.2 ํŠธ๋žœ์žญ์…˜(Transaction)**

๐Ÿ“Œ ํŠธ๋žœ์žญ์…˜
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ ๋ฌถ์Œ

ACID ํŠน์„ฑ
-Atomicity(์›์ž์„ฑ): ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Œ
-Consistency(์ผ๊ด€์„ฑ): ํŠธ๋žœ์žญ์…˜ ์ „ํ›„ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€
-Isolation(๋…๋ฆฝ์„ฑ): ๋™์‹œ ํŠธ๋žœ์žญ์…˜ ๊ฐ„ ๊ฐ„์„ญ ์—†์Œ
-Durability(์ง€์†์„ฑ): ์™„๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์€ ์˜๊ตฌ ์ €์žฅ


1.3 RDBMS(Relational Database Management System)

๐Ÿ“Œ RDBMS

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ
-๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”(Table) ํ˜•ํƒœ๋กœ ์ €์žฅ
-ํ…Œ์ด๋ธ” ๊ฐ„ ๊ด€๊ณ„(Relation) ์„ค์ • ๊ฐ€๋Šฅ
-๋Œ€ํ‘œ์  RDBMS: MySQL, PostgreSQL, Oracle, SQL Server


1.4 SQL(Structured Query Language)

๐Ÿ“Œ SQL

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์†Œํ†ตํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์–ธ์–ด
-๋ฐ์ดํ„ฐ ์ •์˜(DDL): ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ์‚ญ์ œ, ์ˆ˜์ •
-๋ฐ์ดํ„ฐ ์กฐ์ž‘(DML): ๋ฐ์ดํ„ฐ ์กฐํšŒ, ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ
-๋ฐ์ดํ„ฐ ์ œ์–ด(DCL): ๊ถŒํ•œ ๊ด€๋ฆฌ, ํŠธ๋žœ์žญ์…˜ ์ œ์–ด


โœ… 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค์Šต

2.1 IntelliJ๋ฅผ ํ™œ์šฉํ•œ MySQL ์—ฐ๋™

1.IntelliJ์—์„œ Database Tool ์‚ฌ์šฉ
2.MySQL ์„œ๋ฒ„ ์ ‘์† ์„ค์ • (Host, Port, User, Password)
3.SQL Console ์—ด๊ธฐ โ†’ ์ง์ ‘ ์ฟผ๋ฆฌ ์ž‘์„ฑ ๊ฐ€๋Šฅ


2.2 SQL ๊ธฐ์ดˆ ์‹ค์Šต

๐Ÿ”น ๋ฐ์ดํ„ฐ ์กฐํšŒ: SELECT

-- ๋ชจ๋“  ์ปฌ๋Ÿผ ์กฐํšŒ
SELECT * FROM members;

-- ํŠน์ • ์ปฌ๋Ÿผ ์กฐํšŒ
SELECT name, age FROM members;

๐Ÿ”น ๋ฐ์ดํ„ฐ ์‚ฝ์ž…: INSERT

INSERT INTO members(name, age, email) 
VALUES('๊น€์„ธํ˜„', 26, 'shkim6663@naver.com');

๐Ÿ”น ๋ฐ์ดํ„ฐ ์ˆ˜์ •: UPDATE

UPDATE members
SET age = 26
WHERE name = '๊น€์„ธํ˜„';

๐Ÿ”น ๋ฐ์ดํ„ฐ ์‚ญ์ œ: DELETE

DELETE FROM members
WHERE name = '๊น€์„ธํ˜„';

๐Ÿ”น ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ดํ•ด

๊ตฌ์„ฑ ์š”์†Œ์„ค๋ช…
ํ…Œ์ด๋ธ”(Table)๋ฐ์ดํ„ฐ ์ €์žฅ ๋‹จ์œ„
ํ–‰(Row)ํ•œ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ
์—ด(Column)๋ฐ์ดํ„ฐ ์†์„ฑ
๊ธฐ๋ณธํ‚ค(PK)ํ…Œ์ด๋ธ”์—์„œ ๊ณ ์œ  ์‹๋ณ„์ž
์™ธ๋ž˜ํ‚ค(FK)๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ PK ์ฐธ์กฐ, ๊ด€๊ณ„ ์—ฐ๊ฒฐ

๐Ÿงฉ ์ •๋ฆฌ

-๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณผ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„
-๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)๋Š” ํ…Œ์ด๋ธ”๊ณผ ๊ด€๊ณ„๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ
-SQL์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ •์˜, ์กฐ์ž‘, ์ œ์–ด ๊ฐ€๋Šฅ
-๊ธฐ๋ณธํ‚ค/์™ธ๋ž˜ํ‚ค ๊ฐœ๋… ์ดํ•ด๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ๊ณผ ๊ด€๊ณ„ ์œ ์ง€์— ํ•„์ˆ˜
-IntelliJ์™€ MySQL ์—ฐ๋™์œผ๋กœ ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ• ๊ฐ€๋Šฅ

profile
๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ•œ ๊ฑธ์Œ

0๊ฐœ์˜ ๋Œ“๊ธ€