์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

๊ณต์‹ ์‚ฌ์ดํŠธ

1. ๊ฐœ์š”2. ํŠน์ง•3. ์—ฌ๋‹ด4. ๊ด€๋ จ ๋ฌธ์„œ

1. ๊ฐœ์š”[ํŽธ์ง‘]

C++ ๊ธฐ๋ฐ˜์˜ ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง‘ํ•ฉ[1]

2. ํŠน์ง•[ํŽธ์ง‘]

์˜คํ”ˆ์†Œ์Šค๋กœ MIT ๋ผ์ด์„ผ์Šค์™€ ๋น„์Šทํ•œ ๋…์ž์ ์ธ ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฅธ๋‹ค.
๋˜ํ•œ ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๊ฐ€์ง€ ์ค€์ˆ˜ ์‚ฌํ•ญ๋งŒ ์ง€ํ‚ค๋ฉด ์ƒ์—…์  ๋ชฉ์ ์˜ ์‚ฌ์šฉ์„ ํฌํ•จํ•˜์—ฌ ์ž์œ ๋กญ๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

UNIX ๋ฐ Windows ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ๊ฑฐ์˜ ๋ชจ๋“  ์ตœ์‹  ์šด์˜์ฒด์ œ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, ํ—ค๋” ํŒŒ์ผ[2]๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์กด์žฌํ•œ๋‹ค. ๋‹ค๋งŒ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ„ ์˜์กด์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค.

3. ์—ฌ๋‹ด[ํŽธ์ง‘]

๋ถ€์ŠคํŠธ ๊ฐœ๋ฐœ์ง„์ค‘ ์ƒ๋‹น์ˆ˜๊ฐ€ C++ ํ‘œ์ค€ ์œ„์›ํšŒ์— ์†ํ•ด์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋Ÿฐ์ง€ ๋ถ€์ŠคํŠธ์— ์žˆ๋˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ‘œ์ค€์œผ๋กœ ๋„˜์–ด๊ฐ„ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.(์˜ˆ๋ฅผ๋“ค์–ด shared_ptr๊ฐ™์€ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ, ์‹œ๊ฐ„ ๊ด€๋ จ ์œ ํ‹ธ chrono ๋“ฑ)
๋”ฐ๋ผ์„œ ๋ชจ๋˜ C++์— ๊ด€ํ•ด ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋ฉด ํ•œ๋ฒˆ์ฏค ์จ๋ณธ ์‚ฌ๋žŒ์ด ๋งŽ์œผ๋ฉฐ, C++ํ‘œ์ค€ ์ฐจ๊ธฐ ๋ฒ„์ „์ธ C++17์—๋„ ๋ถ€์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ƒ๋‹น์ˆ˜๊ฐ€ ํŽธ์ž…๋˜๋ฏ€๋กœ(Asio, Filesystem ๋“ฑ) ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๊ณต๋ถ€ํ•ด๋ณด๋Š”๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š๋‹ค.

์ด์™€ ์ƒ๋ฐ˜๋˜๊ฒŒ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง‘ํ•ฉ์˜ ์กด์žฌ์กฐ์ฐจ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๋‹นํžˆ ๋งŽ๋‹ค. ์ด๋Š” ์‹ค๋ฌด์—์„œ ๋ถ€์ŠคํŠธ์˜ ์‚ฌ์šฉ์„ ์ง€์–‘ํ•˜๋Š” ํšŒ์‚ฌ๋‚˜ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด๋Ÿฐ ์‹ค๋ฌด์˜ ๋ถ„์œ„๊ธฐ๊ฐ€ ์ •๋ง ๋ถˆํŽธํ•œ ์ด์œ ๋Š” ํŽธ๋ฆฌํ•˜๊ณ  C++์˜ ๊ทธ์ง€๊ฐ™์€ ์ƒ์‚ฐ์„ฑ์„ ๋Œ์–ด์˜ฌ๋ ค์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์ •๋ง ๋งŽ๊ณ , ์ด๊ฑธ ํ•œ๋ฒˆ ์“ฐ๋ฉด ์ค‘๋… ์ฆ์„ธ๋งˆ๋ƒฅ ๋‹ค์Œ๋ถ€ํ„ฐ ๋ถ€์ŠคํŠธ๋ฅผ ์ฐพ๊ฒŒ๋˜๋Š” ๊ฒฝํ–ฅ์ด ๋ณด์ธ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ค๋ฌด์—์„œ C++์„ ์“ฐ๋‹ค๊ฐ€ ์ƒ์‚ฐ์„ฑ์˜ ์—ฟ๊ฐ™์Œ์„ ๋А๋ผ๊ณ  ๋ถ€์ŠคํŠธ๋ฅผ ๊ฐˆ๋งํ•˜๋Š” ์ˆœ๊ฐ„ ๋ถ€ํ„ฐ ๊ณ ํ†ต์€ ์‹œ์ž‘๋œ๋‹ค.[3]

boost๋Š” ํ…œํ”Œ๋ฆฟ์„ ์ƒ๋‹นํžˆ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์–ด๋А ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋งˆ์ฐฌ๊ฐ€์ง€๊ฒ ์ง€๋งŒ, ์–ด๋А์ •๋„ ๊ทœ๋ชจ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ œ๋Œ€๋กœ ํŒจํ‚นํ•˜์ง€ ์•Š์œผ๋ฉด ์ •์‹ ๋‚˜๊ฐ„ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

4. ๊ด€๋ จ ๋ฌธ์„œ[ํŽธ์ง‘]


[1] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ง‘ํ•ฉ์ด๋ฏ€๋กœ library๊ฐ€ ์•„๋‹ˆ๋ผ libraries์ด๋‹ค.
[2] ๋ณดํ†ต ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ํ™•์žฅ์ž๋ฅผ .hpp๋ผ๊ณ  ํ‘œ๊ธฐํ•˜์—ฌ ํ—ค๋” ํŒŒ์ผ๋กœ๋งŒ ์ปดํŒŒ์ผํ•œ๋‹ค๊ณ  ์•Œ๋ฆฐ๋‹ค.
[3] boost๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ ์—ฌ๊ธฐ์— ์ข…์†๋œ๋‹ค. C++ ํ‘œ์ค€์— boost์˜ ๊ธฐ๋Šฅ์ด ๋งŽ์ด ํƒ‘์žฌ๋˜์–ด์žˆ๋‹ค์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด๋ณด๋ฉด ๋™์ผํ•œ ํ•จ์ˆ˜๋ช…์ž„์—๋„ ๋‚ด๋ถ€ ๊ตฌํ˜„์—์„œ์˜ ์ฐจ์ด๋กœ ์ƒํ˜ธํ˜ธํ™˜์„ฑ์ด ๊ฝค ๋–จ์–ด์ง„๋‹ค. ์ด ์ƒํ™ฉ๊นŒ์ง€ ์˜ค๊ฒŒ๋˜๋ฉด C++์ƒ์‚ฐ์„ฑ๋•Œ๋ฌธ์— boost๋ฅผ ์ผ๋‹ค์ง€๋งŒ ํ‘œ์ค€๊ณผ์˜ ์ถฉ๋Œ๋•Œ๋ฌธ์— ์•ž์œผ๋กœ ๊ตฌํ˜„ํ•  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋„ boost์—†์ด๋Š” ๋„์ €ํžˆ ์ฝ”๋“œ๋ฅผ ์งค์ˆ˜์—†๋Š” ์ƒํ™ฉ์— ์ด๋ฅด๊ฒŒ๋˜๋Š”๊ฒƒ์ด๋‹ค.