-
[비공개] PHP 5 투토리얼 (6) - AJAX
이제 PHP 투토리얼 시리즈 마지막입니다. AJAX네요. 어차피 클라이언트와 데이터를 주고 받으려면 AJAX를 제일 많이 쓰지 않을까... 하는 생각이 듭니다. 써봐야 알겠지만요. AJAX의 개념 Asynchronous Javascript and XML빠르고 동적인 웹페이지를 만드는 기술서버간에 작은 데이터만 교환하면서 웹페이지가 비동기적으로 갱신되도록. 즉, 화면의 일부만 갱신 가능GoogleMaps, Gmail, Youtube 등이 모두 AJAX 활용AJAX는 인터넷 표준에 기초함XMLHttpRequest (데이터를 비동기적으로 서버와 주고 받음)Javascript/DOM (정보의 표현)CSS (데이터 스타일)XML (데이터 전달 포맷)function showHint(str) { // key를 하나씩 누를때마다 실행됨 if (str.length==0) { document.getElementById("txtHint").innerHTML=""; //공백일 경우, 힌트도 공백으로 return; } var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { // 상태가 ..추천 -
[비공개] PHP 5 투토리얼 (5) - XML
다섯번째는 XML. XML Expat Parser XML Parser는 두가지 종류가 있음Tree 기반 parser : XML 문서를 트리구조로 변환, 문서 전체를 분석하고, 트리의 각 요소에 접근. DOM(Document Object Model)Event 기반 parser : XML 문서를 이벤트의 연속으로 봄. 특정 이벤트가 발생하면 그와 연결된 함수를 호출하는 방식. 문서의 구조보다 내용에 집중. 더 빠르다. XML 구조에 문제가 있어도 문제없음.Expat Parser는 Event 기반 parser임.PHP 웹 어플에 최적Expat Parser는 PHP 에 내장되어 있음 XML DOM Jani레벨 1 : XML document레벨 2 : Root element : 레벨 3 : text element : "Jani" SimpleXML PHP5에서 새롭게 등장XML 요소의 이름과 text를 간단하게 추출코드를 간단하게 짤 수 있음XML 문서를 객체로 변환함요소는 SimpleXMLElement 객체의 속성(attribute)로 변환됨. 어느 레벨에 여러개의 요소가 있을 경우 배열에 들어가게 됨속성은 ass..추천 -
[비공개] PHP 5 투토리얼 (4) - Database
이제 4번째네요... PHP로 할 수 있는 게 정말 다양하다는 걸 다시한번 느꼈습니다. 그리고...그냥 javascript면 대충 해결되겠지... 라고 생각했는데... 참으로 거시기하네요. 오히려 웹앱을 개발하려면 서버측 개발이 더 중요한데 말이죠. MySQL 개요 MySQL은 웹에서 사용되는 DBMS. 서버에서 수행됨. 크기에 관계없이 사용가능.빠르고, 신뢰성 높고, 사용하기 쉬움. 표준 SQL의 지원, 다양한 platform 지원, 무료Oracle에서 개발 보급. 이름은 공동개발자의 딸의 이름(My)를 따서 지음특히 MySQL + PHP 를 하면 cross-platform 으로 매우 유용함MySQL을 어떻게 사용하는가는 SQL을 얼마나 잘 할 수 있는가에 달려있음. MySQL 서버에 접속 Create DB / Create Table cafe24 호스팅의 경우, 새로운 DB를 생성할 수 없음. 기존의 DB를 사용해야 함.기존 DB 명은 사용자id와 동일....$sql = "CREATE DATABASE my_db";i..추천 -
[비공개] PHP 5 투토리얼 (3) - 고급
W3C PHP 강좌 제3장 입니다. 1장 기초 및 2장 Form도 참고하세요. 다차원 배열 PHP의 배열(Array)는 key/value의 리스트PHP의 다차원 배열은 여러개의 배열을 담은 배열(array containing one or more arrays)2차원 배열은 배열의 배열$cars = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) );echo $cars[0][0]." : in stock ".$cars[0][1]." : sold ".$cars[0][2]."."; 와 같이 참조가능날짜와 시간date(format, timestamp) : timestamp는 옵션. default는 현재시간.echo "Today is " . date("Y-m-d") . ""; //여기에서 Y, m, d, 1 (요일) 등 사용가능© 2010- //@2010-2014 로 표시됨echo "The time is : " . date("h:i:s") ."; // 여기에서 h, i(시간), s, a(오전 오후) 등 사용가능date_default_timezone_set() // 시간대 설정mktime(hour, min, sec, month, day, year) // 시간 생성strtotime("10:30am April 15 1999"); strtotime("tomorrow") // 인간이 사..추천 -
[비공개] PHP 5 투토리얼 (2) - 폼
웹페이지를 제작하기 위해서는 크게 두가지 작업이 필요합니다. 하나는 서버측 프로그래밍이고, 다른 하나는 클라이언트측 프로그래밍입니다.원칙적으로 서버측에서는 데이터 그 자체를 다루고, 클리이언트 측에서는 그 데이터를 어떻게 표현하는가를 다루므로, 서버측이 더 중요하다고 볼 수 있습니다.서버측 프로그램은 여러가지 언어로 개발될 수 있지만, 가장 널리 사용되는 것이 PHP (PHP HyperText Preprocessor)입니다. 이전에는 기본적인 사항을 다루었고, 이번엔 두번째로 Form을 처리하는 방법입니다. PHP - A Simple HTML Form 다음 예제는 두개의 input 필드와 submit 버튼이 있는 폼Name: E-mail: 사용자가 input 필드를 채우고 submit 버튼을 누르면, form 데이터가 action에서 지정한welcome.php 로 전달됨. 이 폼은 POST 으로 전송됨.아래는 welcome.php 의 내용임Welcome Your email add..추천 -
[비공개] PHP 5 투토리얼 (1) 기초
저는 요즘 자바스크립트 열공중입니다. 그런데, 자바스크립트를 공부하려니, 점점 공부할게 늘어납니다. 자바스크립트는 클라이언트용 스크립트입니다. 즉, 웹브라우저와 같은 환경에서 서버로부터 받은 정보를 처리하는 용도입니다.그런데, 서버에서도 여러가지 작업이 필요합니다. 이를 위해서 필요한 게 서버측 스크립트인PHP입니다. 파일을 올리고 DB를 조작하는 등 서버와 통신 등을 담당합니다.이글은 http://www.w3schools.com/php/에 있는 PHP 5 투토리얼을 제 마음대로 간략하게정리한 겁니다. 참고하세요.PHP 는 서버 스크립트용 언어로, 동적/대화식 웹페이지를 빠르게 구축할 수 있는 강력한 도구이다. PHP는 널리 사용되며, 무료이고, 마이크로소프트의 ASP와 같은 유사한 도구를 효율적으로 대체할 수 있다.첫번째 예제: PHP란 무엇인가?PHP는 "PHP Hypertext Pr..추천 -
[비공개] 스마트 RC카 Hammer
제가체험단 이벤트로스마트폰으로 조종하는RC카 HAMMER를 받아서 처음 우리 딸래미한테 보여주자, 우리 딸래미는, "와 정말 멋지다!!" "그래? 왜?" "내가 제일 가지고 싶은 차걸랑" ... 이런 반응을 보였습니다. @_@ (머... 우리 딸래미가 좀 독특합니다. 사실 저보다 HAMMER를더 좋아하거든요. ㅎㅎ) 아무튼 구글에서 "Hammer car"라고 검색을 봤습니다.아래와 같은 사진들이 나타나더군요. 그런데 원래의 차 이름은 Hammer가 아닌 Hummer.1980년대초 미군에서 사용된 Humvee의 상용버전으로, GM에서 2009년까지생산하던럭셔리 SUV라고 나옵니다. 홈페이지는 여기입니다. 위키페이지는 여기. 너무 덩치가 크다보니, 경제위기 상황하에서 단종된 모양입니다. 그런데, 왜 Hummer가 Hammer로 검색해도 나올까... 싶었는데, Rhino Buggies Hammer라고 Hummer H1 짝퉁이 있어서 그런게 아닌가... 싶네..추천 -
[비공개] Wi-Fi 스마트 RC HAMMER!! - 제가 처음으로 만져본 RC..
드디어스마트 RC 카해머(Hammer)를 받았습니다. 테스트용으로요.좌측 위사진이 바로 제가해머 체험단 이벤트에 응모해서받은 해머(Hammer)입니다. 평소에 RC카를 잘 알지도 못하는 제가 체험단으로 선정된 것은 아마도 제가 제일 처음으로 댓글을 남기면서, 이랬으면 좋겠다, 저랬으면 좋겠다..제안을 했던덕분이 아닌가 합니다. ㅎㅎ 사실 그냥 단순한 RC 카라면 관심을 두지 않았을 것 같습니다. 그런데 이 녀석은 Wi-Fi를 통해 구동이 되고, 특히 스마트폰으로 조종이 되며, RC 카의 카메라에서 촬영된 영상이 그대로 스마트폰으로 전달되어 저장되기 때문에 많이 끌렸습니다. 게다가 (현재로서는 부족하지만) 사물인터넷(IoT)의 플랫폼을 지향하고 있다고 하니까관심을 가질 수 밖에 없었습니다. 아래는 HAMMER를 개발한 토이스미스(Toy's Myth)에 있는 HAMMER 소개자..추천 -
[비공개] 현장기록(Field notes)으로 지오캐싱 로그하기
지오캐싱을 다녀오면 Geocaching.com 을 방문하여자신이 찾은 지오캐시나 추적아이템 등에 대해 기록, 즉 로그(log)를 올려야 합니다.물론 안드로이드나 아이폰 앱을 사용할 경우에는 현장에서 직접 로그를 할 수도 있습니다. 앱을 사용하여 로그하면그 자리에서 사진을 촬영해서 올릴 수 있기 때문에 편리한 점도 있습니다. 하지만, 스마트폰으로 뭔가 쓰기에는 화면이 좁을 뿐 아니라, 다음 캐시를 찾아가기도 바쁘므로 캐시를 찾는 즐거움을 상세히 남기기는 힘듧니다.또한 깊은 산과 같이 외진 곳에서는 통신이 두절되어 바로 기록을 올릴 수 없는 경우도 있어서, 이왕이면 순서대로 로그를 올리고 싶은 분들은 이 기능을 기피하기 마련입니다.그래서 대부분의 지오캐셔들은 지오캐싱을 마치고 집으로 돌아온 뒤, 그날 돌아다닌 GPS 궤적이나, 따로 표시해 ..추천 -
[비공개] 우리나라 지오캐시 전체를 GPS에 올리는 방법
이제 가민 650을 들고다닌지 2주일쯤 되었습니다. 머... 이전 글에서 말씀드린 것 처럼 아주 쓸만합니다. 아직도 Trip/Track 세팅하는 부분은 생각대로 움직여지지 않지만, 좀더 알아봐야 할 것 같고요.오늘 쓸 내용도 가민 650을 지오캐싱용으로 사용할 때 세팅방법에 관한 내용입니다.우리나라에는 제가 글을 쓰는 2014년 4월 28일 현재 총 8154개의 지오캐시가 존재합니다. 제가 처음 시작할 때만해도 2000개 정도였던 걸로 기억하는데, 그동안 아주 많이 늘었습니다. 캐싱 인구는 그만큼 안늘었다는 게 함정... ㅠㅠGPS의 내장 메모리가 작았을 시절에는 꼭 필요한 지오캐시만 선택하여 GPS로 보내거나, POI로 변환하여 보내는 등의 여러가지 편법을 사용했습니다. (제가 처음 사용한 GPS Map 60CSX는 지오캐시를 1000개까지 담을 수 있었습니다)하지만, 가민 오레곤 650의 ..추천