Background - /etc/passwd ํ์ผ ์ด ํ์ผ์์๋ ์ฌ์ฉ์ ์ด๋ฆ, ์ํธ, ๊ทธ๋ฃน ๋ฑ์ ์ ๋ณด๋ฅผ ๋ค๋ฃฌ๋ค. tail -5 /etc/passwd ๋ช ๋ น์ด๋ก ํด๋น ํ์ผ์ ๋ง์ง๋ง 5ํ์ ์ถ๋ ฅํด ๋ณด์๋ค. ํ์ผ ๋ด์ฉ์ด ์๋ฏธํ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ฌ์ฉ์์ด๋ฆ : ์ํธ : UID : GID : ๊ทธ ์ธ ์ ๋ณด : ํ ๋๋ ํ ๋ฆฌ : ์ ธ (UID, GID๋ ๊ฐ๊ฐ ์ฌ์ฉ์ ์์ด๋, ๊ทธ๋ฃน ์์ด๋์ ์ฝ์) cf) adduser ๋ช ๋ น์ด๋ก ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ ๋ ๋ฐ๋ก UID์ GID๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด ์ด์ ์ฌ์ฉ์์ ์์ด๋์ +1ํ ๊ฐ์ผ๋ก ์ค์ ๋๋ค. ๊ถ๊ธ์ฆ ์ ํ์ผ์ ๋ณด๋ค๊ฐ ๊ถ๊ธํด์ง๊ฑด๋ฐ root์ uid๋ ํญ์ 0์ธ๊ฒ ๊ฐ๋ค. ํ .. ๊ทธ๋ ๋ค๋ฉด ์๋ ๊ผญ 0์ผ๊น? ์๋๋ฉด ๋ฐ๊ฟ ์ ์์๊น? ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฅ uid=0์ธ์ ๋ก ์ ๊ทผํ๋ฉด ๋ฃจํธ ๋ฐ๋ธ๊ฒ๊ณผ ๋..
๋ฐ๋ ๋ฒจ์ด๋ ๊ทธ์ ์ด๋ค ๋ชจ๋๋ก ์ปดํจํฐ๋ฅผ ์์ํ ๊น?์ ๊ดํ ๋ด์ฉ์ด๋ผ๊ณ ๋ณด๋ฉด๋๋ค. ์๋ฅผ ๋ค์ด init ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ ๋์๋ /etc/inittab๋ผ๋ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ฝ์ ํ ์ค์ ๋ ๋ฐ๋ ๋ฒจ์ ๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ค. ๋ฌด์จ ๋ฐ๋ ๋ฒจ๋ค์ด ์๋์ง ํ์ธํด๋ณด์ /lib/systemd/system ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ ํ "runlevel?.target"ํ์์ผ๋ก ๋์ด ์๋ ํ์ผ๋ค์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํด๋ณด์. ์ ๊ทธ๋ฆผ์ฒ๋ผ runlevel0๋ถํฐ runlevel6๊น์ง ์ถ๋ ฅ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. runlevel?.target ํ์ผ๋ค์ ๋ชจ๋ ๋งํฌํ์ผ๋ก ๋ค๋ฅธ ํ๊นํ์ผ์ ์ฐ๊ฒฐ๋์ด์๋ค. ์ฐธ๊ณ ๋ก ๋๋ init์ด ์๋๋ผ systemd๋ฅผ ์ฌ์ฉํ๋ ํ๊ฒฝ์์๋ runlevel์ด๋ผ๋ ์ฉ์ด๊ฐ ๊ณ์ํด์ ์ฐ์ด๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ๋ฐ๋ ๋ฒจ๊ณผ target..
URI URI(Uniform Resource Identifier)๋ ์์์ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด์ด๋ค. ์์์ ์นํ์ด์ง, ์ฌ์ง์ด๋ html ํ์ผ, ๋์์ ๋ฑ ์ธํฐ๋ท์์ ๊ฐ์ ธ์ฌ ์ ์๋ ๋ฐ์ดํฐ ๋ฌด์์ด๋ ๋ ์ ์๋ค. URI๋ ์ด์ ๊ทธ ์์์ ๊ฐ๋ฆฌํค๋ ์๋ณ์์ด๋ค. ์์์ ์ด๋ฆ์ผ๋ก ๋ํ๋ผ ์๋ ์๊ณ ๊ทธ ์์์ ์์น๋ก ๋ํ๋ผ ์๋ ์๋ค. URI Syntex URI๋ scheme, authority(userinfo), path, query ๊ทธ๋ฆฌ๊ณ fragment๋ก ์ด๋ฃจ์ด์ ธ์๋ค. The generic URI syntax consists of a hierarchical sequence of components referred to as the scheme, authority, path, query, and fragment...
์ด ํฌ์คํธ๋ ์ธํ๋ฐ์ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ๊ธฐ๋ณธ ์ง์์ด๋ผ๋ ๊ฐ์๋ฅผ ์ฐธ๊ณ ๋ก ์์ฑํ์๋ค. ์ฌ๊ธฐ์ ๋ค๋ฃจ๋ ๋ด์ฉ์ ๊ต์ฅํ ๊ธฐ์ด์ด๊ธฐ ๋๋ฌธ์ ๋์ถฉ ์น์ด ์ด๋ ๊ฒ ํ๋ฌ๊ฐ๊ตฌ๋~๋ผ๋ ์ ๋๋ก ์ดํดํ๋ฉด๋๋ค. ์ธํฐ๋ท ํต์ ์ธํฐ๋ท์์ ์ปดํจํฐ ๋์ ์ด๋ป๊ฒ ํต์ ํ ๊น? ์น์์ ์ปดํจํฐ ๋๋๊ฐ ํต์ ์ ํ๋ค๊ณ ํ์. ์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๊ฐ ์นํฌํธ์ฌ์ดํธ์ ์ ์ํ๋ ์ํฉ์ ๊ฐ์ ํด๋ณด์. ์ด๋ ํฌํธ์ฌ์ดํธ์ ์ ๋ณด๋ฅผ ์์ฒญํ๋ ์ปดํจํฐ์ ํฌํธ์ฌ์ดํธ ์ ๋ณด๋ฅผ ์ฐ๋ฆฌ์๊ฒ ์ฃผ๋ ์ปดํจํฐ ์ด๋ ๊ฒ ๋ถ๋ฅํ ์ ์์ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ ๋ณด๋ฅผ ์์ฒญํ๋ ์ปดํจํฐ๋ฅผ ํด๋ผ์ด์ธํธ, ์ ๋ณด๋ฅผ ์ ๊ณตํด์ฃผ๋ ์ปดํจํฐ๋ฅผ ์๋ฒ๋ผ๊ณ ๋ณผ ์ ์๋ค. ์น์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ HTTP ์๋ต ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ํ์์ผ๋ก ํต์ ์ด ์ด๋ฃจ์ด์ง๋ค. ํ์ง๋ง ์ธ์..
๐ก๊ฐ๋ ์ดํดํ๊ธฐ ์ค๋์ ๋๊ธฐ์ ์ ์ถ๋ ฅ๊ณผ ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ์ ๋ํ์ฌ ์์๋ณผ ๊ฒ์ด๋ค. ๋จผ์ ๋๊ธฐ์, ๋น๋๊ธฐ์ ์ด์๋ถํฐ ์ดํด๋ณด์. ๋๊ธฐ์์ ์์ด๋ก Synchronized์ธ๋ฐ, ๋ฑ๋ฑ ์๊ฐ์ ๋ง์ถฐ์ง๋ค๋ ์๋ฏธ์ด๋ค. ์๋ฅผ ๋ค์ด ๋ฆฝ์ฑํฌ์์ ์ฑํฌ๋ Sync์ด๋ค. ์ ๋ชจ์๊ณผ ๋ ธ๋ ์๋ฆฌ๋ฅผ ์๊ฐ์ ๋ง์ถ๋ ๊ฒ์ด๋ ๋ฆฝ'์ฑํฌ'๋ผ๊ณ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด IO์์ synchronize ๋์ด์๋ค๋ ๊ฒ์ ๋ฌด์จ ์๋ฏธ์ผ๊น? ์๋ ๊ทธ๋ฆผ์ ๋ณด์. ๋๊ธฐ์ ์ ์ถ๋ ฅ (Synchronized IO)๋ ์์ฐจ์ ์ผ๋ก ์ ์ถ๋ ฅ์ด ์ฒ๋ฆฌ๋๊ณ ์๊ณ , ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ (Asynchronized IO)์์๋ ์์๋ฅผ ์งํค์ง ์์์ฑ ์ฒ๋ฆฌ๋๊ณ ์๋ค. ์ด์ ๊ฐ์ด ์์๋ฅผ ์ง์ผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๊ธฐ์ (Synchronized), ๊ทธ๊ฒ์ ๋ณด์ฅํด์ฃผ์ง ์๋ ๊ฒ์ ๋น๋๊ธฐ์ (Asynchrono..
์ค๋ ๋(Thread)๋? ์ค๋ ๋(Thread)๋ ํ๋ก์ธ์ค(Process) ์์์ ์ค์ ๋ก ์์ ์ ์ํํ๊ณ ์๋ ํ๋์ ์ฃผ์ฒด์ด๋ค. ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ (์ฐธ๊ณ : [๐ฅ๏ธ Computer Science/OS] - [OS] ํ๋ก์ธ์ค vs ํ๋ก๊ทธ๋จ)์ด๋ผ๋ฉด, ์ค๋ ๋๋ ํ๋ก์ธ์ค ์์์ ์งํ๋๋ ์คํ์ ํ๋ฆ์ด๋ค. ์ค๋ ๋๋ ์ค์ง ํ ํ๋ก์ธ์ค ์์๋ง ์ํด์๋ค. ์ค๋ ๋๋ ํ๋ก์ธ์ค์ ํน์ง์ ์ง๋๊ธฐ ๋๋ฌธ์ ๊ฒฝ๋ ํ๋ก์ธ์ค(lightweight process)๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๊ธฐ๋ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ํ๋ก์ธ์ค๋ง ์ฌ์ฉํ๋ฉด ๋์ง ์ค๋ ๋๊น์ง ๊ท์ฐฎ๊ฒ ๋ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ๊ฒ์ผ๊น? ์์๋ฅผ ๋ค์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. (์ด ์์๋ ์ธํ๋ ๋ธ๋ก๊ทธ์ ์ค๋ช ์ ์ฐธ๊ณ ํ์์์ ๋ฐํ๋ค.) ์๋ฅผ ๋ค์ด ํฌ๋กฌ์ด๋ผ๋ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์๋ค๊ณ ํ์. ์ด..