본문 바로가기

전체 글

Swift 문법 간단 정리 #1 Optional값이 존재할 수도 있는 상황에서 optional를 사용한다.optional의 의미값이 있고 그 값이 x와 같다.값이 없다.optional가 값이 있다는 것을 확신하면 마지막에 느낌표를 붙여서 값에 접근할 수 있다.!: 값이 존재함을 확신할 수 있다는 의미forced unwrappingoptional bindingif let abc = possible.toInt()possible.toInt가 리턴한 optional int값이 값을 가지고 있다면 새로운 상수 abc의 값을 그 값으로 한다.forced unwrapping이 불필요 = ! 쓸 필요 없음Implicitly Unwrapped Optionals프로그램 구조적으로 항상 값을 가질 때 수시로 !로 unwrapping해줄 필요 없이 값 지정.. 더보기
DOM에서 특정 element를 제거하는 크롬 확장 프로그램 아주 간단한 확장 프로그램을 하나 만들었다. 웹 페이지를 로딩할 때 특정한 dom element를 문서에서 제거하는 것이다. 설정 페이지 등 일반적인 형태로 사용할 수 있는 기능들을 빼고 dom element를 제거하는 기능 구현에 집중했더니 개발 시간은 길지 않았다. 소스 코드는 다음과 같다. // manifest.json{ "manifest_version": 2, "name": "Dom Element Remover", "description": "This extension removes pre-specific elements from HTML document.", "version": "1.0", "content_scripts": [ { "matches": ["http://*.daum.net/*"], .. 더보기
Manifest for web application 요약 Manifest for web application을 사용할 일이 있어 스펙을 살펴보며 간단히 정리했다. 이 스펙은 web application을 브라우저가 아닌 곳에서 실행시킬 때 기기에서 표시할 정보와 실행에 필요한 정보를 저장하는 방법에 대해 정의하고 있다. 모바일 사이트나 web os등 이 스펙이 사용되는 곳은 심심치 않게 있겠지만 일반 사용자에게는 거의 눈에 띄지 않는 스펙이기도 하다. 개인적인 필요로 http://w3c.github.io/manifest/ 문서를 한 번 살펴보면서 정리한 것이므로 개인적으로 불필요하다고 생각하는 부분은 정리하지 않았고 문서의 품질을 높이기 위해 리뷰를 하지 않았으므로 내용이 누락되어 있거나 오역이 있을 가능성이 높다. 그러므로 이 문서를 참고할 분들은 적용 전에.. 더보기
Google Hangouts manifest.json 정리 개인적으로 크롬 확장 프로그램(또는 크롬 익스텐션)에 관심이 있는 편이다. 그래서 이전에 간단한 확장 프로그램을 만들어보기도 했고. 크롬 확장 프로그램을 실행시키기 위해 필요한 파일 중에 하나가 manifest.json인데 Google Hangouts의 manifest.json을 예제로 삼아 간단히 정리해봤다. Hangouts가 manifest.json의 모든 항목을 사용하는 것은 아니므로 manifest.json의 전체 내용을 파악하긴 어렵지만 시작점으로는 충분히 의미있으리라 생각한다. { // background 페이지는 익스텐션의 프로세스를 실행한다. // extensions의 기본 lifecycle에 대한 이해가 필요함 // html이 필요 없는 경우 'scripts'를 name으로 하고 java.. 더보기
맥 sourcetree에서 git에 push할 때 osxkeychain이 git 명령어가 아니라고 나오는 경우 Mac에서 Source Tree를 이용하여 Github을 사용하고 있다. 이미 계정 하나가 있고 새로 계정을 만들어 checkout을 받았다. 이 때 SSH 대신 HTTPS를 사용하였다. 그런데 수정한 내용을 push하려고 하니 credential-osxkeychain이 git 명령어가 아니라는 오류가 자꾸 발생한다. GitHub에서 이런 오류가 발생할 경우 다음 주소에서 프로그램을 설치해야 한다고 안내하고 있다. https://help.github.com/articles/set-up-git#password-caching 그러나 위 프로그램이 이미 설치되어 있는 상황인 것을 확인하였고 설정(git config --global -l)으로도 제대로 설정된 것을 확인 가능했다. 한참을 고민하다가 키체인 접근을.. 더보기
Mac에서 프로그램에 옵션 지정해서 실행시키기 크롬 브라우저를 띄우면서 특정한 옵션을 지정하여 실행시켜야 하는 상황이 생겼다. 처음에는 'Mac도 unix의 일종이니까'라는 생각으로 shell script를 만들었다. 그런데 의도한대로 실행되지 않는다. 프로그램을 정상적으로 못찾았던가.. 지금은 기억이 좀 가물가물. 언젠가 애플스크립트를 본 기억이 있어 애플스크립트 편집기를 실행시켰다. 이리저리 명령어를 입력해봤지만 제대로 실행되지 않고 계속해서 오류를 일으키기에 결국 구글에서 검색. 역시나 검색해서 결과를 보니 너무 간단하다. do shell script "open -a '/Applications/Google Chrome.app/' -options" 이렇게 스크립트를 만들고 컴파일하면 계속 애플스크립트 편집기를 띄우지 않고도 옵션을 지정하여 크롬 .. 더보기
WebSocket API 지난 7월 13일 강남역에서 열렸던 JSLounge 여섯번째 세미나에서 발표한 WebSocket API 자료이다. Web Socket API from JeongHwan Jang WebSocket의 경우 표준이 논의된지 상대적으로 오래된 상황이라 이미 다양한 라이브러리가 나와 있고 WebSocke에 대한 번역서도 나와 있을 정도로 널리 알려진 프로토콜/API이다. 개인적으로 업무에 활용하게 되면서 내용을 살펴봤고 HTTP와는 달리 서버와 항상 연결되어 있다는 점에서 게임, 채팅, Push 등 HTTP의 약점을 메꿀 수 있을 것이라고 생각한다. API는 간단한 편이나 프로토콜까지 살펴보기에는 다소 어렵다는 생각이 든다. 특별히 WebSocket을 지원할 서버를 만드는 것이 아니라면 프로토콜을 살펴보지 않아도.. 더보기
HTML5 API - The Screen Orientation API and Fullscreen 지난 5월 2일 JSLounge의 다섯 번째 세미나에서 발표한 HTML5 API - The Screen Orientation API and Fullscreen 발표자료이다. 지난 달 게임을 개발할 때 유용하게 사용할 수 있는 HTML5 기능들에 대해 조사하다가 조금 더 자세히 알아보고 싶은 생각이 들어 주제로 정했다. HTML5 API - The Screen Orientation API and Fullscreen from JeongHwan Jang Fullscreen은 이미 플래시에서의 전체 화면 기능이나 동영상을 볼 때 종종 사용했던 기능으로 프로그램을 사용하여 기능을 제어할 수 있다는 점을 빼면 특이한 내용은 없다. 개발자의 관점에서는 혼동할 수 있는 부분이 있으나 특별히 어려운 것은 아니다. 반면 .. 더보기

반응형