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

์ „์ฒด ๊ธ€77

[DBMS] ํŠธ๋žœ์žญ์…˜(Transaction)์ด๋ž€ ํŠธ๋žœ์žญ์…˜์ชผ๊ฐค ์ˆ˜ ์žˆ๋Š” ์—…๋ฌด์˜ ์ตœ์†Œ ๋‹จ์œ„๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—… ๋‹จ์œ„์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์€ SQL ์ฟผ๋ฆฌ๋ฌธ์„ ํ†ตํ•ด DB์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์œ„์— ์จ๋†“์€ ๊ฒƒ์„ ์ข€๋” ํ’€์–ด์„œ ์„ค๋ช…ํ•˜๋ฉด ์ž‘์—…๋‹จ์œ„๋ž€ ์ชผ๊ฐค ์ˆ˜ ์žˆ๋Š” ์—…๋ฌด์˜ ์ตœ์†Œ ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•˜๋Š”๋ฐ, ๊ทธ ์ž‘์—… ๋‹จ์œ„๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์‚ฌ๋žŒ์ด ์ •ํ•˜๋Š” ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋ฌถ์–ด๋†“์€ ๊ฒƒ์ด๋‹ค.๐Ÿ“Œ Ex)๊ฒŒ์‹œํŒ์„ ๊ตฌํ˜„ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.๊ฒŒ์‹œํŒ์— ๊ธ€์„ ์˜ฌ๋ฆฌ๊ณ , ๋‹ค์‹œ ๊ฒŒ์‹œํŒ ๋ฉ”์ธ์œผ๋กœ ๋Œ์•„์˜ค๋ฉด ๋‚ด๊ฐ€ ์˜ฌ๋ฆฐ ๊ธ€์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค.๊ทธ๋Ÿฌ๋ฉด ์ด ์ž‘์—…์„ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ SQL ์ž‘์—…์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.์˜ฌ๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค. : INSERT๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•˜๋Š” ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ €์žฅํ•œ๋‹ค.๊ฒŒ์‹œํŒ ์ƒˆ๋กœ ๊ตฌ์„ฑ: SELECT ๋ฌธ์œผ๋กœ ์ตœ์‹  ์ •๋ณด๋ฅผ ์œ ์ง€ํ•œ.. 2024. 9. 2.
Beyond SW 7๊ธฐ 15์ฃผ์ฐจ ํšŒ๊ณ ๋ก ๋งˆ์ง€๋ง‰ ํšŒ๊ณ ๊ฐ€ 11์ฃผ์ฐจ์ธ๋ฐ ์ด๋ฒˆ์ฃผ๊ฐ€ 15์ฃผ์ฐจ๋ผ๋‹ˆ... ๋‚˜ ์ •๋ง ์˜ค๋žซ๋™์•ˆ ํšŒ๊ณ ๋ฅผ ์•ˆ์ผ์—ˆ๊ตฌ๋‚˜...์˜ค๋Š˜์€ ์กฐ๊ธˆ ํŠน๋ณ„ํ•œ ๋ฐฉ์‹์œผ๋กœ ํšŒ๊ณ ๋ฅผ ์จ๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ์š”.๋ฐ”๋กœ ์ œ๊ฐ€ ์†ํ•œ ๋””ํ”„๋งŒ 1ํŒ€์ด ๋งŒ๋“  ํšŒ๊ณ  ์„œ๋น„์Šค "๋ ˆ์ด์–ด"๋ฅผ ํ†ตํ•ด์„œ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•ด๋ดค์Šต๋‹ˆ๋‹ค! ๋ ˆ์ด์–ด์—๋Š” ํšŒ๊ณ  ์ŠคํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐํ˜ผ์ž ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ธ ์ŠคํŽ˜์ด์Šค, ๊ทธ๋ฆฌ๊ณ  ํŒ€์›๋“ค๊ณผ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋Š” ํŒ€ ์ŠคํŽ˜์ด์Šค๋กœ ๋‚˜๋ˆ ์ ธ ์žˆ์Šต๋‹ˆ๋‹ท์šฐ์„  ๋‚ด ๊ฐœ์ธ ์ŠคํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๊ณ  QA ๊ฒธ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•ด๋ดค์Šต๋‹ˆ๋‹ค,,ใ…Žใ…Ž ๋ ˆ์ด์–ด์—๋Š” ํšŒ๊ณ  ํ…œํ”Œ๋ฆฟ์„ ์ถ”์ฒœํ•ด์ฃผ๊ธฐ๋„ ํ•˜๊ณ , ํ…œํ”Œ๋ฆฟ์„ ์ง์ ‘ ์„ ํƒํ•  ์ˆ˜๋„ ๋˜๋Š” ์ปค์Šคํ…€ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค์ˆ˜๋„ ์žˆ๋Š”๋ฐ์š”์ €๋Š” "์ง„ํ–‰ ์ƒํ™ฉ ์ ๊ฒ€", "๋ฐฐ์šด ์ " ๋“ฑ ์ƒํ™ฉ์„ ๊ฐ๊ด€์ ์œผ๋กœ ๋ฐ”๋ผ๋ณด๋Š” ๊ฒƒ์„ ๋„์™€์ฃผ๋Š” ์งˆ๋ฌธ๊ณผ"์ž‘์—…์„ ํ•˜๋ฉฐ ๋Š๋‚€ ๊ฐ์ •"์„ ๋ฌป๋Š” ๊ฐ์ •๊ณผ ๊ด€๋ จํ•œ.. 2024. 8. 25.
Beyond SW 7๊ธฐ 11์ฃผ์ฐจ ํšŒ๊ณ ๋ก ๋„ˆ๋ฌด ๊ณ ๋‹ฌํ”ˆ ์ฃผ๋ง์„ ๋ณด๋‚ด๋ฒ„๋ ค์„œ ์ด๋ฒˆ์ฃผ ํšŒ๊ณ ๋Š” ๋นก์„ธ๊ฒŒ ์“ฐ์ง€ ์•Š์„๋ž˜์š”…๋ถ€ํŠธ์บ ํ”„ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์–ด๋–ค ์„ฑ์žฅ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”์ง€?์ฒ˜์Œ ์จ๋ณธ ๊ธฐ๋Šฅ๋“ค์„ ๋น ๋ฅด๊ฒŒ ๋ถ™์—ฌ๋ณธ ๊ฒฝํ—˜STOMP, SSE๋ฅผ ์ด์šฉํ•œ ์ฑ„ํŒ…, SMTP๋ฅผ ์ด์šฉํ•œ ๋ฉ”์ผ ์ธ์ฆ ๋“ฑ๋“ฑ๋‹ค ์ฒ˜์Œ ์จ๋ณธ ๊ฒƒ๋“ค์ธ๋ฐ ์ผ์ฃผ์ผ๊ฐ„ ์ƒ๊ฐ๋ณด๋‹ค ์†๋„๊ฐ ์žˆ๊ฒŒ ๊ตฌํ˜„์„ ํ•œ๊ฒƒ ๊ฐ™์•„์š”.๋ฌผ๋ก  ์ธ์ฆ์ด ์™„์„ฑ๋œ ์ง€๊ธˆ, ์ธ์ฆ๊ณผ ๊ด€๋ จํ•œ ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ด์„œ ๋ณด์™„ํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์ง„์ •ํ•œ ์™„์„ฑ๊นŒ์ง€๋Š” ์•„๋‹ˆ๊ธด ํ•˜์ง€๋งŒ์š”.๋นจ๋ฆฌ ๋ณด์™„ํ•ด์„œ pr ๋ณด๋‚ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค!์—ฌ๋Ÿฌ ์š”์ฒญ ๋ฐ”๋”” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ณต์Šต์Šฌ๊ธฐ๋‹˜๊ณผ์˜ ์ ˆ๊ฑฐ์› ๋˜ ์ œ์ด์Šจ ์ƒํ•˜์ฐจ~๊ธˆ์š”์ผ ๋ฐค, ํ•™์›์ด ๋‹ซ๊ณ ๋„ 12์‹œ๊นŒ์ง€ ๋‘˜์ด ๋”๋จธ์ปคํ”ผ์—์„œ ์˜์ฐจ์˜์ฐจ ์ƒํ•˜์ฐจ ํ•˜๋‹ค๊ฐ€ ๊ฐ”์–ด์š”.์Šฌ๊ธฐ๋‹˜์ด ๋งก์œผ์‹  CRUD ๋ถ€๋ถ„์ด ์—„์ฒญ ๋ณต์žกํ•˜๋”๋ผ๊ณ ์š”.์—ฌ๋Ÿฌ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์—ฐ๊ด€๊ด€๊ณ„๋กœ ๋ง‰ ์—ฎ์—ฌ ์žˆ๊ธฐ๋„ ํ•˜๊ณ , ํŒŒ์ผ์ฒ˜๋ฆฌ.. 2024. 7. 28.
Beyond SW 7๊ธฐ 10์ฃผ์ฐจ ํšŒ๊ณ ๋ก ์ž ์ž๊ธฐ์ „ ํšŒ๊ณ  10๋ถ„ ์ปท ๋„์ „  ์‹คํŒจ!๋””ํ”„๋งŒ์—์„œ ํšŒ๊ณ  ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ 'ํšŒ๊ณ ๊ฐ€ ๊ผญ 4L, KPT ์ด๋Ÿฐ ์œ ๋ช…ํ•œ ์–‘์‹์— ๋งž์ถฐ ์“ธ ํ•„์š”์—†๊ณ , ์ง„์งœ ํšŒ๊ณ  ๊ณ ์ˆ˜๋“ค์€ ์ด๋ฏธ ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ์ปค์Šคํ…€ ํ…œํ”Œ๋ฆฟ์„ ์“ฐ๊ณ  ๊ณ„์‹œ๊ตฌ๋‚˜'๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ์ด๋ฒˆ์ฃผ๋Š” KPT๊ฐ€ ์•„๋‹Œ, ์ปค์Šคํ…€ ์งˆ๋ฌธ๋“ค๋กœ ํšŒ๊ณ ๋ฅผ ์จ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.1. ๋ถ€ํŠธ์บ ํ”„ ํ”„๋กœ์ ํŠธ์—์„œ ๋‚˜ ์ž์‹ ์—๊ฒŒ ์•„์‰ฌ์šด ์ ์ด ์žˆ์—ˆ๋Š”์ง€? ์žˆ์—ˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„์ง€๊ฐœ๋ฐœ ์ผ์ •์„ ๋” ๋นจ๋ฆฌ ์ถ”์ง„ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์ ๊ธˆ์š”์ผ์— ๋ฌธ๋“ '๋ฉฐ์น  ๋‚จ์•˜๋Š”์ง€ ๋…ธ์…˜์— ๋””๋ฐ์ด๋ฅผ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋Š”๋ฐ..?'๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๋งŒ๋“ค๊ณ  ๊นœ์ง ๋†€๋ผ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.์•„๋ž˜๋Š” ์ง€๊ธˆ(์ผ์š”์ผ)๊ธฐ์ค€์ด๊ฒŒ๋ญ์ง€..?์ข€๋” ๋นจ๋ฆฌ ๊ฐœ๋ฐœ์— ๋“ค์–ด๊ฐ”์–ด์•ผ ํ–ˆ๋‚˜..๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์–ด์š”.๋””๋ฐ์ด๋ฅผ ๋” ๋นจ๋ฆฌ ์ฒดํฌํ•ด๋ณผ๊ฑธ ํ›„ํšŒ๋์Šต๋‹ˆ๋‹ค.๋ถ€ํŠธ์บ ํ”„ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ์ด๋ฒˆ์ฃผ.. 2024. 7. 22.
Beyond SW 7๊ธฐ 9์ฃผ์ฐจ ํšŒ๊ณ ๋ก ๐Ÿ€ Keep๋งค์ผ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋กœ ํ• ์ผ ์ •๋ฆฌํ•˜๊ณ  ํ•ด์น˜์šฐ๋Š” ๊ฒƒ  ์ €๋Š” ๋„ํŒŒ๋ฏผ ์ค‘๋…์ž๋ผ์„œ ์ €๋ ‡๊ฒŒ ํƒœ์Šคํฌ๋ฅผ ์ž์ž˜ํ•˜๊ฒŒ ๋‚˜๋ˆ„๊ณ  ์ฒดํฌํ•˜๋ฉด์„œ ํ•ด์•ผ ์„ฑ์ทจ๊ฐ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์Œํ™•์‹คํžˆ ๋งค์ผ ํˆฌ๋‘๋ฅผ ์“ฐ๋ฉด ์•ˆ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค ์ž‘์—…, ๊ณต๋ถ€ํ• ๋•Œ ๋™๊ธฐ๋ถ€์—ฌ๋„ ๋˜๊ณ , ์ง„์ฒ™๋„๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค์ด ์Šต๊ด€์€ ๊ณ„์† ๊ฐ€์ ธ๊ฐ€์•ผ์ง€์ˆ˜๋ฉด ์•„์ฃผ ๊นŠ๊ฒŒ ์ทจํ•˜๊ณ  ์žˆ์Œ..์›๋ž˜ ๋ถˆ๋ฉด์ฆ ์ด์Šˆ ์žˆ์—ˆ๋Š”๋ฐ, ์š”์ฆ˜ ๋ญ”๊ฐ€ '๋ ๋Œ€๋กœ ๋˜๋ผ~'์‹ ๋งˆ์ธ๋“œ๊ฐ€ ๋ผ์„œ ๋ถˆ๋ฉด์ฆ์ด ์™„์น˜๋ผ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค..๋ช‡์ฃผ์ „๊นŒ์ง„ ๋„ˆ๋ฌด ํ”ผ๊ณคํ•ด์„œ ์ฃฝ์„๊ฒƒ ๊ฐ™์•„๋„ ์ž ์ด ์•ˆ์™”๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ๊ณ ์ณ์ ธ์„œ ์ข‹๊ธฐ๋Š”ํ•˜๋„ค์š”..์‚ด๋ฉด์„œ ๋ถˆ๋ฉด์ฆ ๊ฒช์€ ์ ์ด ์ž์ฃผ ์žˆ์—ˆ๋Š”๋ฐ ๊ณตํ†ต์ ์œผ๋กœ ๊ทธ ์‹œ๊ธฐ์— '๋‚ด์ผ ์ด๊ฒƒ๋„ ํ•ด์•ผ๋˜๊ณ  ์ €๊ฒƒ๋„ ํ•ด์•ผํ•˜๋Š”๋ฐ.. ์–ด๋–กํ•˜์ง€', '์˜ค๋Š˜ ๋ชป์ž๋ฉด ๋‚ด์ผ๋„ ๋’ค์ง€๊ฒŒ ํ”ผ๊ณคํ•˜๊ฒ ์ง€..' ์ด๋Ÿฐ์‹์˜ ๊ณ ๋ฏผ๊ณผ ๊ฑฑ์ •์„ ์—„์ฒญํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค์š”์ฆ˜๋„.. 2024. 7. 13.
[Java / ๋ฐฑ์ค€] 4781. ์‚ฌํƒ• ๊ฐ€๊ฒŒ ๋ฌธ์ œ ํ’€์ด์ด ๋ฌธ์ œ๋Š” knapsack์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ธ๋ฐ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ–‰์˜ ์ธ๋ฑ์Šค๋Š” ์‚ฌํƒ•์˜ ๋ฒˆํ˜ธ๋ฅผ, ์—ด์˜ ์ธ๋ฑ์Šค๋Š” ํ˜„์žฌ๊นŒ์ง€ ์“ด ๋น„์šฉ์„ ๋‚˜ํƒ€๋‚ด๋„๋ก ํ•˜๋Š” ๋ฐฐ์—ด์„ ์„ ์–ธํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ, ๋น„์šฉ์ด ์†Œ์ˆ˜ 2์ž๋ฆฌ๊นŒ์ง€ ์žˆ๋Š” ์‹ค์ˆ˜๋กœ ์ž…๋ ฅ๋˜๋ฏ€๋กœ, 100์„ ๊ณฑํ•ด์„œ ์ •์ˆ˜๋กœ ๋ฐ”๊ฟ”์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.์ฆ‰, n: ์‚ฌํƒ•์˜ ์ข…๋ฅ˜, m: ๋น„์šฉ, M: m์— 100์„ ๊ณฑํ•œ ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค๋ฉดdp[n][M]์—๋Š” n๋ฒˆ์งธ ์‚ฌํƒ•๊นŒ์ง€ ๊ณ ๋ คํ–ˆ์„ ๋•Œ, M์›์„ ์ผ์„ ๋•Œ์— ์ตœ๋Œ€ ์นผ๋กœ๋ฆฌ๊ฐ€ ๋‹ด๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 1. ์ž…๋ ฅ ๋ฐ›๊ธฐint n, m;StringTokenizer st = new StringTokenizer(br.readLine());n = Integer.parseInt(st.nextToken());m = (int)Math.r.. 2024. 7. 3.