๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€77

[๋ฐฑ์ค€ / Java] 2477. ์ฐธ์™ธ๋ฐญ ๋ฌธ์ œ ํ’€์ด1. ํด๋ž˜์Šค, ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ์ž…๋ ฅ ๋ฐ›๊ธฐLine์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•ด์ค๋‹ˆ๋‹ค.Line ํด๋ž˜์Šค์—๋Š” ์„ ์˜ ๊ธธ์ด์™€ ๋ฐฉํ–ฅ์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. static ArrayList lines; static class Line { int len; int direction; Line(int direction, int len) { this.len = len; this.direction = direction; } } K = Integer.parseInt(br.readLine()); for(int i=0; i 2. ๊ฐ€๋กœ, ์„ธ๋กœ์—์„œ ๊ฐ€์žฅ ๊ธด ๋ณ€ ๊ตฌํ•˜๊ธฐ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ๋„ํ˜•์€ ํ•ญ์ƒ ใ„ฑ ์„ ํšŒ์ „์‹œํ‚จ ๋ชจ์–‘์ด๋ฏ€๋กœ, ํฐ ์ง์‚ฌ๊ฐํ˜•์—์„œ ์ž‘์€ ์ง์‚ฌ๊ฐํ˜•์ด ๋น ์ง„ ๋ชจ์–‘์ž…๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ ํฐ ์ง์‚ฌ๊ฐํ˜•์˜.. 2024. 5. 28.
Beyond SW 7๊ธฐ 2์ฃผ์ฐจ ํšŒ๊ณ ๋ก ๋ถ€์ œ: ๋‚œ ๋Œ€ํ•™์‹œ์ ˆ ๋ธ”๋กœ๊ทธ๋ฅผ ์ „๊ณตํ–ˆ๋‹จ ์‚ฌ์•„์‹ค๋ฒŒ์จ 2์ฃผ์ฐจ๊ฐ€ ๋๋‚ฌ๋‹ค๋‹ˆ.. ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๊ฐ€๋Š”๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ์„ ์ •๋„๋กœ ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.2์ฃผ์ฐจ ํšŒ๊ณ ๋ก ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!๐Ÿ€ ์ข‹์•˜๋˜ ์ ๋ ˆ๋””์Šค ๋ฐฐ์šฐ๋ฉด์„œ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•  ํฌ์ธํŠธ๋ฅผ ์ƒ๊ฐํ•œ ์ ๋ ˆ๋””์Šค๋ฅผ ๋ฐฐ์šฐ๋ฉด์„œ ์ œ๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•  ํฌ์ธํŠธ๊ฐ€ ๋งŽ๋‹ค๊ณ  ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.์ˆ˜์—…์—์„œ ๋“ค์€ ๋‚ด์šฉ๋“ค์„ ์•ž์œผ๋กœ ์ œ ํ”„๋กœ์ ํŠธ์— ๋ฐ˜์˜ํ•ด ๋ณด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.๋ ˆ๋””์Šค๋กœ ์žฌ๊ณ  ๊ด€๋ฆฌ: ํ˜„์žฌ ์ œ ํ”„์ ์—์„œ๋Š” ์žฌ๊ณ ๋ฅผ ๊ทธ๋ƒฅ MariaDB์— ์ €์žฅํ•ด๋†“๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (MVCC๋‹ˆ๊นŒ ํŠธ๋žœ์žญ์…˜ ๊ฑธ๊ณ  ๋™์‹œ์— ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋‚˜์ค‘์— ๊ณ ์นœ์• ๊ฐ€ ๋กค๋ฐฑ๋˜๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ๋†”๋‘” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.) ํ•˜์ง€๋งŒ ๋ ˆ๋””์Šค๋กœ ์žฌ๊ณ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š”๊ฒŒ ํ›จ์”ฌ ์„ฑ๋Šฅ์ด ์ข‹๊ณ  ๊ฑฐ์˜ ๋™์‹œ์— ์ฃผ๋ฌธ์„ ํ•ด๋„ ํ•˜๋‚˜๊ฐ€ ๋กค๋ฐฑ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†์œผ๋‹ˆ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์—๋„ ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™์•„ ๋ ˆ.. 2024. 5. 26.
[Beyond SW / 7์ผ์ฐจ ๋ณต์Šต - 2] ์ •๊ทœํ˜•, DB Dump ์‹ค์Šต ์ •๊ทœํ™”์ •๊ทœํ™”๋ž€ ๊ด€๊ณ„ํ˜• ์Šคํ‚ค๋งˆ๋ฅผ ๋” ์ข‹์€ ๊ตฌ์กฐ๋กœ ์ •์ œํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.์ด ํฌ์ŠคํŠธ์—์„œ๋Š” 1, 2, 3์ฐจ ์ •๊ทœํ˜•์— ๋Œ€ํ•ด์„œ๋งŒ ๋‹ค๋ค„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.  1์ฐจ ์ •๊ทœํ™”(๋„๋ฉ”์ธ ๋ถ„ํ•ด)๋ชจ๋“  ์ปฌ๋Ÿผ์ด ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ๊ฐ–๋„๋ก ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค๋ฉด, ๊ทธ ์„ค๊ณ„๋Š” 1์ฐจ ์ •๊ทœํ˜•์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.์ฆ‰ ์•„๋ž˜์™€ ๊ฐ™์€ ์„ค๊ณ„๋Š” 1์ฐจ ์ •๊ทœํ™”๊ฐ€ ๋˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.์‚ฌ์ง„ ์ถœ์ฒ˜: https://www.youtube.com/watch?v=FYDHJbIwm5Y์ด๋Ÿฐ ๊ฒฝ์šฐ, topic ํ…Œ์ด๋ธ”๊ณผ tag ํ…Œ์ด๋ธ”์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , topic๊ณผ tag ์‚ฌ์ด์— ์ •์…˜ ํ…Œ์ด๋ธ”(๊ต์ฐจ ํ…Œ์ด๋ธ”)์„ ์ถ”๊ฐ€ํ•ด์คŒ์œผ๋กœ์จ ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ์ด ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ๊ฐ€์ง€๋„๋ก ํ’€์–ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  2์ฐจ ์ •๊ทœํ™”(๋ถ€๋ถ„ ์ข…์† ์ œ๊ฑฐ)๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ์™„์ „ ํ•จ์ˆ˜ ์ข…์†๋œ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.์ฆ‰,.. 2024. 5. 26.
[Beyond SW / 7์ผ์ฐจ ๋ณต์Šต - 1] ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด๋ž€ ๊ตฌ์ถ•ํ•  DB ๊ตฌ์กฐ๋ฅผ ์•ฝ์†๋œ ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•ด ํ‘œํ˜„ํ•˜๊ณ  ์„ค๊ณ„ํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜ ๋‹จ๊ณ„๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์‹œ๊ฐํ™”์ด ๋‹จ๊ณ„๋Š” ์ถ”์ƒํ™”๋œ DB ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.์‚ฌ๊ฐํ˜•: ์—”ํ„ฐํ‹ฐ์›: ์†์„ฑ๋งˆ๋ฆ„๋ชจ: ๊ด€๊ณ„๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง๊ตฌ์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.๊ฐ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…, ๊ด€๊ณ„, key ๋“ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.erd cloud, draw.io, mysql ์›Œํฌ๋ฒค์น˜ ๋“ฑ์˜ ํˆด์„ ์จ์„œ ERD๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์—”ํ„ฐํ‹ฐ: (์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋‹ค๋ฅด์ง€๋งŒ,) DB์˜ ํ•œ ํ…Œ์ด๋ธ”์„ ์—”ํ„ฐํ‹ฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.ERD: ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.DB ์„ค๊ณ„์—์„œ ๊ฐ€์žฅ.. 2024. 5. 22.
Beyond SW 7๊ธฐ 1์ฃผ์ฐจ ํšŒ๊ณ ๋ก ๋ถ€์ œ: ์ „๊ณต์ž๊ฐ€ MariaDB์— enumํƒ€์ž…์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฒ˜์Œ ์•Œ์•˜๋‹ค๋ฉด ๋ฏฟ์œผ์‹œ๊ฒ ๋‚˜์š”..Beyond SW 7๊ธฐ 1์ฃผ์ฐจ๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.์ž…๊ณผ ์ธํ„ฐ๋ทฐํ•œ๊ฒŒ ์—Š๊ทธ์ œ ๊ฐ™์€๋ฐ ์‹œ๊ฐ„์ด ์ •๋ง ๋น ๋ฅด๋„ค์š”.๊ทธ๋Ÿผ 1์ฃผ์ฐจ ํšŒ๊ณ ๋ก ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!๐Ÿ€ ์ข‹์•˜๋˜ ์ Beyond SW ์บ ํ”„์— ๋Œ€ํ•ด๋Œ€๋ฉด ๋ถ€ํŠธ์บ ํ”„์ธ ๊ฒƒ์ด๊ฒŒ ์ •๋ง ํฐ ์žฅ์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.์•„์ง ์งˆ๋ฌธ์„ ๋“œ๋ฆฐ ์ ์€ ์—†๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์งˆ๋ฌธ๋„ ๋ฐ”๋กœ๋ฐ”๋กœ ๋“œ๋ฆด ์ˆ˜๊ฐ€ ์žˆ๊ณ , ์‹ค์Šต ์ค‘์— ๋ญ”๊ฐ€ ์ด์Šˆ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์—„์ฒญ ์ž˜ ๋„์™€์ฃผ์…”์„œ ๋ชจ๋“  ์ˆ˜๊ฐ•์ƒ์ด ์ง„๋„๋ฅผ ์ž˜ ๋”ฐ๋ผ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ํ™•์‹คํžˆ ๋Œ€๋ฉด์ด๋‹ค ๋ณด๋‹ˆ, ๊ฐ™์€ ๊ธฐ์ˆ˜๋ถ„๋“ค๊ณผ ๋นจ๋ฆฌ ์นœํ•ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.์•„์ง 1์ฃผ์ฐจ๋ผ ์กฐ์šฉํ•œ ํŽธ์ด๊ธด ํ•˜์ง€๋งŒ, ๋‹ค์Œ์ฃผ? ๋‹ค๋‹ค์Œ์ฃผ?์— ์ฒซ ํŒ€ํ”Œ์ด ์‹œ์ž‘๋˜๋ฉด ๋‹ค๋ฅธ ๋ถ„๋“ค๊ณผ ๋” ๋งŽ์ด ์–˜๊ธฐํ•˜๊ณ  ๋” ๋งŽ์ด ์นœํ•ด์งˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค... 2024. 5. 19.
[DBMS] ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ(isolation level) ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ์ด๋ž€?ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ(isolation level)์ด๋ž€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์ฒ˜๋ฆฌ๋  ๋•Œ, ํŠธ๋žœ์žญ์…˜๋ผ๋ฆฌ ์–ผ๋งˆ๋‚˜ ์„œ๋กœ ๊ณ ๋ฆฝ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.์ฆ‰ ๋‹ค๋ฅด๊ฒŒ ๋งํ•˜๋ฉด โญ๏ธ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ฒ˜๋ฆฌ๋  ๋•Œ, ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ—ˆ์šฉํ• ์ง€ ๋ง์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์—๋Š” ์•„๋ž˜ 4๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE์•„๋ž˜๋กœ ๊ฐˆ์ˆ˜๋ก ํŠธ๋žœ์žญ์…˜ ๊ฐ„์˜ ๊ณ ๋ฆฝ ์ •๋„๊ฐ€ ๋†’์•„์ง€๊ณ  ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ READ COMMITED๋‚˜ REPEATABLE READ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.(๋Œ€ํ‘œ์ ์œผ๋กœ mysql, mariadb๋Š” REPEATABLE.. 2024. 5. 18.