๋ถ๋ฅ:๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
2. ํน์ง[ํธ์ง]
์คํ์์ค๋ก MIT ๋ผ์ด์ผ์ค์ ๋น์ทํ ๋
์์ ์ธ ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฅธ๋ค.
๋ํ ์์ ์ํํธ์จ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ช ๊ฐ์ง ์ค์ ์ฌํญ๋ง ์งํค๋ฉด ์์ ์ ๋ชฉ์ ์ ์ฌ์ฉ์ ํฌํจํ์ฌ ์์ ๋กญ๊ฒ ๊ฐ๋ฅํ๋ค.
UNIX ๋ฐ Windows ๋ฑ์ ํฌํจํ์ฌ ๊ฑฐ์ ๋ชจ๋ ์ต์ ์ด์์ฒด์ ์์ ๋์ํ๋ฉฐ, ํค๋ ํ์ผ[2]๋ก๋ง ์ด๋ฃจ์ด์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์กด์ฌํ๋ค. ๋ค๋ง, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ ์์กด์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๊ธฐ๋ ์ด๋ ต๋ค.
๋ํ ์์ ์ํํธ์จ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ช ๊ฐ์ง ์ค์ ์ฌํญ๋ง ์งํค๋ฉด ์์ ์ ๋ชฉ์ ์ ์ฌ์ฉ์ ํฌํจํ์ฌ ์์ ๋กญ๊ฒ ๊ฐ๋ฅํ๋ค.
UNIX ๋ฐ Windows ๋ฑ์ ํฌํจํ์ฌ ๊ฑฐ์ ๋ชจ๋ ์ต์ ์ด์์ฒด์ ์์ ๋์ํ๋ฉฐ, ํค๋ ํ์ผ[2]๋ก๋ง ์ด๋ฃจ์ด์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์กด์ฌํ๋ค. ๋ค๋ง, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ ์์กด์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๊ธฐ๋ ์ด๋ ต๋ค.
3. ์ฌ๋ด[ํธ์ง]
๋ถ์คํธ ๊ฐ๋ฐ์ง์ค ์๋น์๊ฐ C++ ํ์ค ์์ํ์ ์ํด์๋ค๊ณ ํ๋ค. ๊ทธ๋์ ๊ทธ๋ฐ์ง ๋ถ์คํธ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ค์ผ๋ก ๋์ด๊ฐ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.(์๋ฅผ๋ค์ด shared_ptr๊ฐ์ ์ค๋งํธ ํฌ์ธํฐ, ์๊ฐ ๊ด๋ จ ์ ํธ chrono ๋ฑ)
๋ฐ๋ผ์ ๋ชจ๋ C++์ ๊ดํด ๊ด์ฌ์ด ์๋ ์ฌ๋์ด๋ฉด ํ๋ฒ์ฏค ์จ๋ณธ ์ฌ๋์ด ๋ง์ผ๋ฉฐ, C++ํ์ค ์ฐจ๊ธฐ ๋ฒ์ ์ธ C++17์๋ ๋ถ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๋น์๊ฐ ํธ์ ๋๋ฏ๋ก(Asio, Filesystem ๋ฑ) ๊ด์ฌ์๋ ์ฌ๋์ ๊ณต๋ถํด๋ณด๋๊ฒ๋ ๋์์ง ์๋ค.
์ด์ ์๋ฐ๋๊ฒ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์งํฉ์ ์กด์ฌ์กฐ์ฐจ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ๊ฐ ์๋นํ ๋ง๋ค. ์ด๋ ์ค๋ฌด์์ ๋ถ์คํธ์ ์ฌ์ฉ์ ์ง์ํ๋ ํ์ฌ๋ ์ฌ๋๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฐ ์ค๋ฌด์ ๋ถ์๊ธฐ๊ฐ ์ ๋ง ๋ถํธํ ์ด์ ๋ ํธ๋ฆฌํ๊ณ C++์ ๊ทธ์ง๊ฐ์ ์์ฐ์ฑ์ ๋์ด์ฌ๋ ค์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์ ๋ง ๋ง๊ณ , ์ด๊ฑธ ํ๋ฒ ์ฐ๋ฉด ์ค๋ ์ฆ์ธ๋ง๋ฅ ๋ค์๋ถํฐ ๋ถ์คํธ๋ฅผ ์ฐพ๊ฒ๋๋ ๊ฒฝํฅ์ด ๋ณด์ธ๋ค. ๊ทธ๋์ ์ค๋ฌด์์ C++์ ์ฐ๋ค๊ฐ ์์ฐ์ฑ์ ์ฟ๊ฐ์์ ๋๋ผ๊ณ ๋ถ์คํธ๋ฅผ ๊ฐ๋งํ๋ ์๊ฐ ๋ถํฐ ๊ณ ํต์ ์์๋๋ค.[3]
boost๋ ํ ํ๋ฆฟ์ ์๋นํ ๋ง์ด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ง์ฐฌ๊ฐ์ง๊ฒ ์ง๋ง, ์ด๋์ ๋ ๊ท๋ชจ๊ฐ ์๋ ํ๋ก์ ํธ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์์ค์ฝ๋๋ฅผ ์ ๋๋ก ํจํนํ์ง ์์ผ๋ฉด ์ ์ ๋๊ฐ ์ปดํ์ผ ์๊ฐ์ ๋ณผ ์ ์๊ฒ ๋๋ค.
๋ฐ๋ผ์ ๋ชจ๋ C++์ ๊ดํด ๊ด์ฌ์ด ์๋ ์ฌ๋์ด๋ฉด ํ๋ฒ์ฏค ์จ๋ณธ ์ฌ๋์ด ๋ง์ผ๋ฉฐ, C++ํ์ค ์ฐจ๊ธฐ ๋ฒ์ ์ธ C++17์๋ ๋ถ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๋น์๊ฐ ํธ์ ๋๋ฏ๋ก(Asio, Filesystem ๋ฑ) ๊ด์ฌ์๋ ์ฌ๋์ ๊ณต๋ถํด๋ณด๋๊ฒ๋ ๋์์ง ์๋ค.
์ด์ ์๋ฐ๋๊ฒ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์งํฉ์ ์กด์ฌ์กฐ์ฐจ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ๊ฐ ์๋นํ ๋ง๋ค. ์ด๋ ์ค๋ฌด์์ ๋ถ์คํธ์ ์ฌ์ฉ์ ์ง์ํ๋ ํ์ฌ๋ ์ฌ๋๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฐ ์ค๋ฌด์ ๋ถ์๊ธฐ๊ฐ ์ ๋ง ๋ถํธํ ์ด์ ๋ ํธ๋ฆฌํ๊ณ C++์ ๊ทธ์ง๊ฐ์ ์์ฐ์ฑ์ ๋์ด์ฌ๋ ค์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์ ๋ง ๋ง๊ณ , ์ด๊ฑธ ํ๋ฒ ์ฐ๋ฉด ์ค๋ ์ฆ์ธ๋ง๋ฅ ๋ค์๋ถํฐ ๋ถ์คํธ๋ฅผ ์ฐพ๊ฒ๋๋ ๊ฒฝํฅ์ด ๋ณด์ธ๋ค. ๊ทธ๋์ ์ค๋ฌด์์ C++์ ์ฐ๋ค๊ฐ ์์ฐ์ฑ์ ์ฟ๊ฐ์์ ๋๋ผ๊ณ ๋ถ์คํธ๋ฅผ ๊ฐ๋งํ๋ ์๊ฐ ๋ถํฐ ๊ณ ํต์ ์์๋๋ค.[3]
boost๋ ํ ํ๋ฆฟ์ ์๋นํ ๋ง์ด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ง์ฐฌ๊ฐ์ง๊ฒ ์ง๋ง, ์ด๋์ ๋ ๊ท๋ชจ๊ฐ ์๋ ํ๋ก์ ํธ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์์ค์ฝ๋๋ฅผ ์ ๋๋ก ํจํนํ์ง ์์ผ๋ฉด ์ ์ ๋๊ฐ ์ปดํ์ผ ์๊ฐ์ ๋ณผ ์ ์๊ฒ ๋๋ค.
4. ๊ด๋ จ ๋ฌธ์[ํธ์ง]
[1] ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์งํฉ์ด๋ฏ๋ก library๊ฐ ์๋๋ผ libraries์ด๋ค.
[2] ๋ณดํต ์ด๋ฐ ๊ฒฝ์ฐ์๋ ํ์ฅ์๋ฅผ .hpp๋ผ๊ณ ํ๊ธฐํ์ฌ ํค๋ ํ์ผ๋ก๋ง ์ปดํ์ผํ๋ค๊ณ ์๋ฆฐ๋ค.
[3] boost๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉด ๋๋ถ๋ถ์ ์ฝ๋๊ฐ ์ฌ๊ธฐ์ ์ข
์๋๋ค. C++ ํ์ค์ boost์ ๊ธฐ๋ฅ์ด ๋ง์ด ํ์ฌ๋์ด์๋ค์ง๋ง ์ค์ ๋ก ์ฌ์ฉํด๋ณด๋ฉด ๋์ผํ ํจ์๋ช
์์๋ ๋ด๋ถ ๊ตฌํ์์์ ์ฐจ์ด๋ก ์ํธํธํ์ฑ์ด ๊ฝค ๋จ์ด์ง๋ค. ์ด ์ํฉ๊น์ง ์ค๊ฒ๋๋ฉด C++์์ฐ์ฑ๋๋ฌธ์ boost๋ฅผ ์ผ๋ค์ง๋ง ํ์ค๊ณผ์ ์ถฉ๋๋๋ฌธ์ ์์ผ๋ก ๊ตฌํํ ์๋ก์ด ๊ธฐ๋ฅ๋ boost์์ด๋ ๋์ ํ ์ฝ๋๋ฅผ ์งค์์๋ ์ํฉ์ ์ด๋ฅด๊ฒ๋๋๊ฒ์ด๋ค.