프로그래밍을 배우기 전에 생각해볼 것들
프로그래밍을 처음 시작하는 그 순간 두개의 다른 출발이 있다. 프로그래밍을 ‘목적’과 ‘수단’ 중 어떤 것으로 놓느냐 하는 것이다. 물론 이것이 불변은 아니다. 목적으로 출발했지만, 중간에 수단으로 바뀌기도 하고 반대도 가능하다. ...
프로그래밍을 처음 시작하는 그 순간 두개의 다른 출발이 있다. 프로그래밍을 ‘목적’과 ‘수단’ 중 어떤 것으로 놓느냐 하는 것이다. 물론 이것이 불변은 아니다. 목적으로 출발했지만, 중간에 수단으로 바뀌기도 하고 반대도 가능하다. ...
주류 언어 중 PHP만큼 비판받는 언어도 없다. PHP에 대한 비판이 지나치다 못 해 인신공격까지 서슴치 않는 경우도 있다. 오늘도 가루가 되도록 까이는 PHP를 위해 해명을 곁드린 PHP의 효용 가치에 대한 내 생각을 이야기 해보려고 한다. ...
평소 크게 신경을 쓰던 문제는 아닌데 이번에 관련 작업을 하면서 이게 간단한 문제는 아니라는 것을 알게 됐다. 이 문제가 어려운 이유는 그 해의 몇 주차인지에 대해서는 ISO 표준이 있는데, 월의 몇 주차인지에 대해서는 표준이 없기 때문이다. 아마 표준이 있었으면 이미 날짜 관련 함수 중에 있었을 것이다. ...
프로그래머는 자신만의 라이브러리 또는 프레임웤(이하 라이브러리만 표기)를 갖춰야 한다는 이야기가 있다. 경력이 쌓인 개발자라면 효율을 높이고 자신만의 무기(?)를 갖추기 위해서 필요하다는 것이다. ...
PHP는 웹에 특화된 언어다. 그렇게 때문에 애플리케이션이나 시스템 프로그래밍을 할 때 필요한 기능이 부족하다. 하지만 서비스를 만들다 보면 서버(데몬)처럼 웹을 벗어난 것이 필요 할 때가 생긴다. 이럴 때는 아파치(Apache)나 crond를 이용해 문제를 해결 할 수 있다. 그러나 아파치나 crond를 이용한 방법은 어느 정도 한계가 있기 때문에 경우에 따라 해결책이 되지는 못 한다. 이런 경우 백그라운드로 동작하는 데몬을 만드는 것이 깔끔하다. 데몬을 만드는 방법은 널리 알려져있기 때문에 거기에 맞춰 코드를 작성해도 되지만, 굳이 바퀴를 다시 발명 할 필요는 없을테니 System_Daemon PEAR 모듈을 이용하면 된다. System_Daemon 모듈을 사용한 간단한 예제를 우선 살펴보자. ...
멀티 프로세스끼리는 멀티쓰레드처럼 직접 변수에 접근하기 어렵기 때문에 공유 메모리 등과 같은 IPC를 이용해서 데이터를 주고 받는데, 복잡하고 다양한 기능이 필요없다면 메모리맵을 통해 서로 간단히 데이터를 공유 할 수 있다. ...
pthread를 사용하는 멀티쓰레드 데몬이라면 pthread_mutex_lock()을 사용해 잠금을 할 것이며, 멀티프로세스 데몬이라면 세마포어를 사용 할 것이다. ...
이번에 네이트(싸이월드) 해킹 사건을 계기로 주민등록번호나 비밀번호와 같은 것을 안전하게 저장하는 방법에 대해서 생각 해보았습니다. 물론 완전히 안전하게라는 것은 불가능한 이야기입니다. 상대적으로 안전하게 저장하는 방법만을 고민 해 볼 수 있겠습니다. ...
이번에도 스트레스에 지친 두뇌를 쉬게(?) 하기 위해 풀어본 심심풀이 프로그래밍 문제입니다. 연속으로 주어진 숫자들이 n개 있으면 이 숫자들의 간격이 1부터 n-1까지 종류별로 모두 있는 경우를 졸리 점퍼(Jolly jumper)라고 부른다. 예를 들어 1 4 2 3이라는 4개의 숫자가 있을 때 1과 4의 간격은 3, 4와 2의 간격은 2, 2와 3의 간격은 1로 1에서 3까지 모두 있다. ...
마음이 심난해서 심심풀이로 간단하게 풀만한 프로그래밍 문제가 없을까 검색하다 함수형 언어 포럼에 있는 프로그래밍 문제 게시판을 발견했습니다. 맨 위에 있는 문제 하나를 골라 풀어보았습니다. ...