PHP로 서버(데몬) 만들기

PHP는 웹에 특화된 언어다. 그렇게 때문에 애플리케이션이나 시스템 프로그래밍을 할 때 필요한 기능이 부족하다. 하지만 서비스를 만들다 보면 서버(데몬)처럼 웹을 벗어난 것이 필요 할 때가 생긴다. 이럴 때는 아파치(Apache)나 crond를 이용해 문제를 해결 할 수 있다. 그러나 아파치나 crond를 이용한 방법은 어느 정도 한계가 있기 때문에 경우에 따라 해결책이 되지는 못 한다. 이런 경우 백그라운드로 동작하는 데몬을 만드는 것이 깔끔하다. 데몬을 만드는 방법은 널리 알려져있기 때문에 거기에 맞춰 코드를 작성해도 되지만, 굳이 바퀴를 다시 발명 할 필요는 없을테니 System_Daemon PEAR 모듈을 이용하면 된다. System_Daemon 모듈을 사용한 간단한 예제를 우선 살펴보자. ...

9월 25, 2012 · 2 분 · Sangheon Han

멀티 프로세스끼리 간단한 데이터 공유 방법 – mmap()

멀티 프로세스끼리는 멀티쓰레드처럼 직접 변수에 접근하기 어렵기 때문에 공유 메모리 등과 같은 IPC를 이용해서 데이터를 주고 받는데, 복잡하고 다양한 기능이 필요없다면 메모리맵을 통해 서로 간단히 데이터를 공유 할 수 있다. ...

9월 23, 2012 · 1 분 · Sangheon Han

멀티프로세스 데몬에서 락킹(Locking)하기

pthread를 사용하는 멀티쓰레드 데몬이라면 pthread_mutex_lock()을 사용해 잠금을 할 것이며, 멀티프로세스 데몬이라면 세마포어를 사용 할 것이다. ...

9월 21, 2012 · 1 분 · Sangheon Han

리눅스에서 SSD 자동 트림(TRIM)하기

/etc/fstab 파일을 열어 아래처럼 discard 옵션을 추가한 다음 리부팅 한다. 1 UUID=fb94868a-79a8-4cde-b836-696b90fb89bd / ext4 discard,errors=remount-ro 0 1 자동 트림 동작 여부는 아래 명령으로 확인 할 수 있다. 1 cat /sys/block/sda/queue/discard_zeroes_data 자동 트림 기능은 리눅스 커널 2.6.33과 EXT4 파일 시스템에서 동작한다. ...

9월 18, 2012 · 1 분 · Sangheon Han

CRTC 148번의 요청한 위치/크기가 허용하는 크기 제한을 넘어갑니다

ACER ASPIRE-5552G 노트북과 DELL U2311H 모니터를 사용하고 있습니다. 우분투 12.04에서 듀얼 모니터를 사용하려고 하면 이런 오류 메시지를 출력하면서 제대로 동작하지 않습니다. CRTC 148번의 요청한 위치/크기가 허용하는 크기 제한을 넘어갑니다. 위치=(1920, 0), 크기=(1366, 768), 최대=(1920, 1920) ...

7월 11, 2012 · 1 분 · Sangheon Han

CentOS 리부팅 후에도 VNC 접속을 허용하는 방법

별도의 VNC 서버를 사용하지 않고 CentOS에 접속하기 위해서는 사용자로 로그인이 된 상태여야 합니다. 그러기 위해서 리부팅 후 자동으로 사용자로 로그인 하도록 설정합니다. ...

7월 4, 2012 · 2 분 · Sangheon Han

PHP로 지리좌표계 변환하기

개발자들이 지리좌표계 내지는 지리정보를 다뤄야 할 일이 점점 많아지고 있습니다. 특히 모바일처럼 위치 정보를 손쉽게 얻을 수 있는 장비가 널리 보급이 되면서 웬만한 앱은 대부분 위치(지리좌표)를 활용하고 있는 상황입니다. ...

7월 3, 2012 · 2 분 · Sangheon Han

gearmand RPM 빌드해서 설치시 log 관련 에러 메시지 해결 방법

gearmand 0.33을 RPM으로 빌드해서(make rpm) 설치 할 경우 시작시 로그 파일을 /usr/local/var/log/ 디렉토리에 생성하려면서 에러 메시지를 출력 합니다. 이 메시지는 /etc/sysconfig/gearmand 파일을 만들어 그 안에 옵션으로 로그 파일 위치를 정상적인 /var/log 디렉토리로 다시 지정하여 나오지 않게 할 수 있습니다. ...

6월 11, 2012 · 1 분 · Sangheon Han

PHP 클래스 매직메소드 __get(), __set() 예제

PHP에는 __get(), __set()이란 특별한 매직메소드가 있습니다. 이 매직메소드의 사용에 대해서 여러 논란이 있기는 하지만, 개인적으로 적절히 사용을 한다면 매우 유용하다고 생각합니다. 매직 메소드를 구현하는 방법은 여러가지이지만 그 중 간단하면서도 유용한 코드 하나를 소개 합니다. ...

1월 24, 2012 · 1 분 · Sangheon Han

사용 중인 파이어폭스 애드온들

요즘 파이어폭스가 크롬에 다소 밀리는듯 합니다만 아직 저는 파이어폭스를 주력으로 사용하고 있습니다. 그동안 써온 애드온들과 다양한 플랫폼을 잘 지원하고 있다는 점 때문입니다. ...

11월 13, 2011 · 1 분 · Sangheon Han