본문 바로가기

전체 글130

명상 가이드, 7개의 차크라를 여는 방법. 아앙. "먼저, 척추의 기저에 위치한 지구 차크라를 열겠습니다.이 차크라는 생존과 관련이 있으며 두려움에 의해 차단됩니다." "당신은 생존에 대해 걱정하고 있지만, 그 두려움을 내려놓아야 합니다. 두려움이 개울을 따라 흘러가도록 하십시오. 이제 당신의 지구 차크라가 열렸습니다.""이번 차크라는 즐거움과 관련이 있으며 죄책감에 의해 차단됩니다. 이제 당신을 짓누르는 모든 죄책감을 바라보십시오. 무엇 때문에 자신을 탓하고 있습니까?" "이런 일들이 일어났다는 현실을 받아들이되, 그것들이 당신의 에너지를 흐리게 하고 독살하지 않도록 하십시오. 세상에 긍정적인 영향을 미치려면, 자신을 용서해야 합니다.""세 번째는 위장에 위치한 불의 차크라입니다." "이 차크라는 의지와 관련이 있으며, 수치심에 의해 차단됩니다. 무엇.. 2024. 7. 29.
Rust 기본, 구조체 (Struct) Rust 기본 : 구조체 (Struct)구조체는 관련 데이터를 그룹화 할 수 있게 해줍니다. 구조체 정의struct User { name: String, age: u8}fn struct_definition() { let user = User { name: String::from("Tom Riddle"), age: 17u8, }; println!("User's name: {}", user.name); println!("User's age: {}", user.age);} 구조체 수정struct ShopItem { name: String, quantity: u32, in_stock: bool,}fn mutation_structs(.. 2024. 7. 24.
로도스도전기 탐구: 레이리아에 빙의된 카라 AI와의 인터뷰 "파괴와 재생""너는 바로 진짜 적" "판, 나는 이 세계의 균형을 지키기 위해 존재한다. 로도스는 선과 악, 질서와 혼돈이 끊임없이 싸우는 장소다. 어느 한쪽이 완전히 승리하면, 이 섬은 멸망의 길로 들어설 것이다." "하지만, 당신은 사람들의 삶을 조종하고 있어. 그것이 옳은 일이라고 생각하는가?" 카라: "나는 단순히 이 섬의 파멸을 막으려는 것뿐이다. 나는 영원히 살아갈 수 있지만, 이 섬은 그렇지 않다. 나의 행동은 필연적인 것이다. 내가 원하는 것은 절대적인 승리가 아닌, 영원한 균형이다." 판: "그러나, 당신의 방식은 너무나도 냉혹하다. 사람들은 자신의 의지로 싸우고 살아가야 한다고 생각하지 않는가?" 카라: "그렇다. 그러나 나는 그들의 의지와 관계없이 이 섬을 지켜야 한다. 만약 내가 .. 2024. 7. 21.
Rust 기본, to_string() vs to_owned() Rust 기본 : to_string() vs to_owned() .to_string() - .to_string() 메서드는 ToString 트레이트의 일부입니다. - 이 메서드는 보통 Display 트레이트를 구현한 모든 타입에 대해 사용할 수 있습니다.    Display 트레이트는 주로 사람이 읽을 수 있는 형태로 객체를 문자열로 변환할 때 사용됩니다. ToString 트레이트는 fmt::Display 트레이트를 구현하는 모든 타입에 자동으로 구현됩니다.fmt::Display 트레이트를 구현하면 표준 라이브러리에서 아래 코드가 작동하게 된다.T가 fmt:: Display 트레이트면 ToString 트레이트도 동작한다.trait ToString { fn to_string(&self) -> Stri.. 2024. 7. 20.
Rust 기본 : UTF-8 문자열 (Strings) Rust 기본 : UTF-8 문자열 (Strings) 러스트는 기본 문자열 타입으로 UTF-8을 사용합니다.UTF (Unicode Transformation Format) &str, 문자열 슬라이스 (주소, 길이) - &str은 문자열의 일부를 보거나 참조할 수 있지만, 내용을 변경할 수는 없습니다. - &str은 UTF-8로 인코딩된 바이트의 연속을 참조하는 슬라이스입니다. - 문자열 슬라이스는 실제 데이터를 소유하지 않고, 기존 데이터에 대한 참조만을 가집니다. String (주소, 길이, 용량) - String은 크기를 조정할 수 있으며, 내용을 수정하거나 추가할 수 있는 UTF-8로 인코딩된 문자열입니다. - String 타입은 Rust의 표준 라이브러리에 포함되어 있으며, 메모리 관리와 관련된 .. 2024. 7. 17.
Rust 기본, 슬라이스 (Slice) Rust 기본 : 슬라이스 (Slice)슬라이스(Slice)는 컬렉션 내 연속적인 요소들을 참조(Borrow)합니다.여기서 '연속적'이란 요소들이 서로 인접해 있다는 의미입니다. 일반적으로 컬렉션 전체가 아닌 일부분만을 참조하고 싶을 때 Slice를 사용합니다. 슬라이스는 컬렉션의 일부를 Borrow 한다. - 불변 슬라이스(&[T]): 데이터의 일부에 대한 읽기 전용 접근을 허용합니다. - 가변 슬라이스(&mut [T]): 데이터의 일부에 대한 읽기 및 쓰기 접근을 허용합니다. 가변 슬라이스는 단순히 기존 데이터의 일부분에 대한 접근을 변경 가능하게 만들어 주는 것이지, 컬렉션의 구조 자체를 변경하거나 메모리를 확장하지는 않습니다.  문자열 유형String - 확장 가능하며, 힙에 할당된 문자열 (UT.. 2024. 7. 14.
Rust 기본, 참조 (Borrow) Rust 기본 : 참조 (Borrow) Borrow는, 참조를 생성하는 것입니다. - 참조는 규칙이나 제한이 있는 포인터입니다. - 참조는 소유권을 가지지 않습니다."borrow"는 참조를 생성하고 그 참조를 통해 데이터를 안전하게 사용할 수 있도록 하는 Rust의 규칙과 메커니즘을 포함하는 더 포괄적인 용어로 이해할 수 있습니다. 그래서 단순히 "reference"라고 하는 것과는 조금 다른 측면이 있습니다. Borrow를 참조로 읽으면 혼동이 덜하다.특히 C++ 사용자의 경우, Borrow는 참조(reference)에 약간의 규칙이 있다고 생각하면 쉽다.참조(Borrow) 사용하는 이유? - 성능을 위해서. - 소유권이 필요하지 않거나 원하지 않을 때. 참조(Borrow) 규칙. 1. 어느 시점에서든.. 2024. 7. 9.
Rust 기본, 소유권 (Ownership) Rust 기본 : 소유권 (Ownership) 소유권이란,메모리 및 기타 자원을 관리하기 위한 전략이다.컴파일 시간에 체크하는 규칙들이 있다.규칙: 1. 러스트에서 각 값은 '소유자'라고 불리는 변수를 가집니다. 2. 한 번에 하나의 소유자만 있을 수 있습니다. 3. 소유자가 유효 범위를 벗어나면, 그 값은 삭제됩니다. 소유권이 해결하는 문제 1. 메모리/리소스 누수 문제. 2. 이중 해제 문제. 3. 해제 후 사용 문제. 변수에서의 소유권 이동.fn main() { // 규칙 1 : 러스트에서 각 값은 '소유자'라고 불리는 변수를 가진다. s1, s2, s3. let s1 = String::from("Rust"); // heap allocated string. // 규칙 2 : 한 번에.. 2024. 7. 6.
Rust 기본, OBRM vs RAII Rust 기본 : 소유권 기반 리소스 관리 (OBRM : Ownership Based Resource Management) Rust는 리소스를 컴파일러가 관리한다. (OBRM : Ownership Based Resource Management.)C++은 라이브러리로 패턴을 제공한다. (RAII : Resource Acquisition Is Initialization.) Rust Box & Rc 스마트 포인터struct Car {}// Box : 힙 메모리의 ownership 전달 (=RAII 패턴 C++ unique_ptr)let car = Box::new(Car {});let car2 = car; // 레퍼런스 카운트가 증가하고 같은 힙 메모리를 가리킨다. (=RAII 패턴 C++ shared_.. 2024. 7. 6.