본문 바로가기

NUNDEFINED

Google I/O 2015 첫 번째 날 올해 초만 해도 막연히 올해 미국을 한 번 가보고 싶다는 흐릿한 목표만 있었다. 이번 구글 IO는 '되면 좋고 아님 말고' 정도의 생각으로 신청했는데 덜컥 당첨되어 다녀올 수 있었다. 이렇게 컨퍼런스를 다녀오면 미국에서의 흐름은 어떤지, 한국과는 어떻게 다른지를 깨달을 수 있어 도움이 되는데 이번 컨퍼런스도 마찬가지였다. 행사장인 모스콘 센터 서관 입구. 오른쪽은 등록을 위한 줄이고 왼쪽은 입장을 대기하는 줄이다. 등록은 행사 전날부터 이루어졌기에 많이 붐비지는 않았다. 등록은 전혀 기다리지 않고 진행할 수 있었다. 행사장에 들어가기 위해 줄은 필수이다. 들어보니 전날 등록을 위해서도 줄을 한참 섰다고 한다. 줄은 모스콘 센터를 둘러싸는 형태로 되어 있었으며 거의 행사장을 한바퀴 감싼듯 했다. 다른 곳에.. 더보기
Swift 문법 간단 정리 #2 functionfunc getColor(string: String) -> (red: Int, green: Int, blue: Int) {}println(“\(returnVal.red) and \(returnVal.green) and \(returnVal.blue)”)func makeColor(c1: Int, c2: Int, c3: Int)func makeColor(withRed c1: Int, withGreen c2: Int, withBlue c3: Int)말을 만드는 것처럼 함수를 호출할 수 있게 (sentence-like)func makeColor(#red: Int, #green: Int, #blue: Int)함수 내, 외부에서 같은 이름으로 파라미터를 사용func makeColor(withRed c.. 더보기
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" 이렇게 스크립트를 만들고 컴파일하면 계속 애플스크립트 편집기를 띄우지 않고도 옵션을 지정하여 크롬 .. 더보기

반응형