## 소스 코드를 통한 설치 패키지 매니저를 통해 설치할 수도 있지만, 옵션 등을 제어하려면 소스 코드를 직접 컴파일하는 것이 좋다. ## 의존 라이브러리 ### pcre 엔진엑스를 컴파일하려면 펄 호환 정규표현식(PCRE, Perl Compatible Regular Expression)이 필요하다. 재작성 모듈(rewrite)과 HTTP 코어 모듈이 PCRE 구문에 따른 정규표현식을 사용하기 때문이다. `pcre`와 `pcre-devel` 의 설치가 필요하다.`pcre`는 컴파일된 버전의 라이브러리이고, `pcre-devel`은 프로젝트를 컴파일하기 위한 개발용 헤더와 소스코드이다. $ yum install pcre pcre-devel $ apt-get install libpcre3 libpcre3-d..
발생일: 2013.12.06 키워드: nginx, 엔진엑스 문제: 이번 프로젝트에선 nginx 로 웹서버를 운영하기로 했다.아직 한 번도 사용해본 적이 없었는데, 마침 옆자리 D가 예전에 사둔 책이 있다며 가져다줬다. Nginx HTTP Server 라는 책이었는데, 이해하기 쉽게 설명도 잘 되어있고 좋았다.(지금 찾아보니 평점이 썩 좋진 않다. 난 좋던데... -_-a ㅎㅎ) 책 보며 정리했던 것에 몇 가지 설명을 덧붙여 옮겨둔다. 해결책: ## nginx 를 구동할 사용자 계정 생성 사용자 계정 확인$ cat /etc/passwd 쉘 접근 권한이 없는 상태로 홈 디렉토리를 지정해 추가하기$ useradd --shell /sbin/nologin --home-dir /usr/local/nginx ngin..
발생일: 2013.10.10 키워드: configure, make, make install 문제: 소스 코드를 빌드할 때, `configure, make, make install`을 순서대로 실행하는데,각 명령이 의미하는 게 정확히 뭘까? 해결책: http://www.codecoffee.com/tipsforlinux/articles/27.html정말 친절하고 쉬운 설명! $ ./configure 쉘 파일 이름이다. 소프트웨어를 설치할 머신에 대한 정보를 확인한다. 그리고 현재 머신에 적합한 `Makefile`을 만든다. $ make 현재 디렉토리의 `Makefile`을 실행하는 명령이다. 여러 작업을 수행할 수 있지만, 기본적으로 소스를 컴파일하고 실행가능한 파일을 만든다. $ make install 컴..
발생일: 2013.10.10 키워드: forward proxy, reverse proxy, 포워드 프록시, 리버스 프록시 문제: 리버스 프록시란 용어를 많이 듣긴 했는데, 그냥 프록시와 리버스 프록시의 차이가 뭔지 모르겠다.뭘까? 해결책: 짧고 간결하게 잘 설명해놓은 포스트가 있다.http://idess.tistory.com/6 포워드 프록시 클라이언트가 타겟 서버의 정보를 요청할 때,프록시로 타겟 서버의 주소를 전달해 프록시가 데이터를 가져오는 방식 예) http://proxy.com/?url=target.com 리버스 프록시 클라이언트는 프록시로 요청하고,프록시가 배후(reverse)의 서버로부터 데이터를 가져오는 방식 예) 클라이언트는 http://proxy.com/로 요청 --> (proxy는 t..
발생일: 2012.07.15 키워드: 즉시실행함수, IIFE 문제: 즉시실행함수의 패턴에 대한 글인데,예전에 팀 메일로 공유하려고 정리해뒀던 건가보다. 지금은 익숙한 코드라 대수롭게 보이지 않지만,다른 누군가에겐 생소할 수도 있을만한 내용이라 옮겨둔다. (메일로 보냈던 내용을 그대로 옮긴 거라 어투가 평소 포스트 스타일과 다르다.^^;; 대신 실명만 이니셜로 변경~! 그 때 팀 사람들이 보고 싶넹~ ㅠ_ㅠ) 해결책: 즉시실행함수 표현식(IIFE, Immediately-Invoked Function Expression) 패턴 오전에 차트 수정할 게 좀 있어서 라파엘 코드를 들춰보다가, 표현식으로 함수를 정의한 케이스가 있어서 공유드려요. 지난 번에 S의 코드리뷰 할 때에도 비슷한 얘기가 나왔었고,얼마 전에..
발생일: 2013.04.17 키워드: Firefox, 파이어폭스, Gaia, XUL, zool 문제: 무엇 때문이었는지 잘 생각이 나지 않지만, `XUL`에 대해 알아보면서 정리해뒀던 메모다. 브라우저의 렌더링 엔진으로 웹킷이 대세임에도,파이어폭스에서 웹킷을 도입하지 않는 이유에 대한 인터뷰가 인상적이었다. 노트를 정리하다가 발견해서 옮겨둔다. 해결책: Gaia- https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia- Firefox OS 의 유저 인터페이스 레이어- 단순히 Gecko로 구현된 표준 웹 API를 사용해 운영체제에 접근할 수 있는 인터페이스일 뿐이다. (참고로, Gecko는 레이아웃 엔진. HTML, CSS, XU..
발생일: 2013.01.02 키워드: 크롬 개발자 도구, Chrome Developer Tools, 네트워크 패널, Network panel 문제: 노트 정리하다 오래 전에 정리해둔 문서를 발견했다. 크롬 개발자 도구의 네트워크 패널에 대한 정리인데,패널의 각 요소에 대한 설명이 명확히 되어있지 않아 정리를 시작했던 걸로 기억한다. 2011년 말에 생성하고 마지막 업데이트 2013년 1월이라 나온다.꽤 오래된 노트이지만, 아직도 내용은 유효한 것 같아 옮겨둔다. 해결책: 크롬 개발자 도구 네트워크 패널의 각 속성 Size : 실제 응답 사이즈(헤더를 포함한 사이즈이며, gzip으로 압축된 경우 압축된 사이즈를 나타낸다) Content : 응답 컨텐츠(body) 사이즈, 압축하기 전 컨텐츠의 사이즈 Tim..
발생일: 2013.09.24 키워드: 노드, Node.js, Q, 프라미스, Promises 문제: 최근 진행 중인 프로젝트엔 모든 비동기 작업에 프라미스 패턴을 적용해 구현하고 있다. 프라미스 구현체로는 Q 라이브러리(https://github.com/kriskowal/q)를 사용하고 있다. 노드 서버에도 Q로 프라미스 패턴을 도입했는데,Q에서는 노드 콜백 패턴을 쉽게 프라미스 객체로 변경할 수 있는 메서드를 제공하고 있어서 편리하다. 해결책: https://github.com/kriskowal/q#adapting-node 노드의 콜백은 function (err, result) 형태의 패턴을 따른다.q 라이브러리에서는 이런 콜백을 프라미스 객체로 래핑할 수 있게 다양한 방법을 제공하고 있다. nfcal..
발생일: 2013.10.18 키워드: OAuth 문제: 보안은 늘 어려운 것 같다.잘 정리된 문서를 찾기도 어렵고, 있다 하더라도 난 좀 이해하기 어렵더라. @_@ 이번에 OAuth 인증 처리가 필요하던 차에, 한빛 소프트에서 나온 EBook을 보게 됐다.오잉~~ 쉽게 설명되어 있어서 참 좋더라. :D http://www.hanb.co.kr/ebook/look.html?isbn=9788979149944 책 읽으면서 정리해둔 게 있어 옮겨둔다. 해결책: 서버사이드 웹 애플리케이션 1. 권한 서버로 권한 코드 요청하기 요청 URL 예: https://accounts.google.com/o/oauth2/auth client_id: 등록한 애플리케이션의 아이디redirect_uri: 권한 코드 획득 후 리다이렉..
발생일: 2013.10.23 키워드: screen, 스크린 문제: 다른 팀 동료가 서버를 돌려두곤, '스크린으로 띄워놨어요~'라고 알려줬다. 오잉. 이게 뭐지~? 해결책: 한 터미널에서 여러 세션을 띄워두고 전환하며 실행할 수 있는 명령이다.터미널을 종료한 후에도 세션이 살아있어서, 여러 작업을 동시에 처리할 때 편하다. screen -R : 목록 screen -S 스크린명 screen -R 스크린명: 세션 복구 ctrl + a + d: 세션에서 나오기 (로그아웃 되진 않음) 자세한 설명:http://pinge.egloos.com/2358742 기본 사용법: https://kldp.org/node/18744