๊ฐœ๋ฐœ ๊ด€๋ จ Cheat Sheet

Cheat Sheet ๐Ÿ“œ ์ฝ”ํ‹€๋ฆฐ Cheat Sheet : ์ฝ”ํ‹€๋ฆฐ์„ ๋ฐฐ์›Œ๋†“๊ณ  ์•ˆ์จ๋จน๋‹ค๋ณด๋‹ˆ ๊นŒ๋จน๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•„ ์ฐพ์•„์˜จ Cheat Sheet Coding Test ๐Ÿงฉ cpp-๋ฌธ๋ฒ•-์ •๋ฆฌ : ์ฝ”ํ…Œ์šฉ C++ ๋ฌธ๋ฒ• ์ •๋ฆฌ cpp-๋ฌธ์ž์—ด : ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ํŒ cpp-์ฝ”ํ…Œ : ์ฝ”ํ…Œ ๊ด€๋ จ ์ž์ฃผ ๋‚˜์˜ค๋Š” ํŒจํ„ด๋“ค ShortCuts ๐Ÿš€ [[LSP-Cheat-Sheet]] : Neovim Language Server Cheat Sheet Vim-Cheat-Sheet : Vim Cheat Sheet [[AeroSpace-macOS]] : ์œˆ๋„์šฐ ๊ด€๋ฆฌ ํˆด

April 19, 2024

๋Ÿฌ์ŠคํŠธ์˜ ์ปฌ๋ ‰์…˜ ๋ชจ์•„๋ณด๊ธฐ

8.0.0 Common Collections ๋Ÿฌ์ŠคํŠธ์˜ std::collections ๋ชจ๋“ˆ์€ ์—ฌ๋Ÿฌ ์œ ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ธ ์ปฌ๋ ‰์…˜์„ ์ œ๊ณตํ•œ๋‹ค. heap์— ์ €์žฅ๋˜๋Š” ์ปฌ๋ ‰์…˜๋“ค์€ ์ปดํŒŒ์ผ ์‹œ์ ์— ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์—†๊ณ  ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ค„์–ด๋“ค๊ฑฐ๋‚˜ ํ•œ๋‹ค. ์ด๋ฒˆ ์žฅ์—์„œ๋Š” Vec<T>, String, HashMap<K, V>์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค. 8.1.0 Storing Lists of Values with Vectors Vec<T>๋Š” ๊ฐ€๋ณ€ ๊ธธ์ด์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์ด๋‹ค. Vec<T>๋Š” ๋™์ผํ•œ ํƒ€์ž…์˜ ์—ฌ๋Ÿฌ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค์Œ ์ž๋ฃŒ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์˜†์นธ์— ์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. (๋ฐฐ์—ด) 8.1.1 Creating a New Vector Vec<T>๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค....

April 14, 2024

Package, Crates, Modules

7.0 ํŒจํ‚ค์ง€, ํฌ๋ž˜์ดํŠธ, ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด ์ปค์ง€๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์ง€๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ด์ง„๋‹ค, ๊ธฐ๋Šฅ์„ ๋‹จ์œ„๋กœ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ๋‚˜๋ˆ ์•ผ ๊ด€๋ฆฌํ•˜๋Š”๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๋‹ค. ์ด ์ฑ•ํ„ฐ๋Š” ๊ทธ๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค. ๋†’์€ ๋ ˆ๋ฒจ์—์„œ์˜ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์œ„ํ•ด encaptulating, implementing๋“ฑ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค. ์‹ค์ œ ๊ตฌํ˜„์„ ์•Œ์ง€ ๋ชปํ•ด๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค. scope์™€ namespace๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค. ์œ„์— ๋‚ด์šฉ๋“ค์„ ์•„์šฐ๋ฅด๋Š” ๋Ÿฌ์ŠคํŠธ์˜ ๋ชจ๋“ˆํ™” ์‹œ์Šคํ…œ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. package : ํฌ๋ ˆ์ดํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๋‹จ์œ„ crate : ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ์‹คํ–‰ํŒŒ์ผ์„ ๋นŒ๋“œํ•˜๋Š” ๋‹จ์œ„ module : ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  namespace๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋‹จ์œ„ path : ๋ชจ๋“ˆ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ• 7....

April 13, 2024

์ง์ผˆ๋Ÿฌ์˜ ์ธํ„ฐ๋ทฐ๋ฅผ ๋ณด๊ณ  ๋“  ์ƒ๊ฐ

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

April 13, 2024

Blog์— ๋Œ€ํ•œ ์ƒ๊ฐ ์ •๋ฆฌ ๊ธ€

๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์‹œ๊ฐ„์„ ์Ÿ๊ณ , ๊ธ€์„ ์“ฐ๋ฉด์„œ ๋“ค๋˜ ์ƒ๊ฐ๋“ค 3์›”๊ณผ 4์›”๊ฐ„ ๊ฐ€์žฅ ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์€๊ฑด ๋ธ”๋กœ๊ทธ์™€ neovim์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์›ํ•˜๋Š” ๋งŒํผ์˜ ๊ณต๋ถ€ ์ง„๋„๊ฐ€ ์•„๋‹ˆ๋ผ ์•„์‰ฌ์šด ์™€์ค‘์—, ๋ธ”๋กœ๊ทธ๋“ฑ์— ๋ญ”๊ฐ€ ๊ฐœ์ธ ์‹œ๊ฐ„์„ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์ด ์ผ๋‚˜ ์‹ถ์–ด์„œ ๋“œ๋Š” ์ƒ๊ฐ์„ ์จ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ ๊ณ„๊ธฐ ์‹œ์ž‘์€ ๋‹น์—ฐํžˆ ์ด์ง๊ณผ ๊ด€๋ จ๋œ ์ด์œ ์˜€๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ํšŒ์‚ฌ ์ผ์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ ๋‚ด์šฉ์„ ์ด๋ ฅ์„œ์— ์ •๋ฆฌํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์•˜๊ณ , ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋‚ด๊ธฐ์—๋„, ๊ธˆ์ „์ ์œผ๋กœ ์—ฎ์ธ๊ฒŒ ๋งŽ์•„ ์˜ฌ๋ฆด ์ˆ˜ ์—†์–ด ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค. ์ ์–ด๋„ ๋‚ด ์ทจํ–ฅ์— ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ , ๊ธฐ๊ณ„์ ์œผ๋กœ ์ •๋ฆฌ๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€, ์–ด๋–ค ๊ณต๋ถ€๋ฅผ ํ–ˆ๋Š”์ง€, ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋ฅผ ํ–ˆ๋Š”์ง€ ์ •๋ฆฌ๊ฐ€ ๋˜์–ด ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ์˜ ์—ญํ• ์„ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๋‹ค....

April 13, 2024

Enums and Pattern Matching in Rust

6 Enum and Pattern Matching In this chapter, weโ€™ll look at enumerations, also referred to as enums. Enums allow you to define a type by enumerating its possible variants ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์˜ ๋ชฉ๋ก์„ ์—ด๊ฑฐํ•˜์—ฌ ํƒ€์ž…์„ ์ •์˜ํ•œ๋‹ค๋Š” ์ •์˜๊ฐ€ ๋งˆ์Œ์— ๋“ ๋‹ค. ๋ณดํ†ต ์ƒ๋Œ€์ ์œผ๋กœ ์ƒˆ๋กœ์šด ์–ธ์–ด๋“ค์ด ๋ช…์‹œ์ ์ด๋ฉด์„œ ๊ฒฝ์ œ์ ์ด๋ฉด์„œ ์˜ˆ์œ ๋ฌธ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š”๋ฐ ๋Ÿฌ์ŠคํŠธ์˜ enum์ด ํŠนํžˆ ๊ทธ๋Ÿฐ ๋Š๋‚Œ์ด๋‹ค. 6.1 Defining an Enum ๊ตฌ์กฐ์ฒด๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค๋ฉด, enum์€ ํŠน์ •ํ•œ ๊ฐ’์ด ๊ฐ€์งˆ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ์ •์˜ํ•œ๋‹ค....

April 9, 2024

Using Structs to Structure Related Data

5.0 Defining and Instantiating Structs struct User { username: String, email: String, sign_in_count: u64, active: bool, } ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠœํ”Œ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํŠœํ”Œ๋ณด๋‹ค ๋” ๋งŽ์€ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. cpp์˜ ๊ตฌ์กฐ์ฒด์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ts์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์œ ์‚ฌํ•˜๋‹ค. struct ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜ํ•œ๋‹ค. fn main() { let user1 = User { email: String::from("some@example.com"), username: String::from("someusername"), active: true, sign_in_count: 1, } .์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ instance๊ฐ€ mutableํ•˜๋‹ค๋ฉด ํ•„๋“œ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค....

April 9, 2024

Understanding the Ownership of the Rust Programming Language

4.0 Ownership ์†Œ์œ ๊ถŒ์€ ๋Ÿฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ํŠน์ง•์ ์ธ ๊ฐœ๋…์ด๋‹ค, ๋Ÿฌ์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ, ๋˜๋Š” ๋Ÿฌ์ŠคํŠธ๊ฐ€ ์™œ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๋ณด๋‹ค ์ฃผ๋ชฉ๋ฐ›๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์žฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. 4.1.1 What is Ownership? Ownership์€ ๋Ÿฌ์ŠคํŠธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ทœ์น™์ด๋‹ค. ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๋‘ ๊ฐˆ๋ž˜๋Š” GC(Garbage Collection)์™€ ์ˆ˜๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋กœ ๋ณผ ์ˆ˜์žˆ๋‹ค. GC๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š”๋™์•ˆ, ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐพ์•„๋‚ด๊ณ  ํ•ด์ฒดํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ˆ˜๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‹น์—ฐํžˆ GC๊ฐ€ ํŽธ๋ฆฌํ•˜๊ณ  ์•ˆ์ „ํ•˜์ง€๋งŒ, ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค....

April 5, 2024

Neovim ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜(?) ํ•˜๊ธฐ

01. ์™œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ•˜๊ฒŒ ๋˜์—ˆ์„๊นŒ? ์‚ฌ์‹ค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ•˜๋ ค๊ณ  ํ•˜์ง€๋Š” ์•Š์•˜๊ณ , ๊ธฐ์กด Neovim ์„ค์ •์—์„œ ๋งˆ์Œ์— ์•ˆ๋“œ๋Š” ๋ถ€๋ถ„๋“ค์ด ์กฐ๊ธˆ ์žˆ์–ด์„œ ๊ทธ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์ง€๋‚œ๋ฒˆ ์„ค์ •์„ ๋”ฐ๋ผํ–ˆ์—ˆ๋˜ ์œ ํŠœ๋ฒ„๊ฐ€ 2024๋…„ ์„ค์ •์ด๋ผ๋Š” ์˜์ƒ์œผ๋กœ ๊ธฐ์กด Neovim ์„ค์ • ๊ฐ€์ด๋“œ ์˜์ƒ์„ ๋ฆฌ๋‰ด์–ผํ–ˆ๋‹ค. packer๋‚˜ lsp-saga์™€ ๊ฐ™์ด ๊ธฐ์กด์— ๋ถˆํŽธํ•˜๋˜ ๋ถ€๋ถ„๋“ค์„ ๊ท€์‹ ๊ฐ™์ด ๋บ€ ์˜์ƒ์ž„์„ ํ™•์ธํ•˜๊ณ  ๋ฐ”๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด๋ผ๊ณ  ํ•˜๊ธฐ๋Š” ์‚ฌ์‹ค ์• ๋งคํ•˜๊ณ  ์™„์ „ ์ƒˆ๋กญ๊ฒŒ ์„ค์ •์„ ํ•˜๊ณ , ๊ธฐ์กด ์„ค์ •์„ ์ƒˆ๋กœ์šด ์„ค์ •์— ๋ง๋ถ™์˜€๋‹ค๊ณ  ๋ณด๋Š”๊ฒŒ ๋งž์„ ๊ฒƒ ๊ฐ™๋‹ค. ํ•ด๋‹น ์„ค์ •์„ ๋‹ค์‹œ ํ•˜๋ฉด์„œ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์•ฝ๊ฐ„์˜ ๋‚ด์šฉ์ •๋ฆฌ์™€, ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ๋ง๋ถ™์—ฌ ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค....

April 5, 2024

Hello, World! this is my new vimwiki page

April 5, 2024