Microsoft๋Š” Visual Studio์— ํฌํ•จ๋œ C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์š”์ฆ˜ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š” CppCon 2019 ์ปจํผ๋Ÿฐ์Šค์—์„œ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ๋ฐœํ‘œํ–ˆ๋‹ค. MSVC ํˆดํ‚ท ๋ฐ Visual Studio ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ์ผ๋ถ€์ธ C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(STL, C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ๊ตฌํ˜„ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ˜„์žฌ C++14 ๋ฐ C++17 ํ‘œ์ค€์— ์„ค๋ช…๋œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ํ˜„์žฌ ์ž‘์—… ์ดˆ์•ˆ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ํ–ฅํ›„ C++20 ํ‘œ์ค€์— ๋Œ€ํ•œ ์ง€์›์„ ํ–ฅํ•ด ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธ ์—ด๋ ค์žˆ๋‹ค ์ƒ์„ฑ๋œ ์‹คํ–‰ ํŒŒ์ผ์— ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์— ๋Œ€ํ•œ ์˜ˆ์™ธ๋ฅผ ์ œ์™ธํ•˜๊ณ  Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ.

ํ–ฅํ›„ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฐœ๋ฐœ์€ GitHub์—์„œ ๊ฐœ๋ฐœ๋œ ๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ๋กœ ์ˆ˜ํ–‰๋  ์˜ˆ์ •์ด๋ฉฐ, ์ˆ˜์ • ๋ฐ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ†ตํ•ด ํƒ€์‚ฌ ๊ฐœ๋ฐœ์ž์˜ ํ’€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค(๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•˜๋ ค๋ฉด ์–‘๋„์— ๋Œ€ํ•œ CLA ๊ณ„์•ฝ์— ์„œ๋ช…ํ•ด์•ผ ํ•จ). ์ด์ „๋œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์žฌ์‚ฐ๊ถŒ). STL ๊ฐœ๋ฐœ์„ GitHub๋กœ ์ด์ „ํ•˜๋ฉด Microsoft ๊ณ ๊ฐ์ด ๊ฐœ๋ฐœ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•˜๊ณ  ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹คํ—˜ํ•˜๋ฉฐ ํ˜์‹  ์ถ”๊ฐ€์— ๋Œ€ํ•œ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ๊ฒ€ํ† ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ†ตํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€ ๊ธฐ๋Šฅ์„ ๋ฏธ๋ฆฌ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฝ”๋“œ ๋ผ์ด์„ผ์Šค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. libc++ LLVM ํ”„๋กœ์ ํŠธ์—์„œ. STL๊ณผ libc++๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๋‚ด๋ถ€ ํ‘œํ˜„์ด ๋‹ค๋ฅด์ง€๋งŒ ์›ํ•˜๋Š” ๊ฒฝ์šฐ libc++ ๊ฐœ๋ฐœ์ž๋Š” STL์—์„œ ๊ด€์‹ฌ ์žˆ๋Š” ๊ธฐ๋Šฅ(์˜ˆ: charconv)์„ ์ด์‹ํ•˜๊ฑฐ๋‚˜ ๋‘ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘ ์ผ๋ถ€ ํ˜์‹ ์„ ๊ณต๋™์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Apache ๋ผ์ด์„ผ์Šค์— ์ถ”๊ฐ€๋œ ์˜ˆ์™ธ ์‚ฌํ•ญ์€ STL๋กœ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•  ๋•Œ ์›๋ณธ ์ œํ’ˆ์˜ ์‚ฌ์šฉ์„ ์ธ์šฉํ•ด์•ผ ํ•˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ๋ชฉํ‘œ์—๋Š” ์‚ฌ์–‘ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ค€์ˆ˜ํ•˜๊ณ  ๊ณ ์„ฑ๋Šฅ, ์‚ฌ์šฉ ํŽธ์˜์„ฑ(๋””๋ฒ„๊น… ๋„๊ตฌ, ์ง„๋‹จ, ์˜ค๋ฅ˜ ๊ฐ์ง€), ์†Œ์Šค ์ฝ”๋“œ ์ˆ˜์ค€์˜ ํ˜ธํ™˜์„ฑ ๋ฐ ์ด์ „ Visual Studio 2015/2017 ๋ฆด๋ฆฌ์Šค์™€์˜ ABI ๋ณด์žฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Microsoft๊ฐ€ ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์—†๋Š” ์˜์—ญ ์ค‘์—๋Š” ๋‹ค๋ฅธ ํ”Œ๋žซํผ์œผ๋กœ์˜ ํฌํŒ…๊ณผ ๋น„ํ‘œ์ค€ ํ™•์žฅ ์ถ”๊ฐ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€