[Rust] Simple Interpret 개발

Let’s Build A Simple Interpreter. Part 1. - Ruslan's Blog (ruslanspivak.com)

위 URL의 내용을 보고, Rust로 간단히 작성해보았다.

일단 Rust 언어 문법은 익숙하지 않아 막 작성한 느낌은 들지만, 점점 나아지리라 생각된다.



[Rust] 시간 서버! (v0.2) 개발

격겜을 주로 하다보니 주로 외국의 시간으로 표기되는 경우가 많은데, 

패치나 업데이트 시간을 UTC나 PST로 알려주는 경우가 많았다.

시간을 계산해야 하는 경우가 많은데, 서버의 시간을 알려주는 서비스가 하나 있으면 괜찮겠다라는 생각을 했다.

그래서 간단하게 만들어보았는데, 익숙하지 않은 Rust라는 언어에 Framework를 사용하고 있어 난항이다.

하나 문제가 생길때마다 그걸 해결해야 하니 시간이 많이 걸린다.

아무튼 어떻게든 서버의 Local 시간을 기준으로 뿌려주는 기능까진 완성하였다.

아직 완성되었다고 할수 없지만 아래 소스코드와 결과 화면을 간략하게 첨부해본다.


--- 결과 ---
(↑ 2020-02-24 업데이트)
--- 실행 ---

[Rust] 피보나치 수열! (v0.1) 개발

예전부터 Rust라는 언어에 관심을 가지게 되었고, 공부를 조금씩 하고 있었다.

한 1년 정도는 한글로 번역된 문서를 보거나 예제 코드를 직접 따라서 작성해보거나 Rust라는 언어에 익숙해지려고 시도를 했었던 것 같다. 
하지만 이 시간을 뒤돌아 본다면 Rust란 언어에 익숙해졌다는 느낌을 받지 못했다. (이상하다?)

이런저런 고민거리로 1년이란 시간이 지났다.

문서만 보고 예제 코드를 따라만 작성해서는 당연하다는 생각이 들었고, 
어떤 것이든 직접 코드를 작성해보자는 마음을 다졌지만, 
실천하기 어려웠다. 

막상 코드를 작성하려면 무엇을 해야 할지 모르겠다는 것인데, 이전에 다른 언어로 작성해본 예제 코드라던가, 이전에 풀었던 알고리즘 문제라던가, 이전에 한번이라도 해본 코드들을 Rust 언어로 다시 작성해자는 생각이 들었다.

또 이 마음 가짐이 언제까지 갈지는 모르겠지만, 일단 해보자.

--- 실행결과 ---
--- 소스코드 ---

const MAX_COUNT: u8 = 20;

fn main() {
    println!("--- [Fibonacci (v1)!] ---");
    fibonacci_v1();

    println!("--- [Fibonacci (v2)!] ---");
    let mut x = 0;
    let mut y = 1;
    fibonacci_v2(&mut x, &mut y);
}

fn fibonacci_v2(x1: &mut u32, y1: &mut u32) -> () {
    let mut z: u32;
    for i in 0..MAX_COUNT {
        z = *x1 + *y1;
        print!("{}", *x1);
        *x1 = *y1;
        *y1 = z;
        if i < (MAX_COUNT - 1) { print!(" "); }
    }
    println!("");
}

fn fibonacci_v1() -> () {
    let mut x = 0;
    let mut y = 1;
    let mut z: u32;
    for i in 0..MAX_COUNT {
        z = x + y;
        print!("{}", x);
        x = y;
        y = z;
        if i < (MAX_COUNT - 1) { print!(" "); }
    }
    println!("");
}

[C/C++] 피보나치 수열. (v0.1) 개발


위 유투브를 보다가 위의 영상을 보게 되었다. 

위 유투브는 우연찮게 보게 되었는데,

영상에서 나온 코드는 예전 내용일 것 같아 최근 버전에서는 어떤지 궁금해져서 작성해보게 되었다.

처음 의도는 분명 비교하는 것이었다만, 
하다보니 어셈블리어로 변환된 코드를 읽는 곳으로 빠지고 말았다.

그리고 gdb 사용 방법을 조금 더 알게된 것 같다.

gdb에서 디스어셈블을 보면 기본적으로 GAS 문법으로 출력해주는데, intel 문법으로 변환하고 싶을 때!
set disassembly-flavor intel

난 주로 함수 실행 후 디버깅을 s 명령을 사용하는데, 
이게 Step In으로 함수 내부로 들어가는 듯 해서, 혹시 함수 실행만 하고 다음 문장으로 넘어가고 싶을 때!
n (next)

--- 실행 결과 ---


--- 이하 코드 ---

#include <stdio.h>

int main(int argc, char** argv)
{
int x = 0, y = 1, z = 2;
while(x < 10)
{
printf("F = %d\n", x);
z = x + y;
x = y;
y = z;
}
return 0;
}


[리눅스] CentOS 6버전에서 라이브 마이그레이션? 리눅스


기존에 리눅스 VM에서 새로운 VM으로 온라인 상태에서 마이그레이션이 되는지 테스트를 해보았다.

이 테스트는 SE일을 하다가 한번은 마이그레이션을 해야할 뻔한 일이 있어서 시도하게 되었다. (결국 안했다.)

SSH와 tar 툴을 이용한 마이그레이션을 진행했는데 어찌어찌 성공한 것 같지만, 

아닌 것 같기도 하고 애매한데...

디테일이 부족한 것 같은데 나중에 이걸 보완해서 한번 시도해봐야 겠다.

1 2 3