삽질의 현장 478

[삽잡이::php] 꼼꼼하게 체크하자! in_array(), ===(identical)

예를 들어 이와 같이 Qeury문을 날려 결과를 받아오는 코드가 있다고 생각해보겠습니다. 자... 예외 처리를 해봅시다.어떻게 하시겠습니까!?뭐가 그리 어렵다고~ 그냥 empty() 함수 써서 확인하면 되지~ 이얄~~~~~ 좋습니다! 굳!굳!굳! 하지만, 조금 더 신중해야할 필요가 있습니다.생각해보겠습니다. 위에서 언급한 것과 같이 NULL일 경우? 이외에도 여러가지로 신경써주면 좋을 듯합니다. 예를 들어 return 값이 제대로 된 결과 값이 아닌 false 인지~ 아니면, return 값이 올바른 타입인지 말입니다. 죄송합니다. 다 꺼지라니~~~ 하지만, 신경을 잘 써줘야겠지요?혹시 모를 오류에 대비를 해야지요! 그래서 우리 이렇게 신경쓰면서 코딩합시다. return 값이 null인지 확인하기! 결과..

html과 PHP 그리고 Javascript의 관계

html과 PHP 그리고 Javascript 언어의 관계를 한번 쉽게 이해해보는 시간을 가져보겠습니다. 와~~~ html은 웹페이지를 위한...로 이루어진 요소들이 어울여저 있는 언어입니다. 우리가 보는 웹 페이지에 요소들에 맞게이쁘게 정보들이 출력됩니다. 예 그렇습니다.그런데, html을 통해 실행된 화면은 변함 없이 html 요소에 맞게 동일하게 출력 됩니다.몇 백번, 몇 천번을 들어가도 말이죠. 몇 천번을 들어가봤는데... 똑같아.... 그런데, 이 때 Javascript와 같은 Client Side Script 언어를 사용하여HTML 언어로는 할 수 없는 동적인 Action들이 가능해집니다. 마우스가 움직이는 곳마다 색깔이 칠해진다던지,어떠한 Error가 발생했을 경우 Alert 창을 띄워준다던지..

[삽잡이::php] php에서 javascript를 호출해보자

php 언어는 대표적인 서버 사이드 스크립트 언어중 하나입니다.즉, 서버에서 실행되는 언어입니다. 서버에서 실행되는 언어라는 의미를 이해하기 위해서는우선, 서버에 대해서 알아야할 것 같습니다. 우와 그래서 Server가 뭐야~ 예 그렇습니다.서버는 어떤 '업무'를 수행하기 위해 설정되어있는 컴퓨터라고 볼 수 있습니다. 여러분이 웹 사이트를 하나 운영한다고 해보겠습니다. 이처럼 Client로 부터 요청이 오면Server는 Client로부터 들어온 요청에 대한 서비스를 제공해줍니다. 아~ 이러한 서버에서 사용되는 언어가 서버 사이드언어라고 하구나~ 예~ 그 중에 삽잡이는 PHP 언어에 대해서 언급을 한 것이구요 Javascript는 성격이 조금 다릅니다.바로 클라이언트 사이드 스크립트 언어이기 때문입니다.즉..

[삽잡이::javascript] 요소를 찾아 씹어먹겠어! 속성 선택자

html에 있는 여러 Tag들에서 필요한 Element들을 찾아와야할 경우들이 많습니다. 이럴 때 jQuery의 속성 선택자를 사용할 수 있습니다. Element 요소 하나하나 다 가져다 사용하겠어!! 예전에 jQuery 홈피에서 Selector 보겠다고 썼던 글이 생각나군요. (참고_ [삽잡이::Javascript] 요소를 찾아야 jQuery를 씹어먹지~) 아무튼!올바른 요소를 선택해야 해당 요소를 가지고 지지고 볶을 수 있지 않겠습니까!? 자 우선 기본적으로 연산자를 생각해보겠습니다. '=' 연산자는 is 와 같습니다.예를 들어 name = '삽잡이'name이 삽잡이이면~ 이런 뜻으로 사용되는 연산자입니다. '!=' 은 not입니다. '^'은 통상적으로 XOR 연산으로 사용하는데jQuery 속성 선택..

[삽잡이::문법] 사용하면 깔끔해져요! 삼항연산자

코드를 작성하다보면여러 경우에 대한 case를 작성해야할 경우들이 있습니다. 우리는 if문, switch문과 같은 조건문을 사용하여 이를 해결할 수 있습니다. 그런데, 조건에 따라서 정의한 두가지의 표현식중 하나를 반환하도록 아주 깔~~끔하게 한 줄로 작성할 수 있는 사실을 아십니까!? 예 그렇습니다. 바로!!!! 입니다. 아... 그... if ~ else 축약 시킨거 같은...? 그래 삽잡이야~ 똑똑하구나~~~ 예 그렇습니다. 복잡해 보이는 식을 간단하게 한 줄로 마무리할 수 있습니다. 이와 같이 단 한줄로깔끔하게 조건문을 작성할 수 있다 이겁니다. 12345if(name == '삽잡이') { system.out.println("나는 삽잡이야~");} else { system.out.println("..

[삽잡이::sql] CASE WHEN THEN WHEN THEN ELSE END !?

case 하시면 뭐가 떠오르시나요? 삽잡이는switch ~ case 문이 떠오르군요.... 예 그렇습니다.... 저는 컴공 출신 풋내기입니다... SQL에서도 case 문이 있습니다.뭐, 사실 if문도 있는 것 보면 그다지 이제 놀랄일도 없지요. 아무튼...개인적으로는 조건이 많이 들어가는 Query문은 성능상 좋지 않을 경우들이 많다고 생각하기에 조심스럽게 사용해야한다 생각하지만... 뭐 모두 case by case니깐요~ 그러면 한번 알아봅시다~ MySQL Reference Manual에는 이렇게 나와있습니다. (출처_ MySQL Reference Manual) 뭐,,, 그런데 하나 이상의 프로그래밍 언어를 다뤄보신 경험이 있다면 그렇게 어렵지 않게 느껴지실 것입니다. CASE 문을 통해 Query에..

[삽잡이::php] Web에 올라온 File을 Parsing해보자! file_get_contents()

Web에 Log 파일을 올려놓고Log 내용들을 읽어와 Parsing해야할 일이 있었습니다. 이럴 때에는 어떻게 해야할까요? 예 그렇습니다. 인자로 url을 넘겨주면 됩니다. 그러면, file_get_contents() 함수와이전에 배운 정규표현식,(참고_ 정규표현식) preg_match_all() 함수를 통해(참고_ preg_match) File 내부에 이메일이 있는지 확인해보는 예제를 만들어보겠습니다. 123$sRegex = "/^[a-zA-z0-9](-_\]?[a-zA-Z0-9])*@[a-zA-Z0-9]([-_\.]?[a-zA-z0-9])*\.[a-zA-z]{2,3}$/i";$sContents = file_get_contents(url 위치);$iMatches = preg_match_all($sReg..

[삽잡이::형상관리] 형상관리 시스템들에서 쓰이는 기능들!

협업을 중시하는 대다수의 IT 회사들에 소스 코드 관리는 필수가 아닌 필수입니다. 이건 무슨 어법이 안맞는 개소리지~ 하하... 아무튼.... 형상관리 시스템을 사용하며 겪는(?) 기능들에 대해 간략하게 정리해보려고합니다. Branch 예... 그렇습니다. 우리가 모두 아는 나뭇가지!!!소스들이 나뭇가지처럼 관리된다고 생각해보시길 바랍니다. (제목_ 나뭇가지)삽화백의 작품입니다. 이야~~~ 죄송합니다... 아무튼, 여럿이서 작업한 내용들에 대해 영향을 받지 않도록 하기 위해 존재하는 기능입니다. Main이 되는 Branch를 복사하여 Branch라 부르고해당 Branch에 독립적으로 내 작업을 수행할 수 있지요. Checkout check out하다! 많이들 들어보시지 않았습니까?예 그렇습니다.호텔에서...

[삽잡이::형상관리] 분산관리시스템(Distributed Version Control System) !?

다수의 사람들과 하나의 프로그램을 함께 만들어간다고 생각해보겠습니다. 이와 같은 협업! 아름답습니다! 그런데, 이렇게 여러 사람의 손이 가는 이와같은 소스코드들이 하나의 저장소에 저장된다면...어떻게 될까요?? 내가 여지껏 창조한(?) 아름다운 코드가...사라질 수도 있다는... 그래서 많은 소프트웨어 시장에서 고생들 하시는... 우리는 ....분산 형상 관리 시스템 (Distributed Version Control System)을 사용하여 소스 코드를 관리하고있습니다. 분산하여 저장한다는 뜻 자체를 쉽게 받아들인다면내 PC가 혹은, 다른 PC 들이 혹은, 다른 서버들이 저장소가 될 수 있다는 것입니다. 분산되어 저장되어있다 이겁니다.따라서 중앙 집중 형태의 저장소에 비해 여러 장점들을 가지게 됩니다...

[삽잡이::sql]count() 와 IF() 사용 주의사항! 이라 쓰고 삽질이라 읽는다

1SELECT IF(name = '삽잡이', 'Yes', 'No') AS result FROM people_finder;cs 이와 같은 Query문을 통해 각 레코드에 있는 컬럼(name)의 값이삽잡이일 경우 Yes를 그리고 아닐 경우 No를 나타낼 수 있습니다. 해당 Query문의 결과는 아마 이와 같이 출력될 것입니다. 역시 삽잡이는 유일무이하군요... 그런데 말입니다...만약, 삽잡이가 있는 레코드를 제외한 나머지 레코드들의 수를 계산해야할 필요성이 생겼습니다. 1SELECT IF(name = '삽잡이', COUNT(*), COUNT(*)-1) AS result FROM people_finder;cs 이와 같이 Query문을 작성했지요... 그런데... 삽잡이는 분명 있는데 말입니다.계속 거짓으로 ..