티스토리 툴바


저녁에 지인으로부터 전화를 받았습니다. 이클립스에서의 PHP 개발환경 구축하기에 대한 조언을 구하는 것이었는데, 막상 PHP는 코드를 읽는 정도이고 실제 개발을 하지는 않았더니 딱히 답할 것이 없더군요. 더군다나 접했던 환경이란게 APM 설치하고 텍스트 에디터로 작업하는 수준이니... 그래서 간만에 숙제 받은 기분으로 간단히 정리해보았습니다.

1. 이클립스 PDT 설치

. http://wiki.eclipse.org/PDT/Installation 를 참조하여 PDT 플러그인을 추가합니다. 본 포스트에서는 Windows + Eclipse 3.7 Indigo 를 기준으로 진행하였습니다.

. zend Debugger, Remote System Explorer, SVN 등이 함께 설치해야할 주요 플러그인들로 권장되지만, 본 포스트에서는 기본적인 환경 설정만을 안내하기 위하여 이에 대한 부분은 언급하지 않겠습니다.

2. Apache httpd 2.2 설치

. http://httpd.apache.org/download.cgi 에서 httpd-2.2.21-win32-x86-no_ssl.msi 를 다운로드합니다. https 환경의 고려는 하지 않는 간단한 개발 환경 구축이니 ssl은 일단 잊기로 합니다.

. 설치 디렉토리는 본 안내에서는 c::\Apache2.2 로 하겠습니다. 설치시 Custom 설치를 선택하셔서 디렉토리를 직접 지정해주세요.

. 설치는 서비스 형태로 하시고, 윈도우 부팅 시마다 자동 실행이 귀찮으실 테니 서비스의 시작 유형을 자동에서 수동으로 변경해줍니다. 또한 이후 설정 후 재실행을 해야하니 서비스를 중지시켜 줍니다. - 트레이에 보이는 Apahce Monitor를 사용하면 편리하겠지요. -

3. PHP 5.3.8 설치

. http://windows.php.net/download/ 에서 VC9 x86 Thread Safe 유형의 zip 파일을 다운로드합니다., 파일명은 php-5.3.8-Win32-VC9-x86.zip 입니다.

. 다운로드 받은 파일을 압축 해제 합니다. 본 안내에서는 c:\php5.3 에 해제하였습니다.

4. PHP 환경 설정

. c:\php5.3 폴더의 php.ini-development 파일을 php.ini 로 이름을 변경합니다.

. DB 연동을 위해서는 extension 설정을 하여야 한다던지, 언어 코드를 맞추다던지 등의 후속 과정이 필요합니다만, 이 들은 참조할 레퍼런스가 많으므로 여기서는 언급하지 않겠습니다. 우리의 목적은 빠르게 개발환경 구축에서 일단 php 파일을 실행시켜 보는 것이니까요. ^^;;;

5. Apache httpd 환경 설정

. c::\Apache2.2/conf/httpd.conf 파일의 끝에 아래와 같은 내용을 첨부합니다. 내용의 의미는 읽어지는 그대로입니다. 굳이 설명할 필요가 없겠지요.

 #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "C:\php5.3\"
Action application/x-httpd-php "C:\php5.3\php-cgi.exe"
PHPIniDir "C:\php5.3\"
LoadModule php5_module "C:\php5.3\php5apache2_2.dll"
AddType application/x-httpd-php .php5 .php4 .php .html .htm .inc .php3 .phtml .phps
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

. Apache httpd 서비스를 재실행합니다.
 
6. 이클립스에서의 PHP 환경 설정

.  Window > Preferences를 아래 스크린샷을 참고해서 설정합니다.


. 내용을 요약하면 php가 설정된 디렉토리를 지정하고, 실행 시 사용될 Context Root의 시스템상 절대 경로를 지정하는 것입니다. Context Root 경로의 경우 Apache httpd의 httpd.conf에서 설정한 값을 그대로 사용해야 하는데, 본 안내에서는 기본 경로를 사용하기 있기에 위와 같이 지정됩니다. 또한 이 경로는 이클립스 PHP 프로젝트의 소스 경로로도 사용된다는 점을 기억해야 합니다.

7. 이클립스에서 PHP 프로젝트 생성하고 실행해보기

. 좌측 상단의 Perspective를 PHP로 변형합니다. 보이지 않는다고요? 옆의 아이콘을 클릭하면 Perspective를 선택할 수 있습니다.

. 아래 스크린샷을 참고하여 New > PHP Project로 프로젝트를 php_test 프로젝트를 생성하고, 이어서 New > PHP File로 index.php 파일을 생성하여 테스트 페이지를 만들어봅니다. 코드상의 phpinfo 함수는 PHP 설치 정보를 보여주는 php 내장 함수 입니다.

. JSP 개발과 다름아니게 이클립스 상단 Run 버튼이나 파일 선택 후 우클릭 > Run As 로 파일을 실행해볼 수 있습니다. 물론 실행 유형은 PHP Web Page로 해야 겠지요.

이상 간단하게 PDT 환경에서의 PHP 개발환경 설정을 안내해보았습니가. 긴급하게 해본 것이라 오류가 있을 수 있다는 점 양해 부탁드리면서 마칩니다.

저작자 표시

실은 요즘 매우 심각하게 이직을 고민하고 있습니다. 하루이틀 상간에 이루어질 일은 아니지만 짧으면 1~2개월, 길어봐야 1년 안에 결론을 내릴 예정입니다. - 통상의 이직 화두와 달리 지나치게 길다고 하실 분들 많으시겠습니다만, 회사나 구성원이 싫다다든가의 부정적 이유가 아닌지라 가능한 회사에 피해가 되지 않기를 바라는 마음 때문입니다. -

발단은 회사의 이익 실현 모델, 다시 말해 모멘텀이 완전히 바뀌었기 때문입니다. 경영진이 바뀌고, 주주 구성이 변경되고 등의 상황은 일개 차장 따위에게는 비현실적인 이야기들이었지만, '나'라는 사람이 회사에 존재하는 이유가 변한다는 것은 매우 크게 와닿습니다. 아직도 개발자라던가 프로그래머라던가 등의 호칭이 쑥쓰러워 '회사원'이라고 스스로를 정의하는 사람입니다만, 근본은 역시 소프트웨어 개발에서 많은 삶의 이유를 찾는 이이기 때문이겠지요. 덕분에 정리해고 되거나, 회사가 잡는다고 해도 미안하고(할 일이 없어서) 두려워(개발외의 일 또는 기존 개발물의 유지보수 등의 잡다한 업무 수행이 주어질까) 자진 정리해고 당해야할 상황입니다.

본래 제가 있는 회사는 흔히 '막장 중의 막장'이라 불리우는 공공 SI에 주력하며, 유사한 회사들이 모두 그러하듯 SI 결과물 중에 쓸만한 것들을 리패키징하거나 오직 문서만으로 정리해 솔루션화해서 공급하는 회사였습니다. 비록 이 계통 모두 그러하듯 좋은 대우, 번듯한 성과금 등은 기대할 수 없었습니다만, 아웅다웅 소소한 다툼과 어려운 환경에서도 오손도손 잘 살아왔던 조직입니다. 그러다 개발자들이 하나 둘씩 다양한 이유로 퇴사함에도 불구하고 소요가 없어 신규 개발자 영입을 하지 않는 상황이 반복되었고, 그에 따라 업무 부하는 나날이 중첩되어 쌓여가는 악순환이 반복되었지요. 그래도 언젠가 시장 상황이 변하고 좋은 기회가 있으리라는 믿음으로 달려온 길이었습니다만, 금년 들어 오너 및 주주 구성이 변화하면서 본격적으로 개발이 아닌 기존과 다른 분야의 솔루션 재판매 쪽으로 사업 방향이 변경되었고 이젠 개발 직군의 소요는 실질적으로 0%가 되어버렸습니다.

덕분에 제 저치도 우습다면 우스워져서 기존 퇴사했던 개발자들이 마무리 못한 일들을 그들에게 주어졌던 시간의 10%에도 미치지 못하는 짧은 시간에 재개발, 잔여개발, 유지보수 하는 등의 업무가 지속 주어졌고, 종단에 이르러서는 재판매하는 솔루션 개발에 투입되어 솔루션 원 개발사로 파견나가 솔루션을 개발했었습니다(이건 지금도 하고 있군요). 그나마 솔루션 원 제조사의 서버 사이드 개발자들이 모두 퇴사해버린데다 소속사와 다름 아니게 굳이 보유할 인력이라 판단하지 않아 신규 영업이 없어 혼자서 도맡아 일 하고 있습니다. 즉 요약하면 '심부름꾼의 심부름꾼의 심부름꾼' 되었다고나 할까요? 그나마 지금의 '심부름'도 1~2개월안에 잠정 완료될 것이니 이후에는 정말 할 일이 없는 상태가 되어버립니다.


회사는 이야기합니다...

- 좋은 일 주지 못해 미안하다. 해야할 일들을 만들어 가겠다. 기다려달라.
- 당신은 회사의 중요한 자원이며 함께해야한다. 회사의 성장을 함께 나누자.
- 하지만 개발자는 큰 회사 좋은 환경에서 일하는 것이 좋다. 좋은 회사로 갈 수 있다면 말리지는 않겠다.

저는 이야기합니다...

- 좋은 일, 큰 일 아니어도 되니 우리의 개발을 해보자.
- 해야할 일들이 없어지고 있고, 전망되는 과정은 분명하다. 회사의 '개발'은 죽었다.
- 이젠 가야할 길을 갈라야 할 때가 되었다.

업무가 힘들거나 짜증나지 않는다고 결코 말할 수 없습니다만, 조직 구성 변경 이전이든 이후든 회사 오너와 구성원들 모두 좋은 사람들입니다. 한 사람, 한 사람 모두 고맙고 인생의 멘토와 같은 역을 자청해주셨던 분들입니다. 그러하기에 앞으로도 좋은 관계로 오래 함께 하고픈 이들입니다. 그러나 변화된 환경과 지향점에서 자신의 목소리만 높이며 대우를 바랄 만큼 제 면피가 두껍지는 않군요.

그래서... 부족하다고 떠드는 소리는 가득하지만, 정작 갈 곳은 많지 않은 '개발자'라 불리우는 나이든 회사원은 떠나기로 합니다. 기획, 분석, 설계, 컨설팅, C, 자바, 웹, 솔루션, 서버, 어플리케이션, 등등 참으로 많은 분야를 해보았으나, 아직도 무엇하나 정직하게 '잘합니다'라고 못하는 평범한 '회사원'의 마흔이 이렇게 담담하면서도 서글프게 다가올 줄을 몰랐습니다.  

'개발자가 부족하다'라는 말은... 남의 나라 이야기처럼 들리는 요즘입니다. 

저작자 표시

솔직한 표현으로 가장 듣기 싫은 말이면서도 가장 흔하게 듣는 말이 'DB 연결이 안되요!' 입니다. DBMS 연동은 펌웨어, 시스템 프로그램, 모바일 환경 등을 일부 경우를 제외하고는 가장 기본적인 플랫폼 요건이고, 특히나 서비스 지향의 시스템 통합(SI), 웹 어플리케이션, 서버 구현 등에 있어서는 필수적이라고 할 수 있습니다. 그럼에도 불구하고 신입이든 경력이든 자주 도움을 청하는 내용이 바로 이 말입니다. 신입이라면 기본 중에 기본일 텐데 왜 이런 상황에서 답답해하는 것인지 이해가 되지를 않고, 경력 개발자라면 당연히 물어서도 안되고 물을 필요도 없는 질문일텐데라는 생각들이 들곤 합니다.

특히 개인적 경험에 기인하자면 경력 개발자에게서 이런 소리가 나오는 경우 적어도 지금까지는 백이면 백 '가짜 개발자'라는 소리가 아깝지 않은 이들이 대다수 였습니다. 설사 당장 문제를 해결할 수 없더라도 차근히 구글링 좀 하면 해결될 사항임에도 불구하고 하소연하는 이들을 결코 곱게 볼 수는 없더군요.

더욱이 이런 하소연이 매우 싫어짐에는 그러한 외침의 이면에 '이 문제는 너가 해결해야 하지 않겠냐?' 또는 'DB 연동 같은 잡 일(?) 해주면 내가 나머지는 할께' 등의 소리없는 강요와 기대가 담겨져 있기 때문이기도 합니다. 한번은 '스스로 해결해봐야 실력이 는다'라고 이야기를 해주었더니 몇대의 컴퓨터를 바꾸어가면서도 되지 않는다면서 에러 코드 적은 3줄 짜리 메일 보내놓고는 나 몰라라 뻗어버리는 경우도 접했었습니다. - 이 경우 하소연의 배경으로 '나는 정상적으로 했는데 컴퓨터가 이상하거나 네트워크가 이상한 것이다'라는 주장을 직간접적으로 표현하는 것이 통상적입니다. -

몇 번의 경험을 거치다 지긋지긋해서 결단을 내렸고 그 해법은 바로 예제와 캡처 이미지입니다. 부하 직원이건 동료건 할 것 없이 이런 하소연 하는 이들은 마치 컴퓨터 고장 났다고 OO전자가서 난리 피우는 이들과 다름 아니라서 꼭 근거를 남겨줘야만 스스로 잘못을 인정하고 조용해지더군요.

비슷한 하소연에 답답해하실 분들을 위해 코드 남겨봅니다.
(예제 코드는 Oracle에 기준하니 다른 DBMS라면 그에 맞게 JDBC 드라이버 부분을 수정해주세요).

예제 1 - 가장 간단한 일반 JDBC를 이용한 컨넥션 (이 정도로는 안된다는 말이 수그러들지 않는 경우가 대부분)



예제 2 - 그래서 Apache Commons-DBCP 연동도 꼭 시연해줘야 합니다.


하긴 10년차였던 동료가 Try~Catch도 제대로 못쓰면서 대기업으로 이직하며 천 만원 이상의 높은 연봉을 받기도 하더군요. 이렇게 보면 남을 폄하할 것이 아니라 무지함을 우직함으로 착각하고 있는 스스로를 반성해야할 일 입니다만...
저작자 표시
1 2 3 4 5 ... 20