STUDY ๐Ÿ“š/CS

์‚ฌ์ „ ์ง€์‹ ์ž„๊ณ„ ๊ตฌ์—ญ(Critical section) : ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ์‹คํ–‰๋˜๋Š” ์ƒํ™ฉ์—์„œ ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก์„ ์˜๋ฏธ ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋จ ์ฆ‰, ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผ ์ž์›์„ ๋™์‹œ์— ์ฐธ์กฐํ•˜์—ฌ ๊ฐ’(๊ณต์œ ํ•˜๋Š” ๋ณ€์ˆ˜๋ช…, ํŒŒ์ผ ๋“ฑ)์ด ์˜ค์—ผ๋  ์œ„ํ—˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์˜์—ญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ, ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์ž„๊ณ„์˜์—ญ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ์„ค๊ณ„๋ฅผ ํ•ด์•ผ ํ•จ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œ์„ ๋‘๋Š” ๋™๊ธฐํ™” ๋ฐฉ์‹์„ ์ทจํ•ด์•ผ ํ•จ ๋™๊ธฐํ™” ๋„๊ตฌ์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ฎคํ…์Šค(Mutex)์™€ ์„ธ๋งˆํฌ์–ด(Semaphore)๊ฐ€ ์žˆ์Œ ์ด๋“ค์€ ๋ชจ๋‘ ๊ณต์œ ๋œ ์ž์›์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ/ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์—ญํ• ์„ ํ•จ ๋ฎค..
CPU ์Šค์ผ€์ค„๋ง์ด๋ž€? ํ”„๋กœ์„ธ์Šค๋Š” ์ƒ์„ฑ๋œ ํ›„ ์—ฌ๋Ÿฌ ์ƒํƒœ๋ฅผ ๊ฑฐ์นจ (์ƒ์„ฑ, ์ค€๋น„, ์‹คํ–‰, ์™„๋ฃŒ, ๋Œ€๊ธฐ ์ƒํƒœ) ์ด๋•Œ, ์šด์˜์ฒด์ œ์˜ CPU ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์ค€๋น„ ์ƒํƒœ์˜ ํ”„๋กœ์„ธ์Šค ์ค‘์—์„œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ํ• ๋‹นํ• ์ง€ ๊ฒฐ์ •ํ•ด์•ผํ•จ! ์ด ๊ณผ์ •์„ CPU ์Šค์ผ€์ค„๋ง์ด๋ผ ํ•จ โžก๏ธ CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ์„œ ํ”„๋กœ์„ธ์Šค์—์„œ ํ•ด์•ผ ํ•˜๋Š” ์ผ์„ ์Šค๋ ˆ๋“œ ๋‹จ์œ„๋กœ CPU์— ํ• ๋‹น CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ชฉํ‘œ : CPU ์ด์šฉ๋ฅ ์€ ๋†’๊ฒŒ, ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ๋งŽ์€ ์ผ์„ ํ•˜๊ฒŒ, ์ค€๋น„ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์ ๊ฒŒ, ์‘๋‹ต์‹œ๊ฐ„์€ ์งง๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข…๋ฅ˜ CPU ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์–ธ์ œ ์Šค์ผ€์ค„๋ง์„ ๊ฒฐ์ •ํ• ๊นŒ? 1) ์‹คํ–‰์ƒํƒœ์—์„œ ๋Œ€๊ธฐ์ƒํƒœ๋กœ ์ „ํ™˜๋  ๋•Œ 2) ์‹คํ–‰์ƒํƒœ์—์„œ ์ค€๋น„์ƒํƒœ๋กœ ์ „ํ™˜๋  ๋•Œ 3) ๋Œ€๊ธฐ์ƒํƒœ์—์„œ ์ค€๋น„์ƒํƒœ๋กœ ์ „ํ™˜๋  ๋•Œ 4) ์ข…๋ฃŒ๋  ๋•Œ ..
MVC ํŒจํ„ด : ๋ชจ๋ธ(Model), ๋ทฐ(view), ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋กœ ์ด๋ฃจ์–ด์ง„ ๋””์ž์ธ ํŒจํ„ด → ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ธ ๊ฐ€์ง€ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ ์š”์†Œ์—๋งŒ ์ง‘์ค‘ํ•ด์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ ์žฅ์ : ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ™•์ •์„ฑ์ด ์šฉ์ดํ•จ ๋‹จ์ : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ๊ด€๊ณ„๋„ ๋ณต์žกํ•ด์ง ๋ชจ๋ธ : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ƒ์ˆ˜, ๋ณ€์ˆ˜ ๋“ฑ์„ ๋œปํ•จ ๐Ÿ’ก ex) ์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ๋ฐ•์Šค ์•ˆ์— ๊ธ€์ž๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ๋ฐ•์Šค ์œ„์น˜ ์ •๋ณด, ๊ธ€์ž ๋‚ด์šฉ, ๊ธ€์ž ์œ„์น˜, ๊ธ€์ž ํฌ๋งท์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•จ. → ๋ทฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฐฑ์‹ ํ•จ ๋ทฐ : ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด(UI)์„ ๋œปํ•จ → inp..
SOLID ๋ž€? → ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์‹œ ์ง€์ผœ์•ผ ํ•˜๋Š” ์„ค๊ณ„ ์›์น™ 5๊ฐ€์ง€๋ฅผ ์ค„์—ฌ์„œ ๋ถ€๋ฆ„ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์ด ์šฉ์ดํ•œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ณ ์ž ํ•  ๋•Œ ์ ์šฉํ•˜๋Š” ์›์น™ ์žฅ์ : ์œ ์—ฐ์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์•„์ง 1) ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ SRP : ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•˜๊ณ  ํด๋ž˜์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ด์œ ๋„ ๋‹จ ํ•˜๋‚˜์—ฌ์•ผ ํ•œ๋‹ค. ์ง€ํ‚ค์ง€ ์•Š์„ ์‹œ, ํ•œ ์ฑ…์ž„์˜ ๋ณ€๊ฒฝ์— ์˜ํ•ด์„œ ๋‹ค๋ฅธ ์ฑ…์ž„๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๊ฒŒ ๋จ ์ฑ…์ž„ = ๊ธฐ๋Šฅ ํ•œ ํด๋ž˜์Šค๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด, ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ํ•จ์ˆ˜์—์„œ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ง ์‘์ง‘๋„๋Š” ๋†’๊ณ  ๊ฒฐํ•ฉ๋„๋Š” ๋‚ฎ์€ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ํ•ต์‹ฌ ์ฑ…์ž„์„ ์ž˜๊ฒŒ ์ชผ๊ฐœ์–ด ๋ถ„๋ฆฌ์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ์Œ ex) A ๋ผ๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๊ณ , A ๋ฉ”์†Œ๋“œ๋Š” ..
๐Ÿ’ก ๋””์ž์ธ ํŒจํ„ด์ด๋ž€?: ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ํ•  ๋•Œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์ ๋“ค์„ ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ ๊ด€๊ณ„ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋‚˜์˜ ๊ทœ์•ฝ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ๋†“์€ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค! ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด : ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด์ด๋‹ค. ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐœ๋ณ„์ ์ธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹จ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœ์ง์„ ๋งŒ๋“œ๋Š” ๋ฐ ์“ฐ์ด๋ฉฐ, ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค! ์žฅ์  ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ๊ณต์œ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์„ฑํ•  ๋•Œ ๋น„์šฉ์ด ์ ๊ฒŒ ์ฆ˜ ๋‹จ์  ๋ชจ๋“ˆ ๊ฐ„ ๊ฒฐํ•ฉ์„ ๊ฐ•ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์˜์กด์„ฑ(์ข…์†์„ฑ)์ด ๋†’์•„์ง TDD๋ฅผ ํ•  ๋•Œ ๊ฑธ๋ฆผ๋Œ์ด ๋จ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์„œ๋กœ..
์ฟ ํ‚ค : ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š”Key-Value์Œ์˜ ์ž‘์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์—์„œ ๊ฐ’์„ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐ’์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค. ๊ฐ ๋ธŒ๋ผ์šฐ์ € ๋ณ„๋กœ ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ๋ณ„๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์ •๋ณด๋Š” ์ฟ ํ‚ค์— ์ €์žฅํ•ด๋„ ๋œ๋‹ค. JSESSIONID ๋Š” ์ค‘์š”ํ•œ ์ •๋ณด์ด์ง€๋งŒ ๊ตฌ์กฐ์ƒ ์–ด์ฉ” ์ˆ˜ ์—†์ด ์ฟ ํ‚ค์— ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค. JSESSIONID ๋Š” ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์กฐ์ž‘์„ ํ•˜๋”๋ผ๋„ ๋ณธ์ธ๋งŒ ์†ํ•ด์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ณดํ†ต์€ ์กฐ์ž‘์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์„ธ์…˜ : ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์œ ์ง€ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ  ์„œ๋ฒ„์—์„œ๋งŒ ๊ฐ’์„ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐ’์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋ณด์•ˆ์„ฑ์ด ์ข‹๋‹ค. ๊ฐ ๋ธŒ๋ผ์šฐ์ € ๋ณ„๋กœ ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ์ค‘์š”ํ•œ ์ •๋ณด๋Š” ์„ธ์…˜์— ์ €..
๋ชจ๋“ˆํ™” : ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋‚˜๋ˆˆ ๊ฒƒ ๋ชฉ์ ์— ๋งž๋Š” ๊ธฐ๋Šฅ๋“ค๋กœ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ชจ๋“ˆํ™”! ๋ชจ๋“ˆ : ๋ชจ๋“ˆํ™”๋กœ ๋‚˜๋ˆ ์ง„ ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๊ฒƒ ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๊ณ , ๋‹ค๋ฅธ ๋ชจ๋“ˆ๊ณผ๋Š” ์—ฐ๊ด€๋„๊ฐ€ ์ ์–ด์•ผ์ง€ ์ข‹์€ ๊ฒƒ ์‘์ง‘๋„๋Š” ๋†’๊ฒŒ, ๊ฒฐํ•ฉ๋„๋Š” ๋‚ฎ๊ฒŒ ๊ฒฐํ•ฉ๋„ : ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“ˆ ๊ฐ„์— ์—ฐ๊ด€๋œ ๊ด€๊ณ„, ๊ฐ„๋‹จํ•  ์ผ๋งŒ ์ฃผ๊ณ  ๋ฐ›๊ธฐ Java์—์„œ๋Š” class ๊ฐ„์— ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’๋‹ค = ์—ฐ๊ด€๋„๊ฐ€ ๋†’๋‹ค ๋กœ ํŒ๋‹จ. ํ•ด๋‹น class๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์—ฐ๊ด€๋œ class๋„ ๋ณ€๊ฒฝํ•˜๊ธฐ. ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ class์—์„œ๋„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ํž˜๋“ฌ ์‘์ง‘๋„ : ํ•œ ๋ชจ๋“ˆ ๋‚ด๋ถ€ ์•ˆ ์ฒ˜๋ฆฌ ์š”์†Œ๋“ค ๊ฐ„์— ๊ด€๊ณ„, ์‘์ง‘๋„๊ฐ€ ๋‚ฎ์œผ๋ฉด ์žฌ์‚ฌ์šฉ๊ณผ ์ดํ•ด๊ฐ€ ํž˜๋“ฌ
daxx0ne
'STUDY ๐Ÿ“š/CS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก