๐ค philosopher : ๋์์ฑ(Concurrency)์ ๋ ๊ฐ์ง ๋์ , ๊ต์ฐฉ์ํ์ ๊ฒฝ์์ํ
๋์์ฑ.
์ปดํจํฐ ๊ณตํ์ ๋ฐฐ์ฐ๋ฉด์, ๊ทธ๋ฆฌ๊ณ ์ค์ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒ ๋๋ฉด ํนํ๋ ๊ณ ๋ฏผ๋๋ ์์ญ์ด๋ค. ๋ง์ฐํ ๋ก๋ง ๊ฐ์ ํค์๋๋ก, ์ด๊ฑธ ํ์ฉํ๋ฉด ์ ๋ง ๋ง๋ ์๋๊ฒ ์ฑ๋ฅ์ด ์ข์์ง ๊ฒ ๊ฐ๋ค๋, ๊ทธ๋ฐ ์๊ฐ. ๊ทธ๋ฐ ๋ก๋ง์ ์คํํ๋ ๊ณผ์ ๋ผ๋ ์ ์ ์๊ฒ ๋์์ ๋ ํ๊ป ์ ์ด ๋ฌ์๋ค. ๋ฌผ๋ก ๋์ฐํ๋จ๊ฑด ์ด์ ์ผ์์ด๋ค
so_long์ด ํ๋ก๊ทธ๋จ์ ์ํ๋ฅผ ์๊ฐ์ ์ธ๊ณ๋ก ํ์ฅํ๋ ๊ฒฝํ์ด์๋ค๋ฉด, philosopher๋ ๋์ ๋ณด์ด์ง ์๋ ์๊ฐ์ ์ถ ์์์ ์ฌ๋ฌ ์คํ ํ๋ฆ์ด ์ฝํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ , ์ฆ ๋์์ฑ(Concurrency)์ ์ฌ์ฐ์ ๋ค์ฌ๋ค๋ณด๋ ๊ณผ์ ๋ค.
์ด ํ๋ก์ ํธ๋ ์ปดํจํฐ ๊ณผํ์ ๊ณ ์ ์ ์ธ โ์์ฌํ๋ ์ฒ ํ์๋คโ ๋ฌธ์ ๋ฅผ ํตํด, ํ๋ ๋ฉํฐ์ฝ์ด ํ๊ฒฝ์์ ๋์ํ๋ ๋ชจ๋ ์ํํธ์จ์ด๊ฐ ํ์ฐ์ ์ผ๋ก ๋ง์ฃผํ๋ ๋ ๊ฐ์ง ํต์ฌ ๋์ ๋ฅผ ์ฐ๋ฆฌ ์์ ์ ์ํ๋ค:
์์ ๊ฒฝ์(Resource Competition)๊ณผ ์คํ ํ๋ฆ์ ๋๊ธฐํ(Synchronization).
์ด ๊ณผ์ ๋ ๋จ์ํ ์ค๋ ๋์ ๋ฎคํ ์ค API๋ฅผ ์ฌ์ฉํ๋ ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋์ด์ ๋ค.
์ ๋๊ธฐํ๊ฐ ํ์ํ์ง, ์๋ชป๋ ๋๊ธฐํ๊ฐ ์ด๋ป๊ฒ ์์คํ ์ ์ฒด๋ฅผ ๋ง๋น์ํค๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ต์ฐฉ์ํ์ ๊ฒฝ์์ํ๋ผ๋ ์ ๋ น ๊ฐ์ ๋ฒ๊ทธ๋ฅผ ํผํ๊ธฐ ์ํด ์ผ๋ง๋ ์ ๊ตํ ๋ ผ๋ฆฌ์ ์ค๊ณ๊ฐ ํ์ํ์ง๋ฅผ ์ง์ ์ฆ๋ช ํ๊ณ ์ฒด๊ฐํ๋, ์์คํ ํ๋ก๊ทธ๋๋ฐ์ ํต๊ณผ ์๋ก์๋ ๊ฐ์ ๊ณผ์ ์ด์๋ค.
๐ ๋ฌธ์ ์ ๋ณธ์ง: ํ์ ๋ ์์๊ณผ ๋น๊ฒฐ์ ์ ์คํ ์์
โ์์ฌํ๋ ์ฒ ํ์๋คโ ๋ฌธ์ ๋ ๋์์ฑ ์์คํ ์ ์ถ์ํ์ด๋ค.
- ์ฒ ํ์ (Philosopher): ์ค๋ ๋(Thread) ๋๋ ํ๋ก์ธ์ค(Process)์ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์คํ ๋จ์๋ฅผ ์์งํ๋ค.
- ํฌํฌ (Fork): ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ , ํ์ผ ํธ๋ค๋ฌ, ํ๋์จ์ด ์ฅ์น ๋ฑ ๋์์ ์ ๊ทผํ ์ ์๋ ๊ณต์ ์์(Shared Resource)์ ์์งํ๋ค.
- ์์ฌ (Eating): ๊ณต์ ์์์ ์ ์ ํ์ฌ ์์ ์ ์ํํ๋ ์๊ณ ์์ญ(Critical Section)์ ์๋ฏธํ๋ค.
์ด ๋ชจ๋ธ์์ ๋ฐ์ํ๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋, ๊ฐ ์ค๋ ๋์ ์คํ ์์์ ์์ ์ ์ด์์ฒด์ ์ ์ค์ผ์ค๋ฌ๊ฐ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋น๊ฒฐ์ ์ (Non-deterministic)์ด๋ผ๋ ์ฌ์ค์์ ์ถ๋ฐํ๋ค. ์ด ๋น๊ฒฐ์ ์ฑ์ด ๋ ๊ฐ์ง ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๋ณ๋๋ค.
- ๊ต์ฐฉ ์ํ (Deadlock): ๋ ์ด์์ ์ค๋ ๋๊ฐ ์๋ก๊ฐ ์ ์ ํ ์์์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ ์ด์ ์งํํ์ง ๋ชปํ๋ ์ํ. ์ด๋ ๋ค์์ 4๊ฐ์ง ์กฐ๊ฑด(Coffman Conditions)์ด ๋ชจ๋ ์ถฉ์กฑ๋ ๋ ๋ฐ์ํ๋ค.
- ์ํธ ๋ฐฐ์ (Mutual Exclusion): ์์์ ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ์ฌ์ฉํ ์ ์๋ค.
- ์ ์ ๋๊ธฐ (Hold and Wait): ์์์ ํ๋ ์ ์ ํ ์ํ์์ ๋ค๋ฅธ ์์์ ์ถ๊ฐ๋ก ์์ฒญํ๋ฉฐ ๋๊ธฐํ๋ค.
- ๋น์ ์ (No Preemption): ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์ ์ ํ ์์์ ๊ฐ์ ๋ก ๋นผ์์ ์ ์๋ค.
- ํํ ๋๊ธฐ (Circular Wait): ๊ฐ ์ค๋ ๋๊ฐ ๋ค์ ์ค๋ ๋๊ฐ ์ ์ ํ ์์์ ์๊ตฌํ๋ ์ํ์ ๋๊ธฐ์ด์ด ํ์ฑ๋๋ค.
- ๊ฒฝ์ ์ํ (Race Condition): ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ๊ณต์ ์์์ ์ ๊ทผํ์ฌ ์์ ํ ๋, ์คํ ์์์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ์๋์ ๋ค๋ฅด๊ฒ ๋์ค๋ ์ํฉ.
printf์ ๊ฐ์ ๋จ์ํ ์ถ๋ ฅ ํจ์์กฐ์ฐจ๋ ๋ด๋ถ์ ์ผ๋ก ์ฌ๋ฌ ๋จ๊ณ๋ก ๋์ํ๊ธฐ์, ๋๊ธฐํ ์์ด๋ ๋ฉ์์ง๊ฐ ๋ค์์ฌ ๊นจ์ง๋ ๊ฒฝ์ ์ํ๋ฅผ ์ ๋ฐํ๋ค. - ๊ธฐ์ ์ํ (Starvation): ํน์ ์ค๋ ๋๊ฐ ์์์ ํ ๋น๋ฐ์ ๊ธฐํ๋ฅผ ์์ํ ์ป์ง ๋ชปํ๋ ์ํ๋ฅผ ๋งํ๋ค. ๊ต์ฐฉ ์ํ๋ ๋ชจ๋ ์ค๋ ๋๊ฐ ๋ฉ์ถ์ง๋ง, ๊ธฐ์ ์ํ๋ ๋ค๋ฅธ ์ค๋ ๋๋ค์ ์ ์ ๋์ํ๋ ์์ค์ ์ผ๋ถ ์ค๋ ๋๋ง ๊ณ ๋ฆฝ๋๋ค๋ ์ฐจ์ด๊ฐ ์๋ค. ์ด์ฐ ๋ณด๋ฉด ์์คํ ์ด ์ ์์ ์ผ๋ก ๋์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋๋์ ์ ์ํ์ง๋ง, ์ ์์ ์ด์ง ๋ชปํ ์ค๋ ๋์์ ๋์ค๋ ๋ฐ์ดํฐ, ์ํ ๊ฐ, ๊ทธ ์ธ์๋ ์์คํ ์ํธ์์ฉ์์ ์์กด์ฑ์ด ์กด์ฌํ๋ค๋ฉด ์์คํ ์ ์ฒด๊ฐ ์ค์๋, ์คํ์ด ์ด๋ฃจ์ด์ง ์ ์๋ ์ฌ๊ฐํ ๋ฌธ์ ์ด๋ค.
๐ ๏ธ Part 1: ์ค๋ ๋์ ๋ฎคํ ์ค๋ฅผ ์ด์ฉํ ๋๊ธฐํ (Mandatory)
์ด ํํธ์ ๋ชฉํ๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ์ ๋์์ฑ ๋จ์์ธ ์ค๋ ๋(Thread)์, ์๊ณ ์์ญ์ ๋ณดํธํ๊ธฐ ์ํ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋๊ธฐํ ๋๊ตฌ์ธ ๋ฎคํ ์ค(Mutex)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด๋ค.
๊ฐ๋จํ ์ค๋ช ํ๋ฉด ์ฒ ํ์๋ค์ ์์์ผ๋ก ํฌํฌ๋ฅผ ์ก์์ผ ๋จน์ ์ ์๊ณ , ํ์ ๋จน๋ ์๊ฐ์ด ๊ณง ์๋ช ์ฐ์ฅ์ด ๊ฐ๋ฅํ๊ณ , ํฌํฌ๋ฅผ ๋ด๋ ค ๋๊ณ ์๊ฐ-์ ์ ๋ค์ด๊ฐ๋ ๊ณผ์ ์ด ๋์ด์ผ ๋น๋ก์ ๋ค๋ฅธ ์์(ํฌํฌ)๋ค์ ๋ค๋ฅธ ์ฒ ํ์๊ฐ ์ทจํ๊ณ ๋ค์ ์์ ์ ํ์ํ ์์ ๋จน๊ธฐ,์ฒ ํ์๋ ์ฃฝ์ ์ ์๊ณ , ๊ถ๊ทน์ ์ผ๋ก ์ ์๋๋ ์์ค์ ํฌํฌ ๊ฐฏ์, ์ฒ ํ์ ์, ๊ทธ ์ธ์๋ ๋จน๋ ์๊ฐ ๋ฑ์ ์กฐ๊ฑด์ ๋ฌ์ฑํ๋ ๊ฒ์ด ํต์ฌ ๋ชฉํ์ด๋ค.
- ์๋ฃจ์ ์ ํต์ฌ: ๊ต์ฐฉ ์ํ๋ฅผ ์ ๋ฐํ๋ 4๊ฐ์ง ์กฐ๊ฑด ์ค ํ๋๋ฅผ ๊นจ๋จ๋ฆฌ๋ ๊ฒ์ด๋ค. ๋ชจ๋ ์ฒ ํ์๊ฐ โ์ผ์ชฝ ํฌํฌ -> ์ค๋ฅธ์ชฝ ํฌํฌโ ์์๋ก ์์์ ์์ฒญํ๋ฉด ํํ ๋๊ธฐ(Circular Wait) ์กฐ๊ฑด์ด ์ฑ๋ฆฝํ๊ธฐ ์ฝ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๊ฒฐ๊ตญ ํํ ๋๊ธฐ๊ฐ ์๊ธฐ์ง ์๋๋ก, ์์๋, ์ก๋ ๋ฐฉ๋ฒ์ด ์๋ก ๋ค๋ฅธ ์ง์์ ๋ฅ๋์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค. ์ด๋ ๊ฐ์ฅ ์ฝ๊ณ ์ ์ ํ ๊ฒ์ผ๋ก ์ง์ ๋ฒํธ ์ฒ ํ์๋ ์ผ์ชฝ๋ถํฐ, ํ์ ๋ฒํธ ์ฒ ํ์๋ ์ค๋ฅธ์ชฝ๋ถํฐ ํฌํฌ๋ฅผ ์ง๋๋ก ์์๋ฅผ ๋น๋์นญ์ ์ผ๋ก ์ค๊ณํ๋ค. ์ด ๊ฐ๋จํ ๊ท์น์ ๋ณํ๊ฐ ์์ ์์ฒญ์ ์์กด์ฑ ๊ณ ๋ฆฌ๋ฅผ ๋์ด ํํ ๋๊ธฐ๋ฅผ ์์ฒ์ ์ผ๋ก ๋ฐฉ์งํ๋ค. ์ถ๊ฐ๋ก ํ๋ ๋ ํ, ๋ด์ง๋ ์ต์ ํ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด, ๋จน๊ธฐ๋ฅผ ์์ํ๋ ๊ฒ์ด ์ผ์ ํ ๋ ํ์๊ฐ ์๋ค๋ ์ ๋ ์ค์ํ๋ค. ํ์, ์ง์๋ก ๋จน๋, ๊ทธ ์์๋ ์ฝ๊ฐ์ ๋๋ ์ด๋ฅผ ๊ฐ์ง๊ณ ์์ํ๊ฒ ํจ์ผ๋ก์จ ๊ฐ์ ๊ทธ๋ฃน์์๋ ์ฐ์ ๋จผ์ ๋จน๊ฒํ๋ ์ฌ๋๊ณผ ๋์ค ๋จน๊ฒ ํ๋ ์ฌ๋์ ๋ง๋ค์ด, ๊ฐ๋ฅํ ๊ฒฝ์ ๊ด๊ณ๊ฐ ๋ฐ๋ก ์๊ธฐ์ง ์๋๋ก ์ ๋ํ๋ ๊ฒ์, ์ด๊ธฐ ์ฑ๋ฅ์ ๊ฝค๋ ์ค์ํ ์ญํ ์ ํ์๋ค.
- ๋ชจ๋ํฐ๋ง ์ค๋ ๋์ ํ์์ฑ: ๋์์ ๊ฐ ์ฒ ํ์ ์ค๋ ๋๊ฐ ์์ ์ ์ฌ๋ง ์ฌ๋ถ๋ฅผ ์ค์ค๋ก ํ๋จํ๊ฒ ํ ๊ฒฝ์ฐ, ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์ ์ ํ ๋ฎคํ ์ค๋ก ์ธํด ๋ธ๋กํน๋์ด ์์ ์ ์ํ๋ฅผ ์ ๋ ํ์ธํ์ง ๋ชปํ ์ ์๋ค. ๋ฐ๋ผ์ ์ฒ ํ์๋ค์ ์ํ๋ฅผ ๊ฐ์ํ๊ณ ์๋ฎฌ๋ ์ด์ ์ ์ข ๋ฃํ๋ ์ญํ ์, ์ฒ ํ์๋ค์ด ์ฌ์ฉํ๋ ๋ฎคํ ์ค๋ก๋ถํฐ ์์ ๋ก์ด ๋ณ๋์ ๋ชจ๋ํฐ๋ง ์ค๋ ๋(Watchdog)๊ฐ ์ํํด์ผ๋ง ์์ ์ ์ธ ๊ฐ์๊ฐ ๊ฐ๋ฅํ๋ค๊ณ , ๋ฌด์๋ณด๋ค ์ ์ ํ ์ถ๋ ฅ ๋ฐ ์ฌ๋ง ์ฒ๋ฆฌ๋ฅผ ํ์ํด์ค ์ ์์ด ๋ฐ๋์ ํ์ํ๋ค.
๐ Part 2: ํ๋ก์ธ์ค์ ์ธ๋งํฌ์ด๋ฅผ ์ด์ฉํ IPC (Bonus)
๋ณด๋์ค ํํธ๋ ๋
๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง ํ๋ก์ธ์ค(Process)๋ฅผ fork()๋ก ์์ฑํ๊ณ , ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC, Inter-Process Communication)์ ํตํด ๋๊ธฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ์๊ตฌํ๋ค.
- ํ๋ก์ธ์ค ๋ชจ๋ธ์ ์ฐจ์ด: ์ค๋ ๋์ ๋ฌ๋ฆฌ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง ์์ผ๋ฏ๋ก, ๋ฎคํ ์ค์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ์์ผ๋ก๋ ๋๊ธฐํํ ์ ์๋ค. ๋ฐ๋ผ์ ์ปค๋ ์์ค์์ ๊ด๋ฆฌ๋๋ IPC ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ์ธ๋งํฌ์ด (Semaphore): ๋ฎคํ
์ค๊ฐ ๋จ ํ๋์ ์คํ ํ๋ฆ๋ง ํ์ฉํ๋ ์ ๊ธ(lock)์ด๋ผ๋ฉด, ์ธ๋งํฌ์ด๋ ์ ํด์ง ๊ฐ์(N)๋งํผ์ ์คํ ํ๋ฆ์ ๋์์ ํ์ฉํ๋ ๊ณ์๊ธฐ(counter)์ด๋ค. ์ด ๋ฌธ์ ์์๋ ๋ชจ๋ ํฌํฌ๋ฅผ ํ๋์ ์์ ํ๋ก ๋ณด๊ณ , ํฌํฌ์ ์ด ๊ฐ์๋ฅผ ์นด์ดํธ๋ก ํ๋ ์ธ๋งํฌ์ด ํ๋๋ก ๊ด๋ฆฌํ ์ ์๋ค. ์ฒ ํ์๋
sem_wait์ผ๋ก ํฌํฌ ํ๋๋ฅผ ํ๋(์นด์ดํธ ๊ฐ์)ํ๊ณ ,sem_post๋ก ๋ฐ๋ฉ(์นด์ดํธ ์ฆ๊ฐ)ํ๋ค. ์ด๋ N๊ฐ์ ์์์ ๊ด๋ฆฌํ๋ ๋ฐ ์์ด N๊ฐ์ ๋ฎคํ ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ ๋ชจ๋ธ์ ์ ๊ณตํ๋ค. - ํ๋ก์ธ์ค ๋ชจ๋ํฐ๋ง: ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ
waitpid๋ฅผ ํตํด ์์ ํ๋ก์ธ์ค๋ค์ ์ข ๋ฃ ์ํ๋ฅผ ๊ฐ์ํ๋ค. ํ ๋ช ์ ์ฒ ํ์๋ผ๋ ์ฌ๋ง(๋น์ ์ ์ข ๋ฃ)ํ๋ฉด, ๋ถ๋ชจ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ๋ชจ๋ ์์ ํ๋ก์ธ์ค๋ค์๊ฒkill์๊ทธ๋์ ๋ณด๋ด ์ ์ฒด ์๋ฎฌ๋ ์ด์ ์ ์ ๋ฆฌํ๋ ์ญํ ์ ์ํํ๋ค.
โจ ์ฑ์ฐฐ ๋ฐ ๋ฐฐ์ด ์
philosopher๋ ๋ฉํฐ ํ๋ก์ธ์ฑ, ๋ฉํฐ ์ค๋ ๋ฉ์ด โํ์ํ์ง๋งโ ์ โํ์๊ฐ ์๋๊ฐ?โ ๋ผ๋ ๊ฒ์ ๋ต๊ณผ๋ ๊ฐ์ ํ๋ก์ ํธ์๋ค. ๋จ์ง ์ผ์ ๋ง์ด, ์ฌ๋ฟ์ด ํ๋ค๊ณ ๊ทธ ์ผ์ ์ ํ๋ค๊ณ ๋ณผ ์ ์์ผ๋ฉฐ, ์คํ๋ ค ์ ๋ณด์ ์ฒ๋ฆฌ, ์ ๋ณด์ ์ํต ๊ณผ์ ์ด ์คํ๋ ค ์์
์ ๋๋ ์ด๋ฅผ ๋ง๋ค์ ์๋ค๋, trade-off ๊ฐ ์์์ ๋ณด์ฌ์ฃผ์๋ค. ๋ํ ๋์์ฑ ๋ฒ๊ทธ๊ฐ ์ ์ฌํํ๊ธฐ ์ด๋ ต๊ณ ๋๋ฒ๊น
ํ๊ธฐ ํ๋ ์ง, ๊ทธ๋ฆฌ๊ณ ์ ์ฒ์๋ถํฐ ์ ์คํ ์ค๊ณ๊ฐ ์ค์ํ์ง๋ฅผ ๊ฐ๋ฅด์ณ์ฃผ์๋ค.
- ๋์์ฑ ์ค๊ณ์ ์ค์์ฑ: ๋์์ฑ ๋ฌธ์ ๋ ๋์ค์ ์์ ํ๋ ๊ฒ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น๋ค. ์์คํ ์ค๊ณ ๋จ๊ณ๋ถํฐ ์ด๋ค ์์์ด ๊ณต์ ๋๊ณ , ์ด๋ค ์๊ณ ์์ญ์ด ์กด์ฌํ๋ฉฐ, ์ด๋ค ๋๊ธฐํ ์ ๋ต์ ์ฌ์ฉํ ์ง ๋ช ํํ ์ ์ํด์ผ ํจ์ ๊นจ๋ฌ์๋ค.
- ๋๊ธฐํ ๋๊ตฌ์ ์ดํด: ๋ฎคํ ์ค๋ ์ํธ ๋ฐฐ์ ๊ฐ ํ์ํ ๋, ์ธ๋งํฌ์ด๋ ์์ ํ๋ง(Pooling)์ด๋ ๋ณต์กํ ์คํ ์์ ์ ์ด๊ฐ ํ์ํ ๋ ์ฌ์ฉํ๋ ๋ฑ, ๊ฐ ๋๊ธฐํ ๋๊ตฌ์ ๋ณธ์ง์ ์ธ ๋ชฉ์ ๊ณผ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ตฌ๋ถํ๋ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅผ ์ ์์๋ค.
- ์ด๋ก ๊ณผ ํ์ค์ ์ฐ๊ฒฐ: ๊ต์ฐฉ ์ํ์ 4๊ฐ์ง ์กฐ๊ฑด๊ณผ ๊ฐ์ ์ด๋ก ์ ๋ชจ๋ธ์ด ์ค์ ์ฝ๋์์ ์ด๋ป๊ฒ ๋ฐํ๋๊ณ , ๊ทธ ์ด๋ก ์ ๊ธฐ๋ฐํ์ฌ ์ด๋ป๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง ์ง์ ์ฆ๋ช ํด ๋ณด์๋ค. ์ด ๊ฒฝํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํธ๋์ญ์ ์ฒ๋ฆฌ, ์น ์๋ฒ์ ์ค๋ ๋ ํ ๊ด๋ฆฌ ๋ฑ ํ์ค ์ธ๊ณ์ ๋ณต์กํ ๋์์ฑ ์์คํ ์ ์ดํดํ๋ ๋จ๋จํ ๊ธฐ๋ฐ์ด ๋์ด์ฃผ์๋ค.
