발생일: 2014.02.14 키워드: git, 깃, git hook, 깃훅, 소스트리, source tree 문제: 터미널에서 잘 실행되는 깃훅이 소스트리에서는 오류를 발생한다. 확인해보니, 깃훅에 포함된 명령을 소스트리에서는 찾지 못하고 있다. 뭐가 문제일까? 해결책: 소스트리의 앱 구동 환경이 사용자 계정의 PATH 정보와 달랐기 때문이었다. 문제가 발생했던 깃훅은 아래와 같이 커밋 전에 grunt 명령으로 린트를 실행하는 코드였다. AS-IS: grunt jshint grunt 명령은 사용자 계정에서 글로벌로 설치한 명령이었고, /etc/paths 에 정의되어 있었다. 소스트리의 구동 환경을 정확히 알아보진 않았지만, /etc/paths 의 것을 참조하고 있진 않은 모양이었다. 모든 멤버의 환경을 ..
발생일: 2015.12.04 키워드: git, 깃, revision, 깃 리비전, revision range, 깃 로그, git log 문제: 특정 브랜치를 제외하고 현재 브랜치에서 작업한 커밋 로그만 보고 싶다. 해결책: `git log ` 명령에 리비전을 전달할 수 있고, 리비전 범위로 필터링할 수 있다. 특정 리비전: () HEAD^ : 현재 커밋의 부모 HEAD^2 = 현재 커밋의 조부모 HEAD^^ = 위와 동일 HEAD^5 : 현재 부모의 다섯번째 부모 범위: () refA..refB : refA 엔 없고 refB 에만 있는 커밋 ^refA refB : 위와 동일 ^refA refB refC : refA 엔 없고, refB / refC 에만 있는 커밋 --not refA refB refC : ..
발생일: 2014.05.30 키워드: git, 깃, branch, 브랜치, xargs 문제: feature 로 시작하는 모든 브랜치를 지우려고 아래와 같이 실행했다. $ git branch | grep feature | xargs git branch -D 헌데, 자꾸 없는 브랜치라고 나온다. 왜 일까? 해결책: 내가 git branch 명령의 결과에 컬러가 들어가도록 테마를 적용해두었기 때문이었다. 테마 때문에 `git branch`로 출력되는 브랜치 이름에 컬러 정보가 포함되어 있었다. $ git branch | grep feature | od -c 와 같이 실행해보면, 텍스트 앞에 컬러가 들어가 있는 게 보인다. `branch` 명령의 옵션으로 `--no-color`가 있어 아래와 같이 처리했다. $..
발생일: 2014.01.27 키워드: 젠킨스, jenkins, 자바, java 문제: CentOS에 젠킨스를 설치하고, 젠킨스 서비스를 실행했는데 아무 일이 일어나지 않는다. 해결책: 계정과 자바 버전이 문제였고, 아래는 점검했던 항목들에 대한 메모이다. 1. PATH 이슈 - .bashrc (또는 .bash_profile)에 자바 PATH 설정을 누락했었다. 2. Java 버전 이슈 - 배포 대상 머신(CentOS)에 구 버전의 자바가 설치되어 있었다. 자바 새 버전을 설치했다. 3. 계정 이슈 - 서버에는 `deploy`란 계정으로 접속했었다. 설정도 `deploy`로 추가했었고. - 젠킨스는 별다른 설정이 없다면, `jenkins` 유저로 실행되기 때문에 신규 자바 버전을 찾지 못했던 것. - 젠킨..
발생일: 2014.12.01 키워드: 안드로이드 인앱 브라우저, android in app browser, 안드로이드 스크린 크기, android screen size, screenWidth, screenHeight, clientWidth, clientHeight, deivcePixelRatio 문제: 특정 페이지에서 screen.width 와 screen.height 값을 사용하는데, 일부 안드로이드 브라우저에서 해당 값이 디바이스의 크기가 아니라 해상도 기준으로 설정되는 문제가 있다. 해결책: 일부 안드로이드 기본 브라우저들은 스크린 너비, 높이 값이 디바이스 해상도 기준으로 설정되는 등 의도치 않은 값이 할당되어 있는 경우가 있다. 작업은 동료 A가 진행했는데, 보정 기준은 아래와 같다. - 기본적..
발생일: 2015.11.06 키워드: git checkout, git double dash, --, git dash dash, 깃 더블 대시, 대시 대시, bash, command flags 문제: 깃에서 특정 파일의 변경을 취소할 때 아래와 같은 커맨드를 실행한다. git checkout -- path/to/file.txt 그러고보니 아무 생각 없이 습관적으로 사용하고 있었는데, 더블 대시가 의미하는 게 뭘까? 해결책: 기본적으로 더블 대시는 배시에서 커맨드 옵션의 끝을 의미하는 용도로 쓰인다. 예를 들어, grep 명령으로 옵션 -v 가 아닌 문자열 -v 를 검색하고 싶다면, 아래와 같이 `--` 로 옵션이 종료되었음을 명시할 수 있다. $ grep -- -v file 문제에서 예로 들었던 깃 커맨드..
발생일: 2015.11.06 키워드: git merge conflict with binary files, git checkout, 바이너리 파일 머지 충돌, 바이너리 머지 깨짐 문제: 바이너리 파일의 머지가 깨진 경우, HEAD나 머지한 브랜치의 것 중 하나를 선택하려고 한다. 해결책: git checkout 커맨드에서 --ours 와 --theirs 옵션을 제공한다. --ours: 현재 브랜치의 것을 선택 --theirs: 다른 브랜치의 것을 선택 $ git checkout --ours -- path/to/file # 현재 브랜치의 것을 선택 $ git checkout --theirs -- path/to/file # 머지한 브랜치의 것을 선택 참고: http://stackoverflow.com/ques..
발생일: 2015.11.05 키워드: nginx, proxy_pass, location, regexp, regex, group, variable, 변수, 정규식 그룹 문제: location 블럭에 매칭된 값 중에 일부를 프록시 서버의 파라미터로 전달하고자 한다. 예를 들어, 아래와 같이 주소를 전달받은 후에, http://example.com/user/1234/a/b/c?x=y&x2=y2 프록시 서버로 아래와 같이 전달하고자 한다. http://localhost:3000/a/b/c?user_id=1234&x=y&x2=y2 해결책: nginx 문서의 proxy_pass 항목에는 아래처럼 정의되어 있다. http://nginx.org/en/docs/http/ngx_http_proxy_module.html#p..
발생일: 2015.11.05 키워드: nginx, proxy_pass, 엔진엑스, 프록시 문제: nginx 에서 proxy_pass 의 마지막 슬래시 여부에 따라 전달되는 주소가 달라지는 것 같다. 잘 이해하고 가자. 해결책: proxy_pass 에 URI를 생략하는 경우, 요청으로 들어온 전체 Path가 프록시 서버로 전달된다. proxy_pass 에 URI를 정의하는 경우(`/` 포함), location 블럭에서 매칭된 나머지 주소만 프록시 주소에 정의된 URI에 붙어 전달된다. 요청 URL이 아래와 같다고 가정하면, http://example.com/foo/bar/baz 각 룰 케이스 별로 프록시로 전달되는 path는 아래와 같다. Case) location 과 proxy_pass 에 / 가 없는 ..
발생일: 2015.11.02 키워드: unicode, ES6, regexp, u flag, 정규식, Regular Expression 문제: JSConf EU 2015 컨퍼런스에서 Mathias Bynens가 발표한 ES6의 RegExp.prototype.unicode 동영상이 공유됐다. 발표 내용이 좋아서, 핵심적인 내용에 코드 샘플을 덧붙여 정리해봤다. 해결책: JSConf EU 2015: RegExp.prototype.unicode https://www.youtube.com/watch?v=raJcug_vW0c 자바스크립트에서도 캐릭터의 symbol을 직접 사용할 필요 없이, U+ 와 16진수 숫자(hexadecimal)로 코드 포인트를 직접 참조할 수 있다. 유니코드의 범위는 아래와 같이 크게 세 ..