๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (28)

JUINTINATION

ํ”„๋กœ์„ธ์Šค์™€ ์Šค์ผ€์ค„๋ง

ํ”„๋กœ์„ธ์Šค(Process)๋ž€? ํ”„๋กœ์„ธ์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์„ธ์„œ(์ฒ˜๋ฆฌ๊ธฐ, CPU)์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋Š” ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•˜๋ฉฐ ์ž‘์—…(Job), ํƒœ์Šคํฌ(Task)๋ผ๊ณ ๋„ ํ•œ๋‹ค. ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํ˜•ํƒœ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. PCB๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋žจ ์‹ค๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ์„ธ์„œ๊ฐ€ ํ• ๋‹น๋˜๋Š” ์‹ค์ฒด๋กœ์„œ ๋””์ŠคํŒจ์น˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„ ํ”„๋กœ์‹œ์ €๊ฐ€ ํ™œ๋™์ค‘์ธ ๊ฒƒ ๋น„๋™๊ธฐ์  ํ–‰์œ„๋ฅผ ์ผ์œผํ‚ค๋Š” ์ฃผ์ฒด ์ง€์ •๋œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ๊ณ„ํ†ต์  ๋™์ž‘ ๋ชฉ์  ๋˜๋Š” ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ฐœ์ƒ๋˜๋Š” ์‚ฌ๊ฑด๋“ค์˜ ๊ณผ์ • ์šด์˜์ฒด์ œ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์‹คํ–‰ ๋‹จ์œ„ PCB(Process Control Block, ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก) PCB๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•ด ๋†“๋Š” ๊ณณ์œผ๋กœ ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๊ณ ์œ ์˜ PCB๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ œ๊ฑฐ๋œ๋‹ค. ..

์šด์˜์ฒด์ œ(Operating System)

์šด์˜์ฒด์ œ(OS)๋ž€? ์šด์˜์ฒด์ œ๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ์ž„์ด๋‹ค. ์‚ฌ์šฉ์ž์™€ ํ•˜๋“œ์›จ์–ด ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ์„œ ๋™์ž‘ํ•˜๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ผ์ข…์œผ๋กœ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์œ ์šฉํ•œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์ฃผ๋ฉฐ ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ ๊ฐ„์˜ ํŽธ๋ฆฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต ์‹œ์Šคํ…œ์˜ ๊ฐ์ข… ํ•˜๋“œ์›จ์–ด์™€ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ ๋ฐ ์ œ์–ด ์‹œ์Šคํ…œ์˜ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ ๋ฐ ๋ณต๊ตฌ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์Šค์ผ€์ค„๋ง ๊ธฐ๋Šฅ ์ œ๊ณต ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋ฐ ์ž์›์˜ ๊ณต์œ  ๊ธฐ๋Šฅ ์ œ๊ณต ์ž์› ๋ณดํ˜ธ ๊ธฐ๋Šฅ ์ œ๊ณต ์ž…์ถœ๋ ฅ์— ๋Œ€ํ•œ ๋ณด์กฐ ๊ธฐ๋Šฅ ์ œ๊ณต ๊ฐ€์ƒ ๊ณ„์‚ฐ๊ธฐ ๊ธฐ๋Šฅ ์ œ๊ณต ์šด์˜์ฒด์ œ ์„ฑ๋Šฅ ํ‰๊ฐ€ ๊ธฐ์ค€ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ(Throughput) ์ผ์ • ..

๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ(Batch Program)

๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์ด๋ž€? ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ ์—†์ด ์—ฌ๋Ÿฌ ์ž‘์—…๋“ค์„ ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ์ผ๋ จ์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ผ๊ด„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์ฃผ๊ธฐ์— ๋”ฐ๋ผ ์ •๊ธฐ ๋ฐฐ์น˜, ์ด๋ฒคํŠธ์„ฑ ๋ฐฐ์น˜, On-Demand ๋ฐฐ์น˜๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ์ •๊ธฐ ๋ฐฐ์น˜ ์ผ, ์ฃผ, ์›”๊ณผ ๊ฐ™์ด ์ •ํ•ด์ง„ ๊ธฐ๊ฐ„์— ์ •๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค. ์ด๋ฒคํŠธ์„ฑ ๋ฐฐ์น˜ ํŠน์ • ์กฐ๊ฑด์„ ์„ค์ •ํ•ด๋‘๊ณ  ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๋งŒ ์ˆ˜ํ–‰๋œ๋‹ค. On-Demand ๋ฐฐ์น˜ ์‚ฌ์šฉ์ž ์š”์ฒญ ์‹œ ์ˆ˜ํ–‰๋œ๋‹ค. ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ–์ถ”์–ด์•ผ ํ•˜๋Š” ํ•„์ˆ˜ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐํ•˜๋Š” ๋“ฑ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. ์ž๋™ํ™” ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ž… ์—†์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ฒฌ๊ณ ์„ฑ ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๋‚˜ ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋“ฑ์˜..

SQL ํ…Œ์ŠคํŠธ์™€ ์ฟผ๋ฆฌ ์ตœ์ ํ™”

SQL ํ…Œ์ŠคํŠธ SQL ํ…Œ์ŠคํŠธ๋Š” SQL์ด ์ž‘์„ฑ ์˜๋„์— ๋งž๊ฒŒ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ๋‹จ๋ฌธ SQL์€ SQL ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„๋‹จํžˆ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ ˆ์ฐจํ˜• SQL์€ ํ…Œ์ŠคํŠธ ์ „์— ์ƒ์„ฑ์„ ํ†ตํ•ด ๊ตฌ๋ฌธ ์˜ค๋ฅ˜(Syntax Error)๋‚˜ ์ฐธ์กฐ ์˜ค๋ฅ˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ๋œ ์ ˆ์ฐจํ˜• SQL์€ ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ๋กœ์ง์„ ๊ฒ€์ฆํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด ์ตœ์ข…์ ์œผ๋กœ ํ™•์ธํ•œ๋‹ค. ๋‹จ๋ฌธ SQL ํ…Œ์ŠคํŠธ ๋‹จ๋ฌธ SQL ํ…Œ์ŠคํŠธ๋Š” DDL, DML, DCL์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” SQL๊ณผ TCL(ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๋Š” COMMIT, ROLLBACK, SAVEPOINT ๋ช…๋ น)์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ง์ ‘ ์‹คํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฌผ์„ ํ™•์ธํ•œ๋‹ค. DESCRIBE ๋˜๋Š” DESC [๊ฐœ์ฒด๋ช…] ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด DDL๋กœ ์ž‘์„ฑ๋œ ํ…Œ์ด๋ธ”..

DBMS์™€ ORM

DBMS ์ ‘์† DBMS๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๋“ค์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋„๊ตฌ์˜ ์ง‘ํ•ฉ์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” DBMS์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด API ๋˜๋Š” API์˜ ์‚ฌ์šฉ์„ ํŽธ๋ฆฌํ•˜๊ธฐ ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์‘์šฉ ์‹œ์Šคํ…œ์€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ SQL์„ ์‹คํ–‰ํ•˜๊ณ  DBMS๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋งค๊ฐœ์ฒด ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๊ตฌ๋™๋˜๋Š” ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์›น ์‘์šฉ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด DBMS์— ์ ‘๊ทผํ•œ๋‹ค. ์›น ์‘์šฉ ์‹œ์Šคํ…œ์€ ์›น ์„œ๋ฒ„์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์„œ๋น„์Šค ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ ์›น ์„œ๋ฒ„์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋งŒ์œผ๋กœ ์šด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์›น ์‘์šฉ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์›น ์„œ..

ํŠธ๋žœ์žญ์…˜ ๋ฐ CRUD ๋ถ„์„

ํŠธ๋žœ์žญ์…˜(Transaction)์ด๋ž€? ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„ ๋˜๋Š” ํ•œ๊บผ๋ฒˆ์— ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์ผ๋ จ์˜ ์—ฐ์‚ฐ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ๋ณ‘ํ–‰ ์ œ์–ด ๋ฐ ํšŒ๋ณต ์ž‘์—… ์‹œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ํŠธ๋žœ์žญ์…˜์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ์š”๊ตฌ ์‹œ ์‹œ์Šคํ…œ์ด ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•œ ์ƒํƒœ ๋ณ€ํ™˜ ๊ณผ์ •์˜ ์ž‘์—… ๋‹จ์œ„๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ ๋‹ค์Œ์€ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ(Integrity)์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด DBMS์˜ ํŠธ๋žœ์žญ์…˜์ด ๊ฐ€์ ธ์•ผ ํ•  ํŠน์„ฑ์ด๋‹ค. Atomicity(์›์ž์„ฑ) ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๋„๋ก Commit ๋˜๊ฑฐ๋‚˜ ์ „ํ˜• ๋ฐ˜์˜๋˜์ง€ ์•Š๋„๋ก Rollback ๋˜์–ด์•ผ ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋ชจ๋“  ๋ช…๋ น์€ ๋ฐ˜๋“œ์‹œ ์ˆ˜ํ–‰๋˜..