Rust κ°œκ΄„

λŸ¬μŠ€νŠΈλŠ” 2010년에 λ‚˜μ˜¨ μ Šμ€ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‹€.

νŒŒμ΄μ–΄ν­μŠ€λ₯Ό λ§Œλ“€μ—ˆκ³ , μ›Ήμ˜ λ°œμ „κ³Ό 자유λ₯Ό μΆ”κ΅¬ν•˜λŠ” λΉ„μ˜λ¦¬μž¬λ‹¨ λͺ¨μ§ˆλΌμ—μ„œ λ‚˜μ™”μœΌλ©°, μ‚¬μš©λ˜κ³  μžˆλ‹€.

λΉ„μŠ·ν•œ μ‹œκΈ°μ— λ‚˜μ˜¨ κ΅¬κΈ€μ˜ Go, μ• ν”Œμ˜ μŠ€μœ„ν”„νŠΈμ™€ λΉ„κ΅λ˜κ³€ ν•˜λŠ”λ° λŸ¬μŠ€νŠΈλŠ” μ§€ν–₯점이 많이 λ‹€λ₯΄λ‹€.

goλ‚˜ μŠ€μœ„ν”„νŠΈλŠ” 레퍼런슀 μΉ΄μš΄νŒ… λ“± μ˜€λ²„ν—€λ“œκ°€ λ‹€μ†Œ λ°œμƒν•˜λŠ” μ‹œμŠ€ν…œμ„ μ±„μš©ν•΄μ„œ c/c++μ—λŠ” λΉ„λΉŒ 엄두도 λ‚΄μ§€ λͺ»ν•˜λŠ”λ°,

RustλŠ” μ• μ΄ˆμ— C/C++을 λŒ€μ²΄ν•˜κ³ μž λ§Œλ“  μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž˜λ° 언어라 λ™λ“±ν•œ μ„±λŠ₯을 뽑아낼 수 μžˆλ‹€.

Rustκ°€ μΆ”κ΅¬ν•˜λŠ” 것은 λΉ„μš©μ—†λŠ” 좔상화와 μ•ˆμ „ν•œ μžμ›μ˜ 관리닀.

기쑴의 c/c++μ—μ„œλŠ” μžμ›μ˜ 관리λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ ν’€μ–΄μ€˜μ•Ό ν•΄μ„œ λΆˆνŽΈν•œλ°λ‹€ μ‹€μˆ˜λ‘œ λˆ„μˆ˜κ°€ λ°œμƒν•  μœ„ν—˜μ΄ λ†’μ•˜λ‹€.(c++은 μŠ€λ§ˆνŠΈν¬μΈν„°λ₯Ό μ“°λ©΄ λ˜κΈ΄ν•œλ‹€.)

RustλŠ” μ΄λŸ¬ν•œ 점을 λ³΄μ™„ν•˜κ³ μž c++의 unique_ptr, move semanticκ³Ό μœ μ‚¬ν•œ κΈ°λŠ₯을 μ–Έμ–΄ μ°¨μ›μ—μ„œ μ μš©ν•΄μ„œ, μžμ›μ— μ†Œμœ κΆŒμ„ λΆ€μ—¬ν•˜κ³  μžμ›μ˜ 좩돌과 λˆ„μˆ˜λ₯Ό 미연에 λ°©μ§€ν•œλ‹€.

그리고 ν•˜μŠ€μΌˆ 같은 ν•¨μˆ˜ν˜•μ–Έμ–΄μ˜ κΈ°λ³Έ μƒμˆ˜λ₯Ό μ±„μš©ν•΄μ„œ μ„ μ–Έμ˜ κΈ°λ³Έ ν˜•νƒœλŠ” μƒμˆ˜κ°€ λœλ‹€.
let num=5;은 μƒμˆ˜κ³ 
let mut num=6;κ°€ λ³€μˆ˜λ‹€.

μ΄μ™Έμ—λŠ” ν•„μˆ˜μ μΈ κΈ°λŠ₯λ“€λ§Œ λ”± λ„£κ³  μ–Έμ–΄λ₯Ό κ°€λ³κ²Œ ν•˜κ³ μž ν•˜λŠ” μ˜λ„κ°€ 보인닀.

ν‚€μ›Œλ“œμ˜ μˆ˜λ„ μƒλ‹Ήνžˆ 적고 μ‹¬ν”Œν•œ 편이고, μ˜€λ²„λ‘œλ”©λ„ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.(νŒ¨ν„΄λ§€μΉ­κ³Ό νŠœν”Œμ„ μ‘μš©ν•˜λ©΄ λŒ€μ²΄ κ°€λŠ₯ν•˜λ‹€.)

Rust의 ν‘œμ–΄ 쀑 ν•˜λ‚˜κ°€ '컴파일 νƒ€μž„μ— 였λ₯˜λ₯Ό λ‹€ μž‘κ² λ‹€!'λŠ” 것이닀.
μ²΄ν¬ν•˜λŠ” 게 λ§Žμ•„μ„œ 컴파일이 였래 κ±Έλ¦°λ‹€.
그리고 μ‹€μˆ˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œ 문법도 μƒλ‹Ήνžˆ μ—„κ²©ν•˜κ²Œ κ°€λ‘¬λ†“μ•˜λ‹€.

νŒ¨λŸ¬λ‹€μž„μ„ κ΅¬λΆ„ν•˜μžλ©΄ 객체지ν–₯적+ν•¨μˆ˜ν˜•+λͺ…λ Ήν˜•... 인데
κ·Έλƒ₯ c++μ΄λ‚˜ μŠ€μœ„ν”„νŠΈκ°™μ€ 짬뽕언어닀.

그리고 λ°€μ–΄μ£ΌλŠ” λŒ€μƒμΈ λͺ¨μ§ˆλΌκ°€ λΉ„μ˜λ¦¬μž¬λ‹¨μ΄λΌ..
μΈκΈ°λŠ” λ‚˜λ¦„ λ§Žμ€λ° μ•ˆνƒ€κΉκ²Œλ„ 뒷심이 λ”Έλ €μ„œ μ‚¬μš©λ₯ μ€ λ†’μ§€ μ•Šλ‹€.