스크립트(프로세스) 항상 띄워놓기

개발을 하다 보면 지속적으로 반복해서 처리해야 하는 작업을 만날 때가 있다. 이런 경우 데몬으로 만들어서 터미널이 종료되더라도 항상 백그라운드에서 돌아가도록 하면 된다. 조금 더 정성을 기울인다면 ntsysv나 update-rc.d 같은 도구를 사용해 부팅시 자동으로 실행되도록 한다. ...

1월 7, 2014 · 2 분 · Sangheon Han

OSX 사파리(Safari) 기본 글꼴 바꾸기

파이어폭스(Firefox)나 크롬(Chrome)과 달리 사파리는 설정 메뉴를 통해 기본 글꼴을 바꿀 수 없다. 그러나 defaults 명령을 사용해 변경하는 것은 가능하다. ...

11월 28, 2013 · 1 분 · Sangheon Han

PHP 내부 동작 들여다보기

gcc 컴파일러는 -S 옵션을 이용해 어셈블리어로 실제 C 언어의 내부 동작을 살펴 볼 수 있다. 하지만 PHP는 기본적으로 그러한 기능이 없으나, pthreads 모듈을 만든 Joe Watkins가 만든 explain이라는 모듈을 통해 어느 정도 PHP 내부 동작을 파악 할 수 있게 됐다. ...

11월 13, 2013 · 2 분 · Sangheon Han

OSX screen 색상 문제

OSX에 기본 설치 된 screen을 사용하면 256 color가 제대로 지원되지 않아 색상이 깨지는 문제가 있다. 이 문제는 screen이 256 color를 지원하지 않아 생기는 문제로 별도로 256 color를 지원하는 screen을 설치하면 손쉽게 해결 가능하다. ...

11월 11, 2013 · 1 분 · Sangheon Han

우분투에 PhpStorm 설치하기

윈도우나 맥과 달리 우분투(Ubuntu)에 PhpStorm을 사용하기 위해서는 몇가지 작업을 해주어야 한다. 우선 PhpStorm은 OpenJDK를 지원하지 않기 때문에 오라클 JDK를 설치해야 한다. ...

10월 17, 2013 · 1 분 · Sangheon Han

C 언어 헤더 파일 간 의존 관계 빌드하기

C 언어로 개발하다 보면 헤더 파일들끼리 의존성이 생겨나는데, 그 수가 적을 때는 수동으로 Makefile에 적어도 되지만 많아질 경우 수동으로 하기는 곤란해진다. 이럴 때 gccmakedep이라는 도구를 사용하면 자동으로 이런 헤더 사이 의존관계를 처리 할 수 있다. 최근에는 gccmakedep이 없는 경우가 보통이라 gcc -M 옵션을 사용하는 것을 더 추천한다. ...

10월 8, 2013 · 1 분 · Sangheon Han

프로그래밍을 배우기 전에 생각해볼 것들

프로그래밍을 처음 시작하는 그 순간 두개의 다른 출발이 있다. 프로그래밍을 ‘목적’과 ‘수단’ 중 어떤 것으로 놓느냐 하는 것이다. 물론 이것이 불변은 아니다. 목적으로 출발했지만, 중간에 수단으로 바뀌기도 하고 반대도 가능하다. ...

7월 1, 2013 · 4 분 · Sangheon Han

프로그래머, 열정을 말하다

이 블로그에는 독서 감상 같은 것을 올리지 않을 생각이었지만, 최근 소셜 미디어의 발달로 짧은 정보나 감상을 블로그에 올리는 경우가 줄은데다, 체계적으로 정리 할 정보는 따로 위키로 만들 생각이기에, 블로그에 올리는 글 범위를 조금 넓히기로 했다. ...

5월 25, 2013 · 1 분 · Sangheon Han

PHP는 정말 배울 가치가 없을까?

주류 언어 중 PHP만큼 비판받는 언어도 없다. PHP에 대한 비판이 지나치다 못 해 인신공격까지 서슴치 않는 경우도 있다. 오늘도 가루가 되도록 까이는 PHP를 위해 해명을 곁드린 PHP의 효용 가치에 대한 내 생각을 이야기 해보려고 한다. ...

4월 7, 2013 · 5 분 · Sangheon Han

월의 몇 주차인지 계산하기

평소 크게 신경을 쓰던 문제는 아닌데 이번에 관련 작업을 하면서 이게 간단한 문제는 아니라는 것을 알게 됐다. 이 문제가 어려운 이유는 그 해의 몇 주차인지에 대해서는 ISO 표준이 있는데, 월의 몇 주차인지에 대해서는 표준이 없기 때문이다. 아마 표준이 있었으면 이미 날짜 관련 함수 중에 있었을 것이다. ...

1월 3, 2013 · 3 분 · Sangheon Han