ํ™ˆ ๐Ÿ† C++์˜ ์™•์ขŒ๋ฅผ ์ด์–ด๋ฐ›์„ ์ฐจ์„ธ๋Œ€ ์–ธ์–ด๋Š”?
ํฌ์ŠคํŠธ
์ทจ์†Œ

๐Ÿ† C++์˜ ์™•์ขŒ๋ฅผ ์ด์–ด๋ฐ›์„ ์ฐจ์„ธ๋Œ€ ์–ธ์–ด๋Š”?

HitCount


Contents


ํ™”๋ คํ•˜๊ฒŒ ํ•œ ์„ธ๋Œ€๋ฅผ ํ’๋ฏธํ–ˆ๋˜ C++์˜ ์™•์ขŒ๋ฅผ ์ด์„ ๋‹ค์Œ ์–ธ์–ด๋Š”?

20์—ฌ๋…„ ๋„˜๊ฒŒ C++ ๊ฐœ๋ฐœ์ž๋กœ ์‚ด์•„์˜ค๋‹ค๋ณด๋‹ˆ, ๋‹ค์Œ์— C++์˜ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•  ์–ธ์–ด์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ C++ ์™•์ขŒ๋ฅผ ์ด์–ด๋ฐ›์„ ์ฐจ์„ธ๋Œ€ ์–ธ์–ด๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌ ํ•ด ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ 3๊ฐ€์ง€ ์ฐจ์„ธ๋Œ€ ์–ธ์–ด๊ฐ€ ๊ทธ ํ›„๋ณด๋“ค์ธ๋ฐ์š”. ์•„์ง๊นŒ์ง€๋Š” ๋จผ์ € ์„ธ์ƒ์— ๋‚˜์˜จ ๋Ÿฌ์ŠคํŠธ๊ฐ€ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์šฐ์œ„๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌ๊ธ€์˜ ํž˜(Go์™€ Dart ์–ธ์–ด์˜ ์„ฑ๊ณต์ ์ธ ๊ฐœ๋ฐœ ๋…ธํ•˜์šฐ)์„ ์—…์€ ์นด๋ณธ๊ณผ ์ •ํ†ต C++์— ํ˜„๋Œ€์ ์ธ ์–ธ์–ด์˜ ์žฅ์ ์„ ์ ์ง„์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ์ง„ํ™”ํ•˜๊ณ  ์žˆ๋Š” Cppํ”„๋ก ํŠธ๋„ ๊ทธ ์˜ํ–ฅ๋ ฅ์„ ๋ฌด์‹œํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ์ด ๋ฉ๋‹ˆ๋‹ค.

๋Ÿฌ์ŠคํŠธ (Rust)

  • ๊ฐœ๋ฐœ : ๋Ÿฌ์ŠคํŠธ ์žฌ๋‹จ (Graydon Hoare; ๊ทธ๋ ˆ์ด๋“  ํ˜ธ์•„๋ ˆ)
  • ๋ชฉํ‘œ : C/C++์™€ ๋™๋“ฑํ•œ ์ˆ˜์ค€์˜ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๋ฉด์„œ ์•ˆ์ „์„ฑ, ๋™์‹œ์„ฑ์„ ๋ชฉํ‘œ๋กœ ํ•จ.
  • ๊นƒํ—ˆ๋ธŒ : https://github.com/rust-lang
  • ๋ฒ„์ „ : Rust 1.68.2 (2023.04.20 ํ˜„์žฌ)

์นด๋ณธ (Carbon)

  • ๊ฐœ๋ฐœ : ๊ตฌ๊ธ€
  • ๋ชฉํ‘œ : C++์„ ๋Œ€์ฒดํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๋ ˆ๊ฑฐ์‹œ C++์ฝ”๋“œ์™€์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ ๋‹ฌ์„ฑ์„ ๋ชฉํ‘œ๋กœ ํ•จ.
  • ๊นƒํ—ˆ๋ธŒ : https://github.com/carbon-language
  • ๋ฒ„์ „ : 2024๋…„(๋˜๋Š” 2025๋…„) 1.0 ์ถœ์‹œ ์˜ˆ์ƒ

Cppํ”„๋ก ํŠธ (Cppfront)

  • ๊ฐœ๋ฐœ : ISO C++ (Herb Sutter; ํ—ˆ๋ธŒ ์…”ํ„ฐ)
  • ๋ชฉํ‘œ : C++์˜ 10๋ฐฐ ๋” ๊ฐ„๋‹จํ•˜๊ณ , ์•ˆ์ „ํ•˜๋ฉฐ, ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•จ.
  • ๊นƒํ—ˆ๋ธŒ : https://github.com/hsutter
  • ๋ฒ„์ „ : ๋ฏธ์ •

๋Ÿฌ์ŠคํŠธ (Rust)

โœ”๋Ÿฌ์ŠคํŠธ๋Š” ๊ธฐ์กด ์ž๋ฃŒ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

์นด๋ณธ (Carbon)

๊ตฌ๊ธ€์—์„œ C++ ์ƒํƒœ๊ณ„ ์œ„์— ๊ตฌ์ถ•์„ ํ•˜๊ณ  ์žˆ๋Š” ์นด๋ณธ์€ C++๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์„ค๊ณ„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„ฑ๋Šฅ์„ ์ค‘์š”์‹œํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด.
  • ์‹ค์šฉ์ ์ด๊ณ  ์•ˆ์ „ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜.
  • ์ตœ์‹  ํ”Œ๋žซํผ, ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํ™˜๊ฒฝ์„ ๊ณ ๋ ค.
  • ์™„๋งŒํ•œ ํ•™์Šต ๊ณก์„ .
  • ๋น„์Šทํ•œ ํ‘œํ˜„์‹.
  • ๊ธฐ์กด C++ ์ฝ”๋“œ์™€์˜ ์›ํ™œํ•œ ์ƒํ˜ธ ์šด์šฉ์„ฑ ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜.

์•„์ง๊นŒ์ง€๋Š” ์ปดํŒŒ์ผ๋Ÿฌ(๋˜๋Š” ํˆด์ฒด์ธ)๊ฐ€ ์—†๊ณ  ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ง›๋ณด๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋ง›๋ณด๊ธฐ

Cppํ”„๋ก ํŠธ (Cppfront)

C++์€ 1985๋…„ ๋ฐœํ‘œ๋œ ์ด๋ž˜ ์ตœ๊ทผ์˜ C++20 ๋ฒ„์ „๊นŒ์ง€ ๋งค์šฐ ์˜ค๋žซ๋™์•ˆ ์ „์„ธ๊ณ„์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ๋ž‘๋ฐ›๊ณ  ์žˆ๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. 20์—ฌ๋…„ ์ „๊นŒ์ง€๋งŒ ํ•ด๋„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์ง€๊ธฐ ์œ„ํ•ด C/C++ ์–ธ์–ด๋ฅผ ๋ฐฐ์› ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” ์–ด์ฉŒ๋ฉด ๊ทธ ์—ญํ™œ์„ Cppํ”„๋ก ํŠธ๊ฐ€ ๋Œ€์‹ ํ• ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋„ค์š”.

  • ๊ธฐ์กด C++๊ณผ ์™„์ „ํžˆ ํ˜ธํ™˜๋˜๋Š” ์ƒˆ๋กœ์šด ๊ตฌ๋ฌธ(syntax)์œผ๋กœ ๊ฐ„๊ฒฐํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ฝ”๋”ฉ.
  • ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์„ ๊ธฐ๋ณธ์œผ๋กœ ์ง€์›.
  • C++20 ๋ชจ๋“ˆ๊ณผ C++23 import std๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํƒ‘์žฌ.
  • ํ˜„๋Œ€ํ™”๋œ ์–ธ์–ด๋กœ ํƒˆ๋ฐ”๊ฟˆ. (์•„๋ž˜์˜ ์˜ˆ์ œ ์ฐธ์กฐ)
1
2
3
4
5
6
7
8
9
main: () -> int = {  
    vec: std::vector<std::string> = ("hello", "cppfront");  
    view: std::span = vec;  
  
    for view do :(inout str: _) = {  
        len := decorate(str);  
        println(str, len);  
    }  
}
์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์šฐ๋‹นํƒ•ํƒ• ํƒ€์šฐ๋ฆฌ #005๐Ÿ’ฌ JSON ํŒŒ์ผ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ

์šฐ๋‹นํƒ•ํƒ• ํƒ€์šฐ๋ฆฌ #006๐Ÿ’ฌ INI ํŒŒ์ผ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ