Posts

태양계 크기

인터넷에서 '태양계' 또는 영어로 'solar system'을 검색하면 많은 그림을 볼 수 있다. 그러나 대부분의 그림이 각 행성간 거리를 축소해 표시한다. 정확한 비율로 표현하면 그림 대부분이 빈 공간으로 나올 것이다.

Read more...

여우 이야기

Feature image

영국에 온지 얼마 되지 않았을 때 처음으로 여우를 봤다. 겨울 이른 아침이었기에 아직 깜깜했다. 출근하려 기차역으로 가는 길에 화단에서 불쑥 여우가 나와서는 내 앞을 종종 걸어 사라졌다. 아무리 이른 시각이라지만 그래도 동네 한복판에 여우가 돌아다니는 게 신기하고 놀라웠다.

Read more...

Hugo: 외부 링크 새 탭에서 열기

블로그에서 외부 링크를 열때 새 탭을 쓰지 않고 현재 탭에서 링크를 여는 게 마음에 들지 않았다. 지난 수년 간 블로그를 운영하면서 이 문제를 깨닫지 못한 것은 아마도 링크를 열 때는 거의 항상 Cmd+클릭을 사용하는 내 습관 때문이었을 것이다. 최근에 문득, '외부 링크는 그냥 새 탭에서 여는 게 맞지 않을까?' 하는 생각이 들었다.

Read more...

Rust에서 명령행 인자 파싱

Rust에서는 명령행 인자를 어떻게 처리할까? 예전에 Rust로 작성한 HTTP 에코 서버 reflexive는 포트 번호가 하드코딩 되어 있고 워커 개수는 디폴트 값을 사용하고 있는데, 포트 번호와 워커 개수를 명령행 인자로 받으려면 어떻게 해야 할까?

Read more...

불운 5

1

계속 재택근무를 하다보니 어느새 아이들 학교에 데려다 주는 게 내 일이 되었다. 그날은 두 아이 모두 사이클 코치라는 자전거 연습 클럽에 가야 해 평소보다 일찍 집을 나섰다. 뭐가 마음에 안 드는지 자전거를 끌고 학교에 가면서 계속 투덜대는 아이들을 겨우 어르고 달래 학교에 넣었다.

Read more...

Rust Echo 서버

요즘 Rust를 조금씩 보고 있는데, 갑자기 Rust로 에코 서버를 만들어보면 어떨까 하는 생각이 들었다. 에코 서버는 요청을 그대로 리턴하는 서버를 말하며, 보통 클라이언트가 서버에 제대로 연결되었는지 테스트하는 용도로 사용된다.

Read more...

JSON 파서 구현 2 - 파서

1부에서 JSON 스캐너를 구현했다. JSON 스캐너는 JSON을 읽어 토큰 리스트를 생성한다. 이제 토큰 리스트를 읽어 데이터 구조로 바꿔줄 파서를 구현할 차례다.

Read more...

JSON 파서 구현 1 - 스캐너

LexYacc와 같은 스캐너/파서 생성기를 사용하지 않고 JSON 파서를 구현하는 방법을 2부에 걸쳐 정리하려 한다. 시리즈를 끝까지 읽고 나면, JSON 파서를 만드는 게 생각보다 어렵지 않음을 알게 될 것이다.

Read more...

Java 셸 스크립트

간단한 작업을 할 때는 스크립트가 좋지만, 난해하며 기억하기 어려운 문법을 생각하면 Bash를 쓰고 싶지는 않다. Ruby나 Python 또는 JavaScript를 쓰는 것도 가능하긴 하다. 그러나 나는 Ruby나 Python을 별로 좋아하지도 않고 익숙하지도 않다. JavaScript는 조금 낫지만 파일 처리 API에는 익숙하지 않다.

Read more...

채소단

'채소단'이란 말이 실제로 있는지는 모르겠다. 영어로는 bed, raised bed, 또는 vegetable planter라고 한다. 우리 말에는 화단이란 말은 있어도 채소단이란 말은 사전에 안 나온다. 그렇지만 화단은 아니니 여기서는 그냥 채소단이라 하겠다.

Read more...