Posts

highligh.js 서버측 렌더링

블로그 글에 포함된 코드를 하이라이팅 하기 위해 highlight.js를 사용한다. highlight.js 역시 별도 JavaScript 파일을 로딩한 다음 페이지에 포함된 코드를 찾아 렌더링하는 식이라 페이지를 로드할 때마다 매번 다시 렌더링하는 비효율이 발생한다. MathJax 만큼 느리진 않지만, 가끔씩 네트워크 속도가 느린 환경에서 코드 블록이 울컥 하는 현상을 볼 수 있다. MathJax 서버측 렌더링에서 했던 것처럼 코드도 사이트를 생성할 때 한꺼번에 렌더링해두면 좋을 것 같다.

Read more...

MathJax 서버측 렌더링

블로그 글에 포함된 수식을 표현하기 위해 MathJax를 사용한다. MathJax 덕분에 수식을 멋지게 표현할 수 있지만 수식 렌더링 속도가 매우 느리다. 브라우저에서 처음 로드했을 때 페이지 안에 \rm\TeX 소스 코드가 그대로 있다. 이후 로딩된 JavaScript가 \rm\TeX 코드를 HTML/CSS, SVG 또는 MathML로 변환하고, 브라우저가 변환된 결과를 화면에 표시한다.

Read more...

JUnit 5 매개변수 테스트

JUnit 4에서는 매개변수 테스트(parameterized test)를 작성할 때 불편한 점이 몇 가지 있다. 가장 대표적인 단점은 다음과 같이 정리할 수 있겠다.

Read more...

회전 문자열 검사 방법

어떤 문자열이 다른 문자열의 회전 문자열인지 검사하려면 어떻게 해야 할까? 코딩 인터뷰에 많이 나올 듯 한 문제다. 트위터에서 이 문제를 보고는 잠깐 생각해 보았지만 풀이가 금방 떠오르지 않았다. 한동안 이런 종류의 퀴즈 풀이를 하지 않아서 그런 것 같다.

Read more...

org-mode 스프레드시트로 사용하기

Emacs에는 org-mode란 도구가 있다. 할 일 목록, 일정, 작업 로그를 정리할 때 유용하다. 행열 추가/삭제, 행열 이동 등 기본 표 편집도 가능하며, 표 안에서 간단한 계산도 가능하다. 여기서는 표 계산 방법을 간단히 살펴보려 한다. 이 글은 Org as a spreadsheet system: a short introduction을 참고해 정리한 것이다.

Read more...

Emacs: 숫자 범위 포함 텍스트 생성

나는 Vim과 Emacs를 모두 사용할 줄 알지만, 콘솔에서 간단한 로그 파일이나 설정 파일을 잠시 확인할 때를 빼고는 Emacs를 사용한다. 얼마 전 트위터에서 Vim의 흥미로운 기능을 봤다. 숫자 범위를 포함한 텍스트를 간단히 생성하는 방법이다.

Read more...

Emacs: 다이어그램 그리기

가끔씩 다이어그램을 그려야 할 때면 파워포인트를 이용했다. 파워포인트로 다이어그램을 그린 다음 스크린 캡쳐 이미지를 사용하는 식이다. 이 방법에는 심각한 단점이 하나 있다. 다이어그램을 수정하기가 매우 귀찮다는 점이다.

Read more...

프로젝트 오일러 회고

프로젝트 오일러의 처음 100문제를 모두 풀어 블로그에 정리했다. 처음 맛보기로 몇 문제 풀어보고는 재미를 붙여 '100번까지 풀어보자' 생각했다. 새로운 문제가 계속 추가되고 있었고 뒤로 갈수록 문제도 어려워졌기 때문에 모든 문제를 풀기는 무리일 것 같았고, 100번 정도까지가 적당해 보였다.

Read more...

Java 람다의 실체

Java에 람다 표현식이 추가된 지 꽤 됐지만, 람다 표현식이 컴파일러를 통해 익명 클래스로 변환되는 편의 문법 정도로 생각하는 경우가 많은 것 같다. 컴파일러가 생성한 클래스 파일을 살펴보고, 람다 표현식이 실제로 어떻게 컴파일 되는지 확인해보려 한다.

Read more...

한국 운전면허 적성검사 연기 신청

몇 달 전 한국 운전면허 적성검사를 받아야 한다는 소식을 동생에게 들었다. 한참을 미루다 인터넷을 검색하며 조금 알아보았더니 나처럼 해외 체류중인 경우는 적성검사를 연기할 수 있는데, 연기신청을 하려면 경찰서나 도로교통공단, 면허시험장을 방문해야 한다는 것이었다. 이런 젠장! 방문할 수 있으면 가서 그냥 적성검사를 받고 말겠다.

Read more...