๐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. ์ด์ 1 2 3 4 5 6 ๋ค์