std::vector를 사용하다보면 많이 사용하는 구문 중 하나는 현재 std::vector가 비어있는지 확인하는 것이다. 이러한 구문을 표현하는 방법이 아래와 두 가지가 있을 것이다. * std::vector.size() == 0 std::vector myVector; if (myVector.size == 0) printf("Warning: Empty vector"); if (myVector.size > 0) printf("Vector is not empty"); * std::vector.empty() std::vector myVector; if (myVector.empty()) printf("Warning: Empty vector"); if (!myVector.empty()) printf("Vecto..
기존의 소스 코드에 쓰고 있는 forward declaration을 그대로 사용했더니 코드리뷰에서 typedef를 쓰지 말라는 리뷰가 왔다. 그래서 찾아보니 모던C++에서는 이제 typedef를 사용하지 않고 using 키워드를 사용한다고 하였다. 따라서 각 키워드의 다른 점을 살펴보았다. * typedef vs using 차이점 typedef std::shared_ptr MyClassPtr; using MyClassPtr = std::shared_ptr; 위와 같이 보면 일단 문법이 다른 것을 알 수 있다. 기존의 typedef 키워드의 문법은 앞의 타입형을 뒤에 있는 이름으로 축소해서 사용하겠다는 것을 의미하고, using 키워드는 약간 변수 할당과 비슷한 느낌으로 MyClassPtr에 std::sh..
회사에서 일하면서 유튜브 동영상을 틀어놓고 일하고 싶은데, 맥북프로와 모니터 2개가 공간이 모자라다보니 영상을 보면서 할수도 없고 아이폰을 틀어놓고 하자니 이어폰은 맥북에 연결되어있어서 어떻게 할까 고민 했는데 구글을 검색하다보니 좋은 팁이 있어서 공유합니다. [아이폰의 사운드를 맥북에서 나오게 하기]1. 라이트닝잭을 통해서 맥북에 연결2. QuickTime player를 실행3. New Audio Recording 실행 방법 1. 컨트롤+시프트+옵션+N 방법 2. File > New Audio Recording 선택 방법 3. 독 아이콘에 우클릭 후 New Audio Recording 선택 4. 녹음 버튼 옆에 있는 아래 화살표를 클릭 후 해당 iPhone 선택 (녹음 버튼은 누를 필요 없습니다) 이렇..
* 최근에 C++로 코딩하면서 옛날에 머물러있었던 C++ 개발 실력이었기 때문에 새로 보는 내용들이 아주 많다. 지금은 그냥 여기서 그렇게 하고 있으니까 따라한다는 마음이 크지만, 조금씩은 왜 그렇게 하고 있는지 알아가면서 C++ 관련 글도 정리하면서 쓰려고 한다. 기존에 보지 못했던 키워드 중 가장 먼저 눈에 들어온 것은 enum class 였다. * enum class C++11에서는 기존의 enum과 다른 새로운 키워드 조합인 enum class를 선호이고 있다. 사용법은 기존의 enum에서 크게 벗어나지는 않으나 가장 다른 점은 개발자들이 기존의 enum이 가지고 있었다고 주장하는 문제점들을 해결하고자 하였다. 그 중 가장 대표적인 것은 바로 기존의 C++의 enum은 내부적으로 int와 동일하게..
* 최근 SNS와 웹사이트를 연동하는 일들이 많아지면서, 많은 사이트들이 페이스북 로그인과 연동을 하고 있다. 페이스북에서 어떻게 로그인 연동을 해야 하는지 한번 알아보자. * 자바스크립트 SDK를 이용한 페이스북 로그인: 페이스북 앱들은 동작하는 장비나 프로젝트에 따라서 몇 가지의 로그인 단계를 거치게 된다. 이번에는 웹앱에서 로그인하는 단계를 한단계씩 알아볼 것이다. 여기서는 웹사이트인 경우 페이스북에서 추천하는 로그인 방식인 페이스북에서 제공하는 자바스크립트 SDK를 사용해서 페이스북 로그인을 할 것이다. 만약 자바스크립트 SDK를 사용하지 못하는 상황이라면 페이스북에서 제공하는 별도의 로그인 절차를 수동적으로 생성해야 할 것이다. * 빠른 시작: 일단 먼저 어떻게 구현해야 하는지 빠르게 훑어본 다..
* 옛날에 개발해뒀던 인스타그램에서 사진을 수집하는 크론이 갑자기 실행이 안되길래 원인을 분석해보니, 어느새부터인가 curl에 줘야하는 옵션이 바뀌었나보다. SSL 문제 이후에 보안을 더 신경 썼는지 curl을 실행하고나면 아래와 같은 오류가 나타났다. SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed : 이것을 해결하려면 간단하게 curl의 옵션을 추가하면 된다. curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_S..
* PHP로 RESTful API를 개발하다보면 가끔 AJAX(XMLHttpRequest)를 이용해서 호출하는 경우 로그인 정보를 유지하여 정보 검증을 해야하는 경우가 있는데, AJAX를 이용하는 경우에도 php의 $_SESSION 정보는 활용할 수 있다. 이것을 이용해서 페이지에서 로그인한 정보를 확인하고 검증이 안된 사용자에 대해서는 권한이 없음을 알려주면 권한 관리에 용이하다. * 하지만 php 페이지에서 바로 $_SESSION을 사용하면 로그인 정보를 가져올 수가 없고, session_start();를 AJAX처리하는 PHP 페이지 상단에 넣어야 정상적으로 동작하게 될 것이다. 아래가 아주 간단한 예이므로, 응용하면 된다. API 호출하는 페이지 예 ./api.php 페이지 소스 예 * 잊지말고 ..
* PHP를 통해서 원격에 있는 이미지를 긁어오거나 복사하고 싶을 때가 많은데 예외상황이 많을 것이다. 한번 예외상황들에 대해서 적어보고, 특히 php.ini를 마음대로 수정못하는 웹호스팅을 하고 있다면 꽤나 골치 아플 일이 많을 것이다. : 일단 첫번째로 확인해야될 제약사항은 php.ini에서 "allow_url_fopen"이 "on" 되어있어야한다는 것이다. 만약 이것이 on 되어있다면 원격의 파일을 꽤나 쉽게 가져올 수 있다. * copy 함수를 이용해서 원격 이미지 가져오기: 우선 가장 간단하게 가져올 수 있는 방법은 copy 함수를 쓰는 것이다. copy("http://remotedomain.com/image.jpg", "/tmp/local.jpg"); : 위와 같이 하면 바로 원격의 파일을 로..
* 이번에 개인적으로 작은 프로젝트를 하나 하게 되면서 새로이 nodejs와 heroku에다가 올려놓고 간단하게 하면 좋겠다는 생각이 들어서 오랜만에 heroku를 다시 세팅하고 nodejs를 해보았다. 익숙하지 않지만 새로운 영역에서 개발하고 그것이 성공적이라면 너무나 재미있다! (실패하게 되면 물론 짜증나지만..) 이번에 개발할 때 heroku에 eclipse 플러그인을 사용해서 개발해봤는데 무료서버호스팅 서비스 중 하나인 Heroku의 플러그인과 Eclipse를 연동하는 것을 해보자. * Eclipse plug-in 설치: heroku에서는 플러그인으로 이클립스에서 개발을 할 수 있는 환경을 제공해주고 있다. 물론 heroku는 git를 기반으로 호스팅 서비스를 제공하고 있기 때문에 git의 플러그..
* 이번에 localStorage를 사용하면서 안드로이드에서는 되는데 아이폰에서만 안되는 독특한(?) 현상 때문에 애를 먹다가 옛날에 모바일 브라우져 환경에서 디버깅을 하는데 사용했던 툴을 깔아야하나 고민 중이었는데, 아이폰용 사파리의 아주 편리한 기능을 알게 되었다. 작년에 웹페이지에 라이브러리를 깔아가면서 모바일을 디버깅했던 때와 비교하면 아주 혁신적으로 엄청 편리해진 것을 발견할 수 있을 것이다. * 웹속성 사용하기 : 모바일에서 디버깅을 하기 위한 툴이 부족한 상황에서 모바일에서의 자바스크립트를 디버깅하는 것은 매번 alert를 띄우거나 조금 부실한 아이패드에서 사파리 디버깅 콘솔을 설정해서 console.log를 사용하는 정도이었는데, 이 웹속성 기능을 사용하게 되면 조금 느리기는 하지만 마치 ..
* 이번에 간단하게 웹을 통해서 몇백KB 정도 되는 데이터를 웹에서 불러다가 처리하는 개인 프로젝트를 개발하다가 매번 몇백KB를 불러오는게 부담이 되어, localStorage의 캐쉬를 이용하는 간단한 웹을 만들고 있었는데 안드로이드와 구형 아이패드에서는 잘 되는데 이상하게 최신 아이폰5에서는 잘 안되는 것이었다. 왜그런가 살펴보다가 디버깅툴을 이용해서 이것저것 테스트하다가 아래와 같은 에러가 일어나는 것을 발견했다. "QuotaExceededError: DOM Exception 22: An attempt was made to add something to storage that exceeded the quota." : 대충 너무 큰 사이즈의 데이터를 입력하려고 했다는 의미인 것 같았는데, 검색해보니 i..
* 웹 개발에 있어서 가장 중요한 것은 현재 브라우져의 점유일 것이다. 오랜만에 최근의 브라우져 점유가 어떤지 점검하고 대략적인 개발 방향, 호환성 테스트를 결정하는데 있어서 참고가 될 수 있도록 항상 최신 통계 자료를 참고하면 좋을 것이다. : 작년에 gs.statcounter.com의 현황을 가져온 이후로 벌써 1년이 지났기 때문에 작년 2013년 동안 어떠한 변화가 있었는지 살펴보자.2012/12/12 - [HTML5] 브라우져별 지원 현황(canvas, getUserMedia, WebSockets) 살펴보기 : 아래는 gs.statcounter.com에서 최신 점유 브라우져 데이터를 수집한 결과이다. 이것은 절대적인 의미를 부여하기 보다는 전체적인 흐름을 살펴보는데 도움이 될 것이고, 아래의 통계..
* 일반적으로는 a href="#아이디"등과 같이 사용자가 클릭을 해야하는 경우가 있는데, 이러한 경우가 아닌, 자바스크립트로 이동하는 방법을 알아보자. 이러한 경우는 페이지의 bookmark를 등록하거나 할 때 해당 위치로 이동하도록 할 때에 편리할 것이다. : 먼저 html에 id를 준다. : 그리고 해당 element로 이동하고 싶을 때 아래와 같은 자바스크립트를 호출하면 된다. location.href = "#"; location.href = "#bookmark"; : 이 방법은 아주 쉽게 의 링크/버튼을 누르지 않고 그와 같은 효과를 이끌어낼 수 있다. 하지만 url의 뒤에 #bookmark가 추가되는 불편함(?)이 있을지도 모른다. 사실, url이 그렇게 변하는 것은 미관상(?) 안 좋을수도 ..
* 자바스크립트의 오브젝트로 만들었을 경우에는 쉽게 특정 값에 대하여 삭제 가능하지만 배열인 경우에는 다소 어렵다. 게다가 IE8 이전 버전은 조금 귀찮기도 하다. 따라서 다음과 같은 간단한 함수를 하나 만들어둬도 괜찮을 것이다. function remove(arr, value) { var i; if (arr.indexOf) { // IE9+, 다른 모든 브라우져 while((i = arr.indexOf(value)) !== -1) { //해당 값이 arr에 있는 동안 루프 arr.splice(i, 1); } } else { // IE8 이하 for (i = arr.length; i--;) { //뒤에서부터 배열을 탐색 if (arr[i] === value) { arr.splice(i, 1); } } }..
* 오랜만에 Heroku로 node.js 프로그래밍을 해보려고 새로운 작업환경에 heroku toolbelt를 깔고 foreman을 실행하려고 했는데 아래와 같은 에러가 일어난다. : 옛날만 해도 아무런 이상없이 잘만 동작하던게 이렇게 안되니까 답답~했는데 찾아보니까 루비에 깔리는 foreman 0.63버전에서는 동작이 조금 다르게 되는가보다. 따라서 아래와 같이 foreman을 언인스톨하고 기존에 지원하던 0.61.0 버전을 까니까 잘 돌아간다. gem uninstall foreman gem install foreman -v 0.61.0 : 그럼 다시 작업시작! 끝.
* 자바스크립트의 간단한 함수들을 이용하면 진수변환을 아주 쉽게할 수 있다. 10진수 16진수 2진수 8진수 * 10진수 -> 16진수 var dec = 123; var hex = dec.toString(16); // === "7b" * 10진수 -> 2진수var dec = 123; var bin = dec.toString(2); // === "1111011" * 16진수 -> 10진수var hex = "7b"; var dec = parseInt(hex, 16); // === "123" * 16진수 -> 2진수 (* 10진수로 바꿨다가 다시 2진수로 바꾼다)var hex = "7b"; var bin = parseInt(hex, 16).toString(2); // === "1111011" * 2진수 -> ..
* 이번에는 웹개발자들이 좋아하는 툴 중 하나인 Sublime text와 git를 연동시켜보자. (만약 한번도 안써봤다면 정말 추천하는 툴 중 하나이니까 한번 깔아보고 사용해보자! 유료이지만, trial은 기간제한없는 무료이니 깔아보고 사용해보고 마음에 들면 구입하면 된다.) - 이전 글2013/10/11 - [Git] 버전관리로 Git을 사용해보자! - 소개2013/10/12 - [Git] 버전관리로 Git을 사용해보자! - 설치2013/10/21 - [Git] 버전관리로 Git을 사용해보자! - 기본 명령어2013/10/31 - [Git] 버전관리로 Git을 사용해보자! - github에 무료 저장소 만들기2013/12/08 - [Git] 버전관리로 Git를 사용해보자! - 이클립스와 Github 연..
* 이번에는 실제 개발환경으로 많이 쓰이는 이클립스에서 이전에 만들었던 github 저장소와 연동시켜보자. 요즘 안드로이드 개발을 많이 하지 실제로 안드로이드 소스를 예제로 삼아서 올려보도록 하겠다. - 이전 글2013/10/11 - [Git] 버전관리로 Git을 사용해보자! - 소개2013/10/12 - [Git] 버전관리로 Git을 사용해보자! - 설치2013/10/21 - [Git] 버전관리로 Git을 사용해보자! - 기본 명령어2013/10/31 - [Git] 버전관리로 Git을 사용해보자! - github에 무료 저장소 만들기 * 이클립스 설치: 이클립스 설치는 다른 글들에서도 많이 다뤘으므로 건너가도록 하고 설치가 되어있지 않다면 아래의 사이트에서 다운로드항목에 가서 본인에 적합한 이클립스 종..
* 이번에는 무료로 서비스를 제공하고 있는 github에 저장소를 만들어보고 다음에는 이클립스와 sublime text로 연동해서 소스를 올리는 것을 한번 해보자. 사실 이렇게 하는 것이 아마 개발자로서는 거의 모든 일일 것이다. - 이전 글2013/10/11 - [Git] 버전관리로 Git을 사용해보자! - 소개2013/10/12 - [Git] 버전관리로 Git을 사용해보자! - 설치2013/10/21 - [Git] 버전관리로 Git을 사용해보자! - 기본 명령어 * Github 가입하기: 먼저 Github에 가입이 되어있지 않으면 가입해야한다. 사용자 이름, 이메일, 그리고 비밀번호를 입력한 다음, 초록색 버튼을 클릭하여 가입신청을 하자. http://github.com : 가입 신청이 끝나면, gi..
- 이전 글 2013/10/11 - [Git] 버전관리로 Git을 사용해보자! - 소개2013/10/12 - [Git] 버전관리로 Git을 사용해보자! - 설치 * Git의 명령어 소개: 이번에는 git에서 사용하는 실질적인 명령어들의 기능과 파라미터들에 대해서 살펴보자. 일단 Git Bash에서 "git"를 실행하면 다음과 같이 기본적인 목록이 나오는데, 각각에 대해서 살펴보자. * 파라미터 목록 : git 명령어에서 기본적으로 제공해주고 있는 파라미터들로 단독으로 쓰이는 것들과 명령어(command)와 조합되어 사용되는 것도 있다. 여기서 중요한 것은 필수요소인 로 git를 사용하면서 이 파라미터만 사용하게 될 것이다. 명령어의 종류는 아래에서 정리할 것이다. 파라미터 명 설명 예 [--version..
* 이전 글2013/10/11 - [Git] 버전관리로 Git을 사용해보자! - 소개 * 이번에는 Git를 설치해보고 간단한 사용법에 대하여 알아보자. 지난번에 소개해준 git 사이트로 다시 들어가자. http://git-scm.com 1. 설치 파일 다운로드: 아래의 첫 페이지에 "Download for Windows"를 클릭하면 자동으로 다운로드가 시작된다. 2. 설치파일 실행 및 설치: 다운로드 받은 파일을 실행하면 설치할 수 있다. 설치하면서 몇가지 옵션들을 선택할 수 있는데, 본인의 취향에 맞게, 컴퓨터 환경에 맞게 선택하면 된다. : 설치하는 옵션에 "Windows Explorer integration"을 선택하면 우클릭시 메뉴가 뜨도록 설정할수도 있다. 이러한 것에 예민한 사람이라면 체크박스..
* Git 사용하기: 요 몇년 사이에 구글을 통해서 다양한 프로그래밍 이슈들을 검색하다가, 또는 오픈 소스 프로젝트들을 보다가 유독 눈에 띄던 사이트가 하나 있었다. http://github.com : 바로 이 github이라는 사이트에 다양한 예제 소스코드와 각종 오픈 소스의 코드들까지 다양하게 올라오는 것을 볼 수 있었다. 처음에는 단순한 소스를 업로드할 수 있는 곳인줄 알았는데, 조금 더 알아보니 git이라는 버전 관리 프로그램을 이용한다는 것이었다. 처음으로 버전관리를 접해봤던 MS의 소스세이프 이후에 SVN에만 익숙해져 있었던 와중에 새로운 버전관리 프로그램이라 눈에 띄었고, 게다가 무료 svn 호스팅을 찾다가 만난 것이 바로 이 github이라는 꿀 같은 사이트였던 것이다. 이렇게 무료로 버전..
* 간단한 테스트용 서버를 구하려고 하던 중 이왕 하는거 nodejs로 하고 싶어서 여기저기 nodejs 호스팅 업체들을 알아보던 중 무료로 할만한 곳이 Heroku와 AppFog가 있다는 것을 알게 되었다. AppFog를 이용하려고 했지만, 앱을 새로 만들 때 에러가 나기 때문에 일단 Heroku로 시작하기로 했다. 0. 사전 준비 : nodejs/npm 설치 - Heroku에서는 0.8.x 버전을 호환해주므로 0.8.x 버전을 설치하자. 중간의 초록색 버튼을 누르면 바로 설치가 가능하다. http://nodejs.org/ * 이제부터 무료 호스팅 서비스인 Heroku를 이용해보자. 1. Heroku 사이트에 접속 http://www.heroku.com 2. 가입하기 : 중간의 Sign Up 버튼을 클..
* 자바스크립트에서는 이벤트를 다루는 방법은 대표적으로 3가지를 꼽을 수 있다. 1) HTML에 inline으로 등록Click me! 2) element의 onload 속성을 통한 등록 Click me! 3) addEventListener/attachEvent를 이용한 등록 Click me! : 일단 1)번부터 보면 이건 초창기 인터넷 넷스케이프 2 당시부터 사용하던 이벤트 핸들러 방식이다. 워낙에 전통적인 방법으로 오랫동안 사용해와서 많은 사람들이 아직도 사용하고 있다. 하지만 HTML을 사파리 reader 등으로 볼 때 문서로서 최적화하기 위하여, MVC 또는 MVVM 모델을 분류하기 위하여 html은 오로지 document를 표시해주는 역할을 취하게 하기 위해서는 1)번 보다는 이벤트 핸들러는 자바..
: 자바스크립트에서 string을 표기하는 방법이 여러가지가 있는데, 크게 2가지로 뽑을 수 있을 것이다. var objStr = new String("unikys"); // #1 var toStr = String("unikys"); // #2 var prmStr = "unikys"; // #3: String literal : 여기서 일반적으로 쓰이는 것은 #1번과 #3번(String literal)이고, 아마도 대부분은 #1번처럼 사용한 적도 별로 없겠지만, #1번과 약간 비슷해보이는 #2번의 표기방법도 있기는 있다. 비슷해보이는 표기법들이 C에서는 상당히 다르게 느껴지기는 하지만, 자바스크립트에서는 위의 #3번의 경우 아래와 같이 String의 함수들도 사용할 수 있다는 것이 신기하기도 하고 재미있다..
* 목표: 엑셀에서 선택한 영역을 가져와서 각 문자열의 문자 중에 입력한 단어가 있으면 색을 변환하는 매크로 작성 * 작성 환경: 엑셀 2010 : 예를 들면 아래와 같은 엑셀이 있을 경우 'fer'를 빨간색으로 변환하고 싶다. 1. 매크로 생성 : 위의 메뉴바에서 보기 > 매크로 > 매크로 보기를 선택 : 매크로 이름에 'WordColor' 등 매크로 이름을 넣으면 오른쪽에 '만들기' 버튼이 활성화 된다. : '만들기' 버튼 클릭 : 그러면 아래와 같이 비쥬얼 베이직 모듈 작성 윈도우가 열린다. 여기다가 매크로를 작성한다. 2. 매크로 작성 : 아래의 소스를 매크로에 작성한다.Sub WordColor() Dim cell As Range, word As String, startIndex As Intege..
* 전문가들이 자바스크립트에 있지만 없는듯이 살라는 명령어가 2가지가 있다. eval with : eval은 보안상, 퍼포먼스상 문제가 있기 때문에 반드시 필요한것이 아니라면 사용하지 말라고 하는 것은 이해가 되지만, 솔직히 with란 놈은 한번도 써본적도 없고, 본적도 없는데 사용하지 말라고 한다. 한번도 본적이 없는 명령을 사용하지 말라고 하니까 이게 어떠한 명령인지 왠지 더 궁금해지고 사용해보고 싶은 법! 때문에 일단 이 with 명령에 대하여 한번 알아보고, 왜 사용하지 말아야 하는지 알아보자. * with - 설명: with 이후에 오는 구문을 위해 scope chain에 인자로 받는 object를 추가한다. - 문법:with (object) statement; 또는with (object) { ..
* javascript를 하게 되면 DOM객체에 CSS의 클래스를 추가하고 삭제하는 일이 많아졌을 것이다. 이 기능은 jquery로 간단하게 이용할 수도 있지만, 그 내부에서 돌아가는 사정은 알고 사용해야 할 것 아닌가. jquery만 의존해서는 자바스크립트 언어 실력이 향상 될 수 없기 때문에! 간단하게 순수 vanilla 자바스크립트로 구현해보자. * addClass : css 클래스를 추가하는 함수로, element와 class명을 받도록 한다.function addClass(element, className) { element.className += " " + className; }; : addClass는 쉽게 끝난다. 더이상 깊게 들어가야할 것은 안보인다. * removeClass : css 클..
* jquery는 정말로 편하고 좋은 라이브러리이다. 최적화도 잘되어있고 다양한 기능이 아주 쉽게 들어가있다. 하지만 자바스크립트 개발자라면 이 jquery의 활용에 대해서 고민을 해봤을수도 있고, 좋은 라이브러리라니까 가져다 쓰고 활용을 할수도 있을 것이다. 하지만 적어도 이유는 알고 사용하고, 사용을 안 한다면 왜 사용을 안 해야하는지에 대해서 고민을 해보자. * 서론 : 자바스크립트를 숱하게 해오다가 처음으로 jquery라는 라이브러리를 대충 듣게 되고, 이것이 무엇인지도 모른체 지내다가 나중에 jquery를 처음 알게 되었을 때에는 너무나도 놀라웠다. 기존에 자바스크립트로 사용했던 DOM 탐색의 경우 끽해야 id 탐색, class 이름과 태그명으로 탐색했었는데 이러한 것들을 CSS 의 검색 스타일..
* 현재 HTML5는 각 브라우져사별로 다르게 지원을 확대해나가고 있는 실정으로 지원하는 기능도 다르기 때문에, 기능마다 지원할 브라우져를 고려해야할 것이다. 이러한 각 브라우져별로 지원 현황을 보기 위한 홈페이지를 소개한다. http://caniuse.com/ : 각 브라우져별, 버전별 지원 현황을 보기 좋게 잘 정리해놨다. 여기서 본인이 자주 사용하게 될 기능을 검색하게 되면 해당하는 기능에 대한 지원 현황이 나오게 된다. 각 브라우져별, 버전별 점유율도 보여줘서 이러한 것을 살펴보는 것이 의외로 재미있다. 그럼 간단하게 HTML5의 핵심 기능들과 이제 막 구현이 진행되고 있는 WebRTC 관련 기능들을 살펴보자. * canvas : HTML5의 가장 기본으로 생각되는 태그의 지원 현황이다. IE만 ..
- Total
- Today
- Yesterday
- 안드로이드 앱 개발 기초
- 속깊은 자바스크립트 강좌
- google app engine
- Android
- 자바스크립트
- gae
- HTML5 튜토리얼
- K100D
- HTML5
- ny-school
- Python
- Writing
- 뽐뿌
- gre
- Javascript
- 강좌
- java
- GX-10
- 서울
- 탐론 17-50
- TIP
- lecture
- php
- mini project
- 삼식이
- c++
- 팁
- 샷
- 안드로이드
- 사진
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |