์ฒœ๋งŒ ์ค„์˜ C++ ์ฝ”๋“œ๋ฅผ C++10 ํ‘œ์ค€์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋‹ค์Œ C++14๋กœ ๋ณ€ํ™˜ํ•œ ๋ฐฉ๋ฒ•

์–ผ๋งˆ ์ „(2016๋…„ ๊ฐ€์„) 1C:Enterprise ๊ธฐ์ˆ  ํ”Œ๋žซํผ์˜ ๋‹ค์Œ ๋ฒ„์ „์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ ๊ฐœ๋ฐœ ํŒ€ ๋‚ด์—์„œ ์ƒˆ๋กœ์šด ํ‘œ์ค€ ์ง€์›์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด ์ œ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. C ++ 14 ์šฐ๋ฆฌ ์ฝ”๋“œ์—์„œ. ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ •ํ•œ ๋Œ€๋กœ ์ƒˆ๋กœ์šด ํ‘œ์ค€์œผ๋กœ์˜ ์ „ํ™˜์„ ํ†ตํ•ด ๋งŽ์€ ๊ฒƒ์„ ๋” ์šฐ์•„ํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๋ฉฐ ์•ˆ์ •์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฝ”๋“œ ์ง€์› ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋‹จ์ˆœํ™”๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ ๊ธฐ๋ฐ˜์˜ ๊ทœ๋ชจ์™€ ์šฐ๋ฆฌ ์ฝ”๋“œ์˜ ํŠน์ • ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฒˆ์—ญ์—๋Š” ํŠน๋ณ„ํ•œ ๊ฒƒ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ชจ๋ฅด๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์„ค๋ช…ํ•˜์ž๋ฉด, 1C:Enterprise๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋น„์ฆˆ๋‹ˆ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹ ์†ํ•œ ๊ฐœ๋ฐœ๊ณผ ๋‹ค์–‘ํ•œ OS ๋ฐ DBMS์—์„œ์˜ ์‹คํ–‰์„ ์œ„ํ•œ ๋Ÿฐํƒ€์ž„์„ ์œ„ํ•œ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ œํ’ˆ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์€ 99% ๊ณตํ†ต์ด๊ณ  ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์€ ์•ฝ 95%์ž…๋‹ˆ๋‹ค. 1C:Enterprise ๊ธฐ์ˆ  ํ”Œ๋žซํผ์€ ์ฃผ๋กœ C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋Œ€๋žต์ ์ธ ์ฝ”๋“œ ํŠน์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ฒœ๋งŒ ์ค„์˜ C++ ์ฝ”๋“œ,
  • 14๊ฐœ์˜ ํŒŒ์ผ,
  • 60๋งŒ๊ฐœ ์ˆ˜์—…,
  • XNUMX๋งŒ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•.

๊ทธ๋ฆฌ๊ณ  ์ด ๋ชจ๋“  ๊ฒƒ๋“ค์€ C++14๋กœ ๋ฒˆ์—ญ๋˜์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰ํ–ˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ณผ์ •์—์„œ ์–ด๋–ค ์ผ์„ ๊ฒช์—ˆ๋Š”์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฒœ๋งŒ ์ค„์˜ C++ ์ฝ”๋“œ๋ฅผ C++10 ํ‘œ์ค€์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋‹ค์Œ C++14๋กœ ๋ณ€ํ™˜ํ•œ ๋ฐฉ๋ฒ•

๋ถ€์ธ ์„ฑ๋ช…

๋Š๋ฆฐ/๋น ๋ฅธ ์ž‘์—…, ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ‘œ์ค€ ํด๋ž˜์Šค ๊ตฌํ˜„์œผ๋กœ ์ธํ•œ ๋Œ€๊ทœ๋ชจ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„์— ๋Œ€ํ•ด ์•„๋ž˜์— ์ž‘์„ฑ๋œ ๋ชจ๋“  ๋‚ด์šฉ์€ ํ•œ ๊ฐ€์ง€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฏธ๊ตญ์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ๊ตฌํ˜„์ด ๊ท€ํ•˜์˜ ์ž‘์—…์— ๊ฐ€์žฅ ์ ํ•ฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž์ฒด ์ž‘์—…๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ฐ์—๊ฒŒ ์ „ํ˜•์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์ผ๋ฐ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์„ฑ๋Šฅ, ์†Œ๋น„๋œ ๋ฉ”๋ชจ๋ฆฌ ์–‘ ๋“ฑ์„ ์‚ดํŽด๋ณด๊ณ  ์šฐ๋ฆฌ์™€ ๊ณ ๊ฐ์ด ๊ทธ๋Ÿฌํ•œ ๊ฒฐ๊ณผ์— ๋งŒ์กฑํ•˜๋Š”์ง€ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. . ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ ๋‹ค์Œ์— ๋”ฐ๋ผ ํ–‰๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์กŒ๋˜ ๊ฒƒ

์ฒ˜์Œ์—๋Š” Microsoft Visual Studio์—์„œ 1C:Enterprise 8 ํ”Œ๋žซํผ์šฉ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” 2000๋…„๋Œ€ ์ดˆ๋ฐ˜์— ์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ Windows ์ „์šฉ ๋ฒ„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ๊ทธ ์ดํ›„๋กœ ์ฝ”๋“œ๊ฐ€ ์ ๊ทน์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ๋งŽ์€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ”๋“œ๋Š” 1998 ํ‘œ์ค€์— ๋”ฐ๋ผ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปดํŒŒ์ผ์ด ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ์˜ค๋ฅธ์ชฝ ๊บพ์‡  ๊ด„ํ˜ธ๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

vector<vector<int> > IntV;

2006๋…„ ํ”Œ๋žซํผ ๋ฒ„์ „ 8.1 ์ถœ์‹œ์™€ ํ•จ๊ป˜ Linux ์ง€์›์„ ์‹œ์ž‘ํ•˜๊ณ  ํƒ€์‚ฌ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. STLํฌํŠธ. ์ „ํ™˜ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” ๋„“์€ ์„ ์œผ๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ฝ”๋“œ์—์„œ๋Š” ์ „์ฒด์ ์œผ๋กœ wchar_t ์œ ํ˜•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” std::wstring์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Windows์—์„œ๋Š” ํฌ๊ธฐ๊ฐ€ 2๋ฐ”์ดํŠธ์ด๊ณ  Linux์—์„œ๋Š” ๊ธฐ๋ณธ๊ฐ’์ด 4๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ๊ณผ ๋‹ค์–‘ํ•œ ์˜๊ตฌ ๋ฐ์ดํ„ฐ๊ฐ€ ํ˜ธํ™˜๋˜์ง€ ์•Š๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. gcc ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ ์ค‘ wchar_t์˜ ํฌ๊ธฐ๋„ 2๋ฐ”์ดํŠธ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋Ÿฌ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” glibc๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ด๋Š” 4๋ฐ”์ดํŠธ wchar_t์šฉ์œผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด์œ ๋Š” ํ‘œ์ค€ ํด๋ž˜์Šค์˜ ๋” ๋‚˜์€ ๊ตฌํ˜„, ํ•ด์‹œ ํ…Œ์ด๋ธ” ์ง€์›, ์‹ฌ์ง€์–ด ์šฐ๋ฆฌ๊ฐ€ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ–ˆ๋˜ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์ด๋™ ์˜๋ฏธ์˜ ์—๋ฎฌ๋ ˆ์ด์…˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ๋งํ–ˆ๋“ฏ์ด ๋˜ ํ•˜๋‚˜์˜ ์ด์œ ๋Š” ํ˜„์•…๊ธฐ ์—ฐ์ฃผ์˜€์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์šฐ๋ฆฌ๋งŒ์˜ ์ˆ˜์—…์„ ๊ฐ–๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒ๋ฉด... ์šฐ๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ๋ฌธ์ž์—ด ์ž‘์—…์€ ๋งค์šฐ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋ฉฐ ์ด๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๋ฌธ์ž์—ด์€ 2000๋…„๋Œ€ ์ดˆ๋ฐ˜์— ํ‘œํ˜„๋œ ๋ฌธ์ž์—ด ์ตœ์ ํ™” ์•„์ด๋””์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์•ˆ๋“œ๋ ˆ์ด ์•Œ๋ ‰์‚ฐ๋“œ๋ ˆ์Šค์ฟ . ๋‚˜์ค‘์— Alexandrescu๊ฐ€ Facebook์—์„œ ์ผํ•  ๋•Œ ๊ทธ์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ ์œ ์‚ฌํ•œ ์›๋ฆฌ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ผ์ธ์ด Facebook ์—”์ง„์— ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฐธ์กฐ). ์–ด๋ฆฌ ์„์Œ).

์šฐ๋ฆฌ ๋ผ์ธ์€ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์งง์€ ๊ฐ’์˜ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด ๊ฐœ์ฒด ์ž์ฒด์˜ ๋‚ด๋ถ€ ๋ฒ„ํผ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ).
  2. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒฝ์šฐ์—๋Š” ์—ญํ•™์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ์‹œ ๋ณต์‚ฌ. ๋ฌธ์ž์—ด ๊ฐ’์€ ํ•œ ๊ณณ์— ์ €์žฅ๋˜๋ฉฐ ํ• ๋‹น/์ˆ˜์ • ์ค‘์— ์ฐธ์กฐ ์นด์šดํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ”Œ๋žซํผ ์ปดํŒŒ์ผ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด STLPort ๋ณ€ํ˜•(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)์—์„œ ์ŠคํŠธ๋ฆผ ๊ตฌํ˜„์„ ์ œ์™ธํ•˜์—ฌ ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ์•ฝ 20% ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์šฐ๋ฆฌ๋Š” ์ œํ•œ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์Šน. Boost๋Š” ํŠนํžˆ ์„œ๋น„์Šค API(์˜ˆ: ๋กœ๊น…)์—์„œ ์ŠคํŠธ๋ฆผ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ŠคํŠธ๋ฆผ ์‚ฌ์šฉ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ƒˆ๋กœ์šด Boost ๋ฒ„์ „์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์กŒ์Šต๋‹ˆ๋‹ค.

์ œ 3์˜ ๊ธธ

C++14 ํ‘œ์ค€์œผ๋กœ ์ „ํ™˜ํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ ์˜ต์…˜์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ˆ˜์ •ํ•œ STLPort๋ฅผ C++14 ํ‘œ์ค€์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์„ธ์š”. ์˜ต์…˜์ด ๋„ˆ๋ฌด ์–ด๋ ต๋„ค์š”... STLPort์— ๋Œ€ํ•œ ์ง€์›์€ 2010๋…„์— ์ค‘๋‹จ๋˜์—ˆ์œผ๋ฉฐ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. C++14์™€ ํ˜ธํ™˜๋˜๋Š” ๋‹ค๋ฅธ STL ๊ตฌํ˜„์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌํ˜„์€ Windows ๋ฐ Linux์šฉ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.
  3. OS๋ณ„๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ๋Š” ํ•ด๋‹น ์ปดํŒŒ์ผ๋Ÿฌ์— ๋‚ด์žฅ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ ๋„ˆ๋ฌด ๋งŽ์€ ์ž‘์—…์œผ๋กœ ์ธํ•ด ์™„์ „ํžˆ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ•œ๋™์•ˆ ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ›„๋ณด๋กœ ๊ณ ๋ ค๋จ libc++, ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹œ Windows์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. libc++๋ฅผ Windows๋กœ ํฌํŒ…ํ•˜๋ ค๋ฉด ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์Šค๋ ˆ๋“œ, ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™” ๋ฐ ์›์ž์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๊ฒƒ์„ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. libc++๋Š” ์ด๋Ÿฌํ•œ ์˜์—ญ์—์„œ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. POSIX API.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์„ธ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ „ํ™˜

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” STLPort์˜ ์‚ฌ์šฉ์„ ํ•ด๋‹น ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Windows์šฉ Visual Studio 2015, Linux์šฉ gcc 7, macOS์šฉ clang 8)๋กœ ๋Œ€์ฒดํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์šฐ๋ฆฌ ์ฝ”๋“œ๋Š” ์ฃผ๋กœ ์ง€์นจ์— ๋”ฐ๋ผ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ธฐ๋ฐœํ•œ ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์†Œ์Šค์˜ ์œ ํ˜•, ํด๋ž˜์Šค, ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ ํฌํ•จ ์ด๋ฆ„์„ ๋Œ€์ฒดํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ๋„์›€์œผ๋กœ ์ƒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๋น„๊ต์  ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ 10๊ฐœ ์ค‘ 000๊ฐœ์˜ ์†Œ์Šค ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค. wchar_t๋Š” char14_t๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” wchar_t์˜ ์‚ฌ์šฉ์„ ํฌ๊ธฐํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. char000_t๋Š” ๋ชจ๋“  OS์—์„œ 16๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ Windows์™€ Linux ๊ฐ„์˜ ์ฝ”๋“œ ํ˜ธํ™˜์„ฑ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ž‘์€ ๋ชจํ—˜์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด STLPort์—์„œ ๋ฐ˜๋ณต์ž๋Š” ์•”์‹œ์ ์œผ๋กœ ์š”์†Œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋กœ ์บ์ŠคํŒ…๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฝ”๋“œ์˜ ์ผ๋ถ€ ์œ„์น˜์—์„œ๋Š” ์ด๊ฒƒ์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋„์„œ๊ด€์—์„œ๋Š” ๋” ์ด์ƒ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์—ˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๊ตฌ์ ˆ์„ ์ˆ˜๋™์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ฝ”๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์™„๋ฃŒ๋˜๊ณ  ๋ชจ๋“  ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•ด ์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์ „ํ™˜ ํ›„ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ์ด์ „ ๋ฒ„์ „์˜ ์ฝ”๋“œ์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๊ณ (์ผ๋ถ€ ์žฅ์†Œ์—์„œ๋Š” ์ตœ๋Œ€ 20~30%) ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ ์ฆ๊ฐ€(์ตœ๋Œ€ 10~15%)ํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ํ‘œ์ค€ ๋ฌธ์ž์—ด์˜ ์ตœ์ ์ด ์•„๋‹Œ ์„ฑ๋Šฅ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์•ฝ๊ฐ„ ์ˆ˜์ •๋œ ์ž์ฒด ๋ผ์ธ์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž„๋ฒ ๋””๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ปจํ…Œ์ด๋„ˆ ๊ตฌํ˜„์— ๋Œ€ํ•œ ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ๋„ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋นˆ(์š”์†Œ ์—†์Œ) std::map ๋ฐ std::set์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ตฌํ˜„ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ์ฝ”๋“œ์˜ ์ผ๋ถ€ ์œ„์น˜์—์„œ ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๋นˆ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ๋‹นํžˆ ๋งŽ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ๋ฉ”๋ชจ๋ฆฌ ์ปจํ…Œ์ด๋„ˆ๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ ์š”์†Œ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ํ• ๋‹น๋˜์ง€๋งŒ ์ด๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๋–จ์–ด์ง€๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(STLPort์— ๋น„ํ•ด). ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ ์ฝ”๋“œ์—์„œ๋Š” ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ด๋Ÿฌํ•œ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ Boost์˜ ๊ตฌํ˜„์œผ๋กœ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ์—๋Š” ์ด ๊ธฐ๋Šฅ์ด ์—†์—ˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ์†๋„ ์ €ํ•˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ์ฆ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ๋Œ€๊ทœ๋ชจ ๋ณ€๊ฒฝ์„ ํ•œ ํ›„์— ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต์€ ๋ฌธ์ œ ์—†์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํŠนํžˆ Windows ๊ตฌํ˜„์—์„œ ๋ฐ˜๋ณต๊ธฐ ๋””๋ฒ„๊น…์— ๋Œ€ํ•œ ์ง€์›์ด ์œ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹จ๊ณ„์ ์œผ๋กœ ๋ฐœ์ „ํ•˜์—ฌ 2017๋…„ ๋ด„(๋ฒ„์ „ 8.3.11 1C:Enterprise)๊นŒ์ง€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

C++14 ํ‘œ์ค€์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐ ์•ฝ 6๊ฐœ์›”์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋งค์šฐ ์šฐ์ˆ˜ํ•œ ์ž๊ฒฉ์„ ๊ฐ–์ถ˜ ํ•œ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ–ˆ์œผ๋ฉฐ ์ตœ์ข… ๋‹จ๊ณ„์—์„œ๋Š” UI, ์„œ๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ, ๊ฐœ๋ฐœ ๋ฐ ๊ด€๋ฆฌ ๋„๊ตฌ ๋“ฑ ํŠน์ • ์˜์—ญ์„ ๋‹ด๋‹นํ•˜๋Š” ํŒ€ ๋Œ€ํ‘œ๊ฐ€ ํ•ฉ๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ „ํ™˜์œผ๋กœ ์ธํ•ด ์ตœ์‹  ๋ฒ„์ „์˜ ํ‘œ์ค€์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ์ž‘์—…์ด ํฌ๊ฒŒ ๋‹จ์ˆœํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฒ„์ „ 1C:Enterprise 8.3.14(๊ฐœ๋ฐœ ์ค‘, ๋‚ด๋…„ ์ดˆ ์ถœ์‹œ ์˜ˆ์ •)๊ฐ€ ์ด๋ฏธ ํ‘œ์ค€์œผ๋กœ ์ด์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค. C++17.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ›„์—๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋” ๋งŽ์€ ์˜ต์…˜์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด์ „์— STL์˜ ์ˆ˜์ •๋œ ๋ฒ„์ „๊ณผ ํ•˜๋‚˜์˜ std ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด ์ด์ œ std ๋„ค์ž„์ŠคํŽ˜์ด์Šค, stdx ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋‚ด์žฅ ์ปดํŒŒ์ผ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ‘œ์ค€ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ ๋ถ€์ŠคํŠธ. ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋™ ์ƒ์„ฑ์ž์˜ "๋„ค์ดํ‹ฐ๋ธŒ" ๊ตฌํ˜„์€ ๊ฐœ๋ฐœ์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค(์ด๋™ ์ƒ์„ฑ์ž) ์—ฌ๋Ÿฌ ์ˆ˜์—…์— ๋Œ€ํ•ด. ํด๋ž˜์Šค์— ์ด๋™ ์ƒ์„ฑ์ž๊ฐ€ ์žˆ๊ณ  ์ด ํด๋ž˜์Šค๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐ์น˜๋œ ๊ฒฝ์šฐ STL์€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์š”์†Œ ๋ณต์‚ฌ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ™•์žฅ๋˜์–ด ์šฉ๋Ÿ‰์„ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žฌํ• ๋‹นํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ).

์˜ฅ์— ํ‹ฐ

์•„๋งˆ๋„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์œผ๋กœ ์ธํ•ด ๊ฐ€์žฅ ๋ถˆ์พŒํ•œ(๊ทธ๋Ÿฌ๋‚˜ ์ค‘์š”ํ•˜์ง€๋Š” ์•Š์€) ๊ฒฐ๊ณผ๋Š” ๊ทœ๋ชจ์˜ ์ฆ๊ฐ€์— ์ง๋ฉดํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. obj ํŒŒ์ผ, ๋ชจ๋“  ์ค‘๊ฐ„ ํŒŒ์ผ์ด ํฌํ•จ๋œ ๋นŒ๋“œ์˜ ์ „์ฒด ๊ฒฐ๊ณผ๋Š” 60-70GB๋ฅผ ์ฐจ์ง€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ์ƒ์„ฑ๋œ ์„œ๋น„์Šค ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ๋œ ์ค‘์š”ํ•ด์ง„ ์ตœ์‹  ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํŒŒ์ผ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž‘๋™์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ ๊ฐœ๋ฐœ ์‹œ ๋งŽ์€ ๋ถˆํŽธ์„ ์ดˆ๋ž˜ํ•˜๋ฉฐ, ํŠนํžˆ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ์„œ๋ฒ„์™€ ๊ฐœ๋ฐœ์ž ์ปดํ“จํ„ฐ์˜ ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ๋„ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋“ค์€ ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ํ”Œ๋žซํผ์„ ๋™์‹œ์— ์ž‘์—…ํ•˜๋ฉฐ ์ˆ˜๋ฐฑ ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์— ๋‹ฌํ•˜๋Š” ์ค‘๊ฐ„ ํŒŒ์ผ๋กœ ์ธํ•ด ์ž‘์—…์— ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋ถˆ์พŒํ•˜์ง€๋งŒ ์น˜๋ช…์ ์ด์ง€๋Š” ์•Š์œผ๋ฏ€๋กœ ํ˜„์žฌ๋กœ์„œ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์•ˆ ์ค‘ ํ•˜๋‚˜๋กœ ๊ธฐ์ˆ ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ๋‹ˆํ‹ฐ ๋นŒ๋“œ (ํŠนํžˆ ๊ตฌ๊ธ€์—์„œ๋Š” ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.)

์ถœ์ฒ˜ : habr.com

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