- 4. 소유권 이해하기satorarehttps://rinthel.github.io/rust-lang-book-ko/ch04-00-understanding-ownership.html 소유권 이해하기 - The Rust Programming Language 소유권(Ownership)은 러스트의 가장 유니크한 특성이며, 러스트가 가비지 콜렉터 없이 메모리 안정성 보장을 하게 해줍니다. 그러므로, 소유권이 러스트 내에서 어떻게 동작하는지 이해하는 것은 rinthel.github.io 1. 소유권 1.1 소유권 규칙 러스트가 다루는 각각의 값은 소유자(owner) 변수를 가지고 있다. 특정 시점에 값의 소유자는 단 하나뿐이다. 소유자가 범위를 벗어나면 그 값은 제거된다. 기본적인 타입들은 주로 스택(Stack)에 저장되며, 범위(Scope)를 벗어..
- 2022-10-26 09:41:37
- rev-basic-5satorarerev-basic-4와 유사한 형태의 main함수를 볼 수 있습니다. 문자열 Wrong과 Correct의 출력을 결정짓는 부분은 라인 20의 조건문에 동반된 FUN_140001000 함수의 역할로 보입니다. 해당 함수를 살펴보겠습니다. FUN_140001000 함수의 내부에 반복문과 조건문이 존재합니다. while문은 총 0x17번 만큼 반복하며, 반복문 안의 조건문에 따라 리턴값이 달라집니다. 조건식은 다음과 같습니다. param_1[local_18] + param_1[local_18 + 1] != DAT_140003000[local_18] >> param_1은 인수로 받아온 사용자 입력 문자열입니다. >> local_18은 함수 FUN_140001000 내부 지역변수로 반복문의 제어변수 역할을 합니다..
- 2022-10-25 09:15:48
- rev-basic-4satoraremain 함수의 전체적인 움직임은 v4라는 배열에다가 사용자로부터 받은 입력 문자열을 저장해둡니다. (라인 5~7) 그 후, 함수 sub_140001000()을 통해서 키값을 대조하여 서로 맞는지 틀린지 비교하는 형태입니다. 함수 sub_1400011C0()과 sub_140001220()은 자세히는 들여다 보지않았지만 아마 각각이 printf와 scanf와 비슷한 동작을 하는것으로 유추됩니다. 키값을 알아내기 위하여 함수 sub_140001000()안을 살펴보겠습니다. 안에는 조건문이 또 하나 존재합니다. 이를 보기쉽게 쓰면 다음과 같습니다. for ( i=0; i> 4) != byte_140003000[i]){ return 0; } } return 1; >> 여기서 연산자 |은 OR 연산이며, 연산자 ..
- 2022-10-24 09:15:27
- 직관은 마법이 아니다. (Your intuitions are not magic)satorare원문 : https://www.lesswrong.com/posts/Psp8ZpYLCDJjshpRb/your-intuitions-are-not-magic 당신의 직관은 마법이 아니다. 통계학을 약간 알고 있는(각종 통계 기법들이 '왜', '어째서' 작동하는지 이해하진 못하지만, 그것을 사용하는 데에는 익숙한) 사람들은 종종 통계 기법들을 끔찍하게 오용하고 만다. 통계학적 테스트란 복잡한 수학 기법들이며, 검증하기 위해서 수많은 가정을 세운다. 문제는 이러한 가정들이 맞지 않았을 때, 대부분의 테스트는 깔끔하게 실패하는 것이 아니라 명백히 잘못된 결과를 산출한다는 것이다. 통계학은 마치 수학에서 무언가를 0으로 나누는 것과 같은 불가능한 연산을 수행하는 것을 요구하진 않지만, 어떠한 통계가 우리에게 알려..
- 2022-10-23 14:57:44
- 합리성이란 무엇인가? (What Do We Mean By "Rationality"?)satorare원문 : LessWrong forum - "What Do We Mean By "Rationality"?(written by Eliezer Yudkowsky) 두 가지의 의미가 있다. 인식론적 합리성 : 체계적으로 믿음의 정확성을 향상시킨다. 도구론적 합리성 : 체계적으로 가치를 성취한다. 첫 번째 개념은 간단하다. 당신은 잠에서 깼을 때 방 주위를 둘러보면서 테이블 위에 있는 노트북을 찾고, 벽에 밀착되어있는 책장을 찾을 것이다. 만약 눈이나 뇌가 이상하다면 당신의 정신 모델은 책장이 없는 책장이 존재한다고 말할 것이며, 책을 가지러 갔을 때 책장이 없는 것에 실망할 것이다. 이것은 거짓된 믿음, 즉 영토가 일치하지 않는 세계지도를 갖고 있는 것과 같다. 인식론적 합리성은 보다 정확한 지도..
- 2022-10-23 14:55:36
- 러스트 프로그래밍 가이드 연습문제 1 ~ 3satorare1. 화씨와 섭씨를 상호 변환. use std::io; fn main() { println!("Input the temperature: "); let mut temp = String::new(); io::stdin().read_line(&mut temp).expect("Failed to read_line"); let temp: f32 = temp.trim().parse().expect("Failed to parse"); println!("Select the option : \n 1) Convert Celsius to Fahrenheit. \n 2) Convert Fahrenheit to Celsius."); let mut option = String::new(); io::stdin().read_line(..
- 2022-10-23 14:53:41
- 3. 보편적인 프로그래밍 개념satorarehttps://rinthel.github.io/rust-lang-book-ko/ch03-00-common-programming-concepts.html 보편적인 프로그래밍 개념 - The Rust Programming Language 이번 챕터에서는 모든 프로그래밍 언어가 대부분 가진 개념이 Rust에서는 어떻게 다루어지는지 알아보고자 합니다. 많은 프로그래밍 언어가 보편적인 핵심요소를 갖습니다. 이번 챕터에서 Rust rinthel.github.io 1. 변수 Rust의 변수는 기본적으로 불변(immutable)입니다. 1.1 가변(mutable) 변수의 선언 let x = 6; // 이후 x = 3과 같이 값을 변경할 경우 컴파일 에러를 일으킨다. 1.2 상수와 불변 변수 (Constants Vs. ..
- 2022-10-23 14:26:44
- rev-basic-3satorare라인 8에서 조건문의 인수로 들어가는 함수 sub_140001000의 리턴값에 따라 Correct와 Wrong으로 결과가 나뉩니다. 해당 함수의 동작을 한 번 살펴봅시다. 또 하나의 조건문이 보입니다. 여기서 인수로 들어가는 연산을 한 번 살펴보겠습니다. byte_140003000[i] != (i ^ al[i]) + 2 * i >> 여기서 ^는 XOR연산입니다 >> *(al + i)는 배열 포인터를 i만큼 이동시킨다는 의미로 al[i]입니다 >> al은 해당 함수의 배열 파라미터입니다 즉, "al[i]와 i를 XOR 연산 한 값에 2 * i를 더한 값이 byte_140003000[i] 과 같냐? (단, i
- 2022-10-23 13:17:00
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)