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

๐Ÿ“ŒCS49

[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์™€ ์„ฑ๋Šฅ DBMS ํƒ„์ƒ ๋ฐฐ๊ฒฝ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ด์ „์— ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ๊ฐ์˜ ํŒŒ์ผ ๋‹จ์œ„(๋ ˆ์ฝ”๋“œ)๋กœ ์ €์žฅํ•˜๋ฉฐ ์ด๋Ÿฌํ•œ ์ผ๋“ค์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋…๋ฆฝ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ ์—ฐ๋™์ด ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ, ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ๋Š” ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์— ํ‘œํ˜„๋˜๋ฏ€๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์˜์กด๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋˜์–ด ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ, ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ์ •์˜๊ฐ€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋‚ดํฌ๋˜์–ด ์žˆ๊ณ  ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๊ณ  ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ ์ด์™ธ์— ๋ณ„๋„์˜ ์ œ์–ด๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ, ํŒŒ์ผ ๋‹จ์œ„๋กœ ์ €์žฅํ• ๋•Œ, ๋ฐ์ดํ„ฐ ์ข…์†์„ฑ ๋ฌธ์ œ์™€ ์ค‘๋ณต์„ฑ, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ ๋“ฑ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.. 2021. 8. 4.
[Web] Web Server ์™€ WAS์˜ ์ฐจ์ด Web Server ์›น ๋ธŒ๋ผ์šฐ์ € ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์ •์ ์ธ ์ปจํ…์ธ (.html .jpeg .css ๋“ฑ)๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ์›น ํฌ๋กค๋Ÿฌ)์˜ ์š”์ฒญ์„ ์„œ๋น„์Šค ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•œ๋‹ค. ์ •์ ์ธ ์ฝ˜ํ…์ธ  ์ œ๊ณต : WAS๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ž์› ์ œ๊ณต ๋™์ ์ธ ์ปจํ…์ธ  ์ œ๊ณต์„ ์œ„ํ•œ ์š”์ฒญ ์ „๋‹ฌ : ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ WAS์— ๋ณด๋‚ด๊ณ , WAS๊ฐ€ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ(์‘๋‹ต)ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ € ex) Apache Server, Nginx, IIS(Windows ์ „์šฉ Web ์„œ๋ฒ„) ๋“ฑ ์—”์ง„์—‘์Šค๋Š” ์•„ํŒŒ์น˜์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ. ์•„ํŒŒ์น˜๋Š” C10K Problem์ด๋ผ๊ณ  ํ•ด์„œ ํ•˜๋‚˜์˜ ์›น์„œ๋ฒ„์— 10,000๊ฐœ์˜.. 2021. 8. 4.
[Web] GET๊ณผ POST ์ฐจ์ด GET ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋ฉ”์†Œ๋“œ ์š”์ฒญ์„ ์ „์†กํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ Body์— ๋‹ด์ง€ ์•Š๊ณ , query string์„ ํ†ตํ•ด ์ „์†กํ•œ๋‹ค. ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด ์š”์ฒญ์ด ์บ์‹œ๋  ์ˆ˜ ์žˆ๋‹ค. js, css, ์ด๋ฏธ์ง€ ๊ฐ™์€ ์ •์  ์ปจํ…์ธ ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํฌ๊ณ , ๋ณ€๊ฒฝ๋  ์ผ์ด ์ ์–ด ๋ฐ˜๋ณตํ•ด์„œ ๋™์ผํ•œ ์š”์ฒญ์„ ๋ณด๋‚ผ ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ •์  ์ปจํ…์ธ ๋ฅผ ์š”์ฒญํ•˜๊ณ ๋‚˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์— ์š”์ฒญ์„ ์บ์‹œํ•ด๋‘๊ณ  ๋™์ผํ•œ ์š”์ฒญ์ด ์™”์„ ๋•Œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ URL์— ๋‚˜ํƒ€๋‚˜๋ฏ€๋กœ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค. POST ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ/๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋ฉ”์†Œ๋“œ ์š”์ฒญ์„ ์ „์†กํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ Body์— ๋‹ด์•„์„œ ์ „์†กํ•œ๋‹ค. HTTP ๋ฉ”์„ธ์ง€์˜ Body๋Š” ๊ธธ์ด์˜ ์ œํ•œ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ GET๊ณผ ๋‹ฌ๋ฆฌ.. 2021. 8. 3.
[OS] ๋ธ”๋Ÿญ/๋…ผ๋ธ”๋Ÿญ, ๋™๊ธฐ/๋น„๋™๊ธฐ ๋ธ”๋Ÿญ / ๋…ผ๋ธ”๋Ÿญ ํ•จ์ˆ˜ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋œ๋‹ค. ๋ธ”๋ก ํ•จ์ˆ˜ A๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ, ํ•จ์ˆ˜ A์˜ ์ˆ˜ํ–‰์ด ๋ชจ๋‘ ๋๋‚  ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค(๋ธ”๋ก). ํ•จ์ˆ˜A์˜ ์ˆ˜ํ–‰์ด ๋ชจ๋‘ ๋๋‚˜๊ณ  ๋ฆฌํ„ด๋˜๋ฉด, ํ•จ์ˆ˜A๋ฅผ ํ˜ธ์ถœํ•œ ๋ถ€๋ถ„์˜ ๋‹ค์Œ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ด์–ด์„œ ์‹คํ–‰ํ•œ๋‹ค. ๋…ผ๋ธ”๋ก ํ•จ์ˆ˜A๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ, ํ•จ์ˆ˜A์˜ ์‹คํ–‰์„ ์š”์ฒญํ•˜๊ณ  ๋ฐ”๋กœ ๋ฆฌํ„ด๋œ๋‹ค(๋…ผ๋ธ”๋ก). ๋™๊ธฐ / ๋น„๋™๊ธฐ ํ–‰์œ„์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์ด๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ตฌ๋ถ„๋˜์ง€ ์•Š๋Š”๋‹ค. ์ถ”์ƒ์ ์ธ ๊ตฌ๋ถ„์ด๋‹ค. ์ž‘์—…A์™€ ์ž‘์—…B๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๋™๊ธฐ ์ž‘์—…A๊ฐ€ ๋จผ์ € ๋ชจ๋‘ ์ฒ˜๋ฆฌ๋˜๊ณ  ๋‚˜์„œ ์ž‘์—… B๊ฐ€ ์ฒ˜๋ฆฌ๋˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด(ํ•˜๋‚˜์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉด) ๋™๊ธฐ์ด๋‹ค. ์ž‘์—…A๊ฐ€ ์ž‘์—…B๋ฅผ ๊ด€์ฐฐํ•˜๋Š” ์ž‘์—…์ด๋ผ๋ฉด, ์ž‘์—…A์™€ ์ž‘์—…B๊ฐ€ ๋™์‹œ์— ์ฒ˜๋ฆฌ๋˜๋”๋ผ๋„ ๋™๊ธฐ์ด๋‹ค. (์—ฌ๊ธฐ์„œ ์ž‘์—…A์™€ ์ž‘์—…B๋ฅผ ์„œ๋กœ ๋ฐ”๊พธ์–ด ์ƒ๊ฐํ•ด๋„ ๋˜‘๊ฐ™๋‹ค.) '๊ด€์ฐฐ.. 2021. 7. 28.
[OS] ์ƒํ˜ธ๋ฐฐ์ œ ๋ฐฉ๋ฒ• : ๋ฎคํ…์Šค, ์„ธ๋งˆํฌ์–ด, ๋ชจ๋‹ˆํ„ฐ ์ƒํ˜ธ ๋ฐฐ์ œ(mutual exclusion) ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ณต์œ  ๋ถˆ๊ฐ€๋Šฅํ•œ ์ž์›์˜ ๋™์‹œ ์‚ฌ์šฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ์ž„๊ณ„ ๊ตฌ์—ญ์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” ์ฝ”๋“œ ์˜์—ญ์— ์˜ํ•ด ๊ตฌํ˜„๋œ๋‹ค. = ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ์ž์›์„ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ ‘๊ทผ์„ ๋ง‰๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐ์ปค ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํ”ผ์ปค์Šจ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ œ๊ณผ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒํ˜ธ๋ฐฐ์ œ๋Š” ๊ต์ฐฉ์ƒํƒœ์˜ 4๊ฐ€์ง€ ํ•„์š”์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 1. ์ƒํ˜ธ๋ฐฐ์ œ - ๋ฐฐํƒ€์  ํ†ต์ œ๊ถŒ(๋™์‹œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€) 2. ์ ์œ ๋Œ€๊ธฐ - ํ• ๋‹น๋œ ์ž์›์„ ๊ฐ€์ง„ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ž์›์„ ๊ธฐ๋‹ค๋ฆผ 3. ๋น„์„ ์  - ์ž์›์„ ๋บ์„ ์ˆ˜ ์—†์Œ 4. ์ˆœํ™˜๋Œ€๊ธฐ - ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์ˆœํ™˜์ ์œผ๋กœ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ž์›์„ ๊ฐ–๊ณ  ์žˆ์Œ ๊ต์ฐฉ ์ƒํƒœ์™€ ๊ธฐ์•„ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ต์ฐฉ ์ƒํƒœ(Deadlock) : ๋ฌดํ•œ ๋Œ€๊ธฐ ๊ธฐ์•„ ์ƒํƒœ(Starv.. 2021. 5. 2.
[OS] ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  ๋ฐฉ๋ฒ•(Inter Process Communication, IPC) ๊ฐœ๋… ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์˜ ์˜์‚ฌ์†Œํ†ตํ•˜๋Š” ๊ฒƒ์„ IPC๋ผ๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋ฉฐ, ๋™์‹œ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฆ‰, ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๋œป์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ†ต์‹ ์˜ ์ผ์ข…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ณ , ์ธํ„ฐ๋„ท ํ†ต์‹ ์„ IPC์˜ ํ™•์žฅ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹ ์ด ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ํ†ต์‹ ๊ณผ ์œ ์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ) ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด 'ํŒŒ์ดํ”„'์™€ ๊ฐ™์€ ๊ฐœ๋…์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๐Ÿ’ก ์Šค๋ ˆ๋“œ ๊ฐ„ ํ†ต์‹ ๋ณด๋‹ค ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์ด ์–ด๋ ค์šด ์ด์œ  ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค. ์šฐ๋ฆฌ๋Š” fork์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ pthread_create์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋กœ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐ.. 2021. 5. 2.
[DB] ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ ์„ค์ • ๊ฐœ๋… Spring์—์„œ ์‚ฌ์šฉํ•˜๋Š” '@Transactional'์€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์•ˆ์—์„œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋•Œ ํŠธ๋žœ์žญ์…˜ ๋‚ด๋ถ€์—์„œ ํŠธ๋žœ์žญ์…˜์„ ๋˜ ํ˜ธ์ถœํ•œ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋  ์ˆ˜๋„ ์žˆ๊ณ , ์ด๋ฏธ ํŠธ๋žœ์žญ์…˜์ด ์žˆ๋‹ค๋ฉด ๋ถ€๋ชจ ํŠธ๋žœ์žญ์…˜์— ํ•ฉ๋ฅ˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š” ํŠธ๋žœ์žญ์…˜์—์„œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ํ˜ธ์ถœ๋  ๋•Œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ์ •ํ•˜๋Š” ๊ฒƒ์„ 'ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ ์„ค์ •'์ด๋ผ ํ•œ๋‹ค. ์ „ํŒŒ ์„ค์ • ์˜ต์…˜ ํŠธ๋žœ์žญ์…˜์˜ ์ „ํŒŒ ์„ค์ •์€ '@Transactional'์˜ ์˜ต์…˜ 'propagation'์„ ํ†ตํ•ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. REQUIRED (๊ธฐ๋ณธ๊ฐ’) ๋ถ€๋ชจ ํŠธ๋žœ์žญ์…˜์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๋ถ€๋ชจ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ํ•ฉ๋ฅ˜ ๋ถ€๋ชจ ํŠธ๋žœ์žญ์…˜์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒˆ๋กœ์šด ํŠธ๋žœ์žญ์…˜์„ ์ƒ์„ฑ ์ค‘๊ฐ„์— ๋กค๋ฐฑ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๋ชจ๋‘ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด๊ธฐ.. 2021. 5. 2.
[Design Pattern] ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด(Adapter Pattern) ๊ฐœ๋… ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ถˆ์ผ์น˜๋ฅผ ํ•ด๊ฒฐํ•ด์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ. ํ˜ธํ™˜์„ฑ์ด ์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋•Œ๋ฌธ์— ํ•จ๊ป˜ ๋™์ž‘ํ•  ์ˆ˜ ์—†๋Š” ํด๋ž˜์Šค๋“ค์ด ํ•จ๊ป˜ ๋™์ž‘ํ•˜๋„๋ก ํ•ด์ค€๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ํด๋ผ์ด์–ธํŠธ์—์„œ ํƒ€๊ฒŸ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•จ์œผ๋กœ์จ ์–ด๋Œ‘ํ„ฐ์— ์š”์ฒญ์„ ํ•œ๋‹ค. ์–ด๋Œ‘ํ„ฐ์—์„œ๋Š” ์–ด๋Œ‘ํ‹ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ ์š”์ฒญ์„ ์–ด๋Œ‘ํ‹ฐ์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ํ˜ธ์ถœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๊ธด ํ•˜์ง€๋งŒ ์ค‘๊ฐ„์— ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๊ปด ์žˆ๋Š”์ง€๋Š” ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค. ์žฅ์  ์ธํ„ฐํŽ˜์ด์Šค ๋ถˆ์ผ์น˜ ํ•ด๊ฒฐ ํด๋ผ์ด์–ธํŠธ์™€ ๊ตฌํ˜„๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ถ„๋ฆฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ํ–ฅํ›„ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ฐ”๋€Œ๋”๋ผ๋„ ๋ณ€๊ฒฝ ๋‚ด์—ญ์€ ์–ด๋Œ‘ํ„ฐ์— ์บก์Šํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ”๋€” ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ข…๋ฅ˜ ๊ฐ์ฒด ์–ด๋Œ‘ํ„ฐ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด์˜ .. 2021. 5. 2.
CSRF(Cross-site Request Forgery) ๊ณต๊ฒฉ ๊ฐœ๋… Cross-site Request Forgery(์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ)์˜ ์•ฝ์–ด๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์˜์ง€์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ณต๊ฒฉ์ž๊ฐ€ ์˜๋„ํ•œ ํ–‰๋™์„ ํ•ด์„œ ํŠน์ • ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์˜ ์ž‘์—…์„ ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•. ๊ณต๊ฒฉ ๋‚œ์ด๋„๊ฐ€ ๋†’์ง€ ์•Š์•„ ํ”ํžˆ ์‚ฌ์šฉ๋œ๋‹ค. XSS์„ ์ด์šฉํ•œ ๊ณต๊ฒฉ์ด ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์›น์‚ฌ์ดํŠธ๋ฅผ ์‹ ์šฉํ•˜๋Š” ์ ์„ ๋…ธ๋ฆฐ ๊ฒƒ์ด๋ผ๋ฉด, CSRF๋Š” ํŠน์ • ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹ ์šฉํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋…ธ๋ฆฐ ๊ฒƒ์ด๋‹ค. ๊ณต๊ฒฉ ๊ณผ์ • ๋งŒ์ผ, ์›น ํŽ˜์ด์ง€๊ฐ€ ๋…์ž์  ๊ฐœ๋ฐœ์ด ์•„๋‹Œ ์™ธ๋ถ€์—์„œ ์ด๋ฏธ ๊ฐœ๋ฐœ๋œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์„œ ์กฐ๊ธˆ ์ˆ˜์ •ํ•œ ๊ฒƒ์ด๋ผ๋ฉด, ๊ณต๊ฒฉ์ž๋Š” ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ํ•ด๋‹น ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋งคํ•˜์—ฌ ๊ฐœ์ธ ์„œ๋ฒ„์— ์„ค์น˜ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ์— ๊ณต๊ฒฉ ๊ฐ€๋Šฅ ํŒจํ„ด์„ ๋ถ„์„ํ•œ๋‹ค. ์ฃผ๋กœ ๊ณต๊ฒฉ์ž๋“ค์ด ์ฐพ๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž ํŒจ์Šค์›Œ.. 2021. 4. 25.