그 놈(linux의 GNOME??) 이 또 왔습니다.
날이면 날마다 오는 .... 그 놈이 사실은 맞습니다.

한 2주 이상 새벽 퇴근(5시까정 일하다가 간적도 몇 번 인가 있었죠.) 이거나,
날 밤을 세우기도 하고....

새로 하는 프로젝트를 php로 개발을 계속 할 듯 싶더니 개발환경이 자바로 뒤집기를 하는 탓에..
일이 바쁘더라도,
php로 개발을 했다면 저도 가끔 개발서 찾아보고 하면서 알게 된 php의 음모(흠~ 음모라..)들을
그 사이에 tiptech 에 까발릴수 있었을 텐데요. 너무 뜸해져 버렸네요.

개인적으로 단지 웹프로젝트라면, php로 개발을 하는것이 좋겠다는 생각은 많이 합니다만,
일단 php로 작업하는 경우 디비와의 연동 등에서 트랜잭션을 보장 받거나, 에러처리를 좀 더 인터랙팁하게
하는 부분이 그다지 안정적이지는 못한것 같습니다.
그리고 웹 자원외의 다른 자원을 얻어다 쓴다거나 다른 애플리케이션과의 연동 등을 고려한다면,
.. 음...좀 깊이 생각할 문제인듯 싶네요.

가만이 생각해 보니까.. 제가 php를 좋아하는 이유의 첫째는 일단 .. 처리속도가 빠르다.. 란 점이란
생각이 드는군요.
//주석시작
저는 시스템이나 환경에 대한 부분보다는(어쩌면, 더 핵심적인 부분일 수도 있겠지만,,,,)
개념적으로 어떻게 하면 (프로그램 상에서) 좀 더 readability 를 고려한 코드로 작성을 하지?
혹은 더 효율적이거나 괜찮은 로직으로 만들수는 없을까?
요넘들 자주 쓰이는 넘들이니까.. 아예.. 패키지나 컴포넌트로 만들고 싶은데...
뭐 이런것을 더 중요히 여기는 사람이다 보니까네.. zend optimization 같은거 쓰지 않아도,
..정말 처리속도 빠르단.. 생각을 많이 합니다.
//주석끝..
그리고 개발 속도가 다른 언어보다 빠른것 같습니다. copyleft진영에서 쏘는.. 훌륭한 함수들
감사하단 마음으로 잘 가져다 쓰기만 하면 되죠.



오늘도 사설이 너무 길었습니다.(알긴 아냐?)
요즘 사람과의 대화가 거의 단절된 생활을 하다보니.. 상태가 약간 메롱~인듯 싶기도 하고..

본론으로 갑니다.
지난번에 자료형에 대한 애매한 부분을 언급하였습니다.(물론 몇 가지 안되지만, 훌륭한 개발자가 되실려면,
스스로 책도 찾아보고, 레퍼런스싸이트도 뒤져보셔야 합니다. 역시.. 저는 흠냐~~ 훌륭한 개발자는 아닙니다.)
이번에는 그런한 문제들을 (변수의 state 파악 등..) 처리하는데 도움이 되는 함수들을 살펴 보려고 합니다.

gettype()
일단 변수들의 type을 반환 받는 함수로 gettype() 함수가 있구요.
gettype함수의 리턴값은 integer, double, string, array, object, class, unknown type 이렇게 7개 입니다.
별로 이해가 안되는 반환값은 없을 듯 싶습니다.

우리는 우선 우리가 알고 싶은 변수의 이름을 $var_name 이라고 합시다.
>>> if( gettype($var_name) == "integer") echo("var_name 은 정수다");
이런식으로 쓰면 됩니다.


settype()
말 그래로 변수를 어떤 타입으로 세팅한다는 거겠죠.
반환값이 불리언입니다. 변수 타입 컨버팅이 성공하면..true를 반환합니다.
>>> $var_name = 1.1;             --->double type이겠죠^^
>>> settype($var_name, "integer");        ---->이제는 integer가 되었을 겁니다.
물론 두번째 아규면터는 아까 gettype의 리턴값에 해당되는 자료형을 주면 될 꺼구요.
불리언으로 반환한다니 이것도 되겠죠?
>>> if( settype($var_name, "integer") ) echo("성공이다.");  ------->앞으론 이런 당연한 문장은 쓰지 않겠습니다.
이런식으로 쓰면 됩니다.


더 간단한 것은 바로 봅니다.
isset($var_name) ---> $var_name에 값이 세팅되어 있으면 true, 아니면 false
---------------> 잘 생각해보면 아주 유용하게 자주 쓸 수 있을 듯 싶네요.
usset($var_name) --->메모리 영역에서 변수와 관련된 메모리 해제


empty()
이건 좀 문제가 있군요. php document를 찾아보니까,(제가 번역을 잘 몬 한건 설마???)
... 변수가 설정되어 있지 않거나, '0'의 값을 가지거나, 빈 문자열을 가지거나 한 경우에는 true를
아니면 false를 반환.... 이라고 되어 있네요.
그렇다면, 개발자의 입장에서 변수를 선언하지 않은 경우와 '0'의 값을 가진 경우, 빈 문자열인 경우를
동일시하게 받아 드려야 한다는 부담을 주네요. 고 넘 참...~~
그렇다면, isset() 함수도 한 번 의심하고 싶은 소망이 생기네요.
한번 스스로 잘 생각을 해 보시기 바랍니다.
사실 제 입장에서 죄송한건 이러한 함수들을 테스트를 해 봐야 하는데, 지금 도저히 그럴 상황은 좀 힘드네요.
하지만, 정말 이 글을 읽고 도움이 되시는 분이라면, (뭐 잘 하시는 분이라면 이런 허덥한 글은 필요도 없으시겠지만,
또 앞으로 진정한 이 쪽 방면의 개발자가 되실 분이라면, 스스로 테스트를 해 보면서, 의미를 음미하는것이
가장 좋은 공부가 될 것임을 반드시 권고 합니다.
저 같은 경우 JDBC(혹시 모르는 분을 위해, 자바에서 데이터 베이스에 연결을 위해 제공한는 추상 interface로
구성된 API입니다.) API  도큐먼트를 수십번도 보고 테스트도 해보지만, 아직도 매번 몰랐던 것을 발견 하곤 합니다.


또 잡설이냐?

is_int(), is_long(), is_integer()       ------- 다 같은 역활 : 정수인지 여부 검사
is_double(), is_float(), is_real()     ------- 다 같은 역활 : 실수 여부를 검사
is_string(), is_array(), is_object()  ------- 각각의 이름 대로의 자료형을 검사
뭐 요넘들은 그 타입이 맞느냐 하는것을 묻는 것이죠.
참고로 경험상 is... 계열의 메서드나 함수는 리턴값이 불리언입니다.
하나만, 예를 들어
>>> $var_name = 1;
>>> if( is_int($var_name) ) echo("거봐 얘는 int형이 맞다니까..");


대충 다 된건가.. 그 외에 별로 안 쓰일것 같은 함수는 정리하지 않았습니다.

간만에 집에 일찍 오게 되서(그래도 10시 입니다.) 이거 정리해서 올리니까.. 거의 12시가 되어 가네요.

누가 그랬더라? 제가 가끔 들르는 자바 레퍼 싸이트에 보니까..(맞나?) 프로그램 개발이
섹스보다 더 즐겁다. 뭐 이런말을 보긴 했습니다만,

요즘은 너무 고단 하네요.
사실은 얼마간, 이길로 들어선 것이 올바른 선택이었나를 생각하기도 했지만,
결론적으로 제가 무능한 탓으로 돌리기로 했습니다.
그래서 더 열심히 공부도 해야 한다는.. .. .. (아~~ 그런데,, 왜 이렇게 힘이 없는거지?)

2002.05.08

from jazz virtual machine