๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[D+32] DB์ด์ƒํ˜„์ƒ, ์ •๊ทœํ™” ๊ตญ๋น„์ง€์› D+32 - DB์ด์ƒํ˜„์ƒ, ์ •๊ทœํ™” - DB์ด์ƒํ˜„์ƒ ์šฐ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•œ ๋ชจ๋ธ๋ง๊ณผ์ •์„ ๊ฑฐ์นœํ›„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ–ˆ์„๋•Œ ๊ณผ์—ฐ ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜ ๋Œ์•„๊ฐˆ๊นŒ? ์ •๋‹ต์€ ์•„๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ •๊ทœํ™”๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ •๊ทœํ™”๊ณผ์ •์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์•Œ์•„๋ณด๊ธฐ ์ „์— ์ •๊ทœํ™”๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์œผ๋ฉด ์–ด๋– ํ•œ ์ด์ƒํ˜„์ƒ์ด ๋ฐœ์ƒ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž. • DB ์ด์ƒํ˜„์ƒ (DB Anomaly) - ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹ ์„ ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒ๋˜๋Š” ๋ถ€์ž‘์šฉ์ด๋‹ค. - DB๋ฅผ ๋งŒ๋“ค๋•Œ ์ œ๋Œ€๋กœ ์ •๊ทœํ™” ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๋‹ค. - ์‚ฝ์ž…์ด์ƒ : ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์‹œ ์›์น˜ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์ด ๋„ฃ์–ด์•ผ ํ•˜๋Š” ์ด์ƒํ˜„์ƒ์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ด€๊ณ„๋ฅผ ์ž˜๋ชป ๋งบ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. - ์‚ญ์ œ์ด์ƒ : ๋ฐ์ดํ„ฐ ์‚ญ์ œ์‹œ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๊ฐ™์ด ์‚ญ์ œ๋˜๋Š” ์ด์ƒํ˜„์ƒ - ๊ฐฑ์‹ .. 2022. 11. 7.
[D+31] JOIN, ๋ชจ๋ธ๋ง ๊ตญ๋น„์ง€์› D+31 - JOIN, ๋ชจ๋ธ๋ง - JOIN - ๋‘˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์—ฐ์‚ฐ - ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์น˜๋Š” ์—ฐ์‚ฐ • JOIN์˜ ํ•„์š”์„ฑ ๋งŒ์•ฝ ๋‚ด๊ฐ€ ์ฑ…๊ณผ ์ž‘๊ฐ€๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ด€๋ จ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜๋กœ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ฑ…์—๋Œ€ํ•œ ์ •๋ณด์™€ ์ž‘๊ฐ€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ปฌ๋Ÿผ์œผ๋กœ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„๋•Œ ์œ„์™€๊ฐ™์€ ๊ตฌ์„ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ž๋ฃŒํ˜•๊ณผ ์ œ์•ฝ์กฐ๊ฑด์„ ํ†ตํ•ด์„œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์™„์„ฑ๋˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ํ…Œ์ด๋ธ”์€ ํ‹€๋ฆฐ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋ช‡๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค. ์ผ๋‹จ ํ•œ ์ž‘๊ฐ€๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ฑ…์„ ์ผ์„ ๊ฒฝ์šฐ์— ์ž‘๊ฐ€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ค‘๋ณต๋˜์–ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋กœ์ธํ•ด ์ถ”ํ›„์— ์ž‘๊ฐ€์˜ ์ •๋ณด๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฒฝ์šฐ ์ผ์ผํžˆ ๋ณ€.. 2022. 11. 4.
[D+30] DB ์™ธ๋ž˜ํ‚ค, ๊ทธ๋ฃนํ•‘, DB๊ฐœ๋… ๊ตญ๋น„์ง€์› D+30 - DB ์™ธ๋ž˜ํ‚ค, ๊ทธ๋ฃนํ•‘, DB๊ฐœ๋… - DB ์™ธ๋ž˜ํ‚ค ์™ธ๋ž˜ํ‚ค๋Š” ๋‚ด ํ…Œ์ด๋ธ”๊ณผ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ํ‚ค์ด๋‹ค. ๋งŒ์•ฝ ์™ธ๋ž˜ํ‚ค๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ๋งŽ์•„์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ถ”ํ›„์— ์ˆ˜์ •๋œ ๋ฐ์ดํ„ฐ๋กœ์ธํ•ด ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๋‹ค. ํ…Œ์ด๋ธ”์„ ๋ฌดํ„ฑ๋Œ€๊ณ  ๋งŒ๋“ค๊ฒŒ ๋  ๊ฒฝ์šฐ ๊ณต๊ฐ„๋‚ญ๋น„์™€ ๋ฐ์ดํ„ฐ์˜ ๊ฒฐํ•จ์ด ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ž˜ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ž˜ํ‚ค์˜ ์กด์žฌ๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. -- ํ…Œ์ด๋ธ” ์ƒ์„ฑ create table usertbl -- ํšŒ์›ํ…Œ์ด๋ธ” ( userID char(20) not null primary key, name varchar(20) not null, birthYear int not null, a.. 2022. 11. 3.
[D+29] DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ, ์กฐํšŒ, ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ตญ๋น„์ง€์› D+29 - DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ, ์กฐํšŒ, ์„œ๋ธŒ์ฟผ๋ฆฌ - DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ 1. create - table์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. - table ์ƒ์„ฑ์‹œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ง€์ •ํ•ด์ค€๋‹ค. - ์ •๋ณด๋ฅผ ์ €์žฅํ•  ํ‘œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. -- ํ…Œ์ด๋ธ” ์ƒ์„ฑ create table usertbl -- ํšŒ์›ํ…Œ์ด๋ธ” ( userID char(20) not null primary key,-- ์•„์ด๋”” name varchar(20) not null,-- ์ด๋ฆ„ birthYear int not null,-- ์ƒ๋…„ addr char(2) not null,-- ์ง€์—ญ mobile1 char(3),-- ๊ตญ๋ฒˆ mobile2 char(8),-- ์ „ํ™”๋ฒˆํ˜ธ height smallint,-- ํ‚ค mDate da.. 2022. 11. 2.
[D+28] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Database Algorithm - ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค Database - ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค Database • ๋ฐ์ดํ„ฐ Data ๋ฐ์ดํ„ฐ๋Š” ์›์ž์„ฑ์„ ๊ฐ€์ง€๋Š” ์ •๋ณด๋‹จ์œ„๋กœ ์ด๋•Œ์˜ ์ •๋ณด๋‹จ์œ„๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ์ฃผ๊ด€์ ์ธ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ›์•„์˜ฌ๋•Œ ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ์ „์ฒด๋ฅผ ์š”๊ตฌํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋ˆ„๊ตฐ๊ฐ€๋Š” ์•ž๋ถ€๋ถ„์ด๋‚˜ ๋’ท๋ถ€๋ถ„๋งŒ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ง์ธ ์ฆ‰, ๋ฌด์—‡์ด ๋งž๊ณ  ํ‹€๋ฆฌ๊ณ ๊ฐ€ ์•„๋‹ˆ๋ผ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ์„œ ์š”๊ตฌํ•˜๋Š” ์ •๋ณด๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋ฉด ๊ทธ ์ž์ฒด๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค. • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Database ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•ด ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์ธ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•ด์„œ ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ธกํ• ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ˜„.. 2022. 11. 1.
[D+27] ์ฝ”๋”ฉ ๋ฐ์ด ๊ตญ๋น„์ง€์› D+27 - ์ฝ”๋”ฉ๋ฐ์ด - ์ฝ”๋”ฉ๋ฐ์ด Q) ๊ตฌ์ฒดํ™”๋œ Linked List๋ฅผ ์™„์„ฑํ•ด๋ณด์‹œ์˜ค. • Main.java public class Main { public static void main(String[] args) { ListContainer list = new ListContainer(); list.insertNode(new Node(0, "0")); list.insertNode(new Node(1, "11")); list.insertNode(new Node(0, "22")); list.insertNode(new Node(1, "33")); list.insertNode(new Node(0, "44")); list.deleteNodeByIntValue(0); System.out.println(li.. 2022. 10. 30.