git-ftp를 이용한 웹사이트 배포

일반적으로 스크립트 언어에 기반한(Python, PHP, Ruby 등) 웹사이트 개발을 할때 보통 로컬머신에서 개발을하고 충분한 테스트를 거친 후 실제 서버로 배포를 하게 된다. 이때 ssh shell에 접근가능하며 충분한 권한을 가진 단독 호스팅 서버가 있다면 서버에 git 저장소를 만들어 두고 git의 pull & push와 hook을 이용하여 손쉽게 로컬에서 수정된 코드들만 효율적으로 배포(deployment)가 가능하다. 하지만 일반적인 웹호스팅 서비스를 이용할 경우 git을 지원하는 곳은 매우 드물다보니, 로컬에서 작업한 결과물을 업로드하려면 일반적으로 FTP를 사용해야한다. 하지만 이는 어느파일이 로컬에서 수정되었는지에 관계없이 전체 사이트를 업로드하는 것이 매우 비효율적일 뿐더러 관리가 더 힘들어진다. 이 경우 git-ftp 커맨드를 이용하는것을 매우 추천한다. 다운로드 링크: https://github.com/git-ftp/git-ftp ...

2013년 12월 11일 · 2분 · 238단어

마크다운 편집기 벤치마크

현재 맥용으로 개발중인 마크다운(Markdown)/블로깅/노트 통합 어플리케이션을 만들면서 벤치마킹 중인 앱들을 쭉 정리해봤다. 다들 특색있는 기능들이 몇가지 보이지만, 다들 부족한 점들이 있기때문에 잘 파고들면 충분히 좋은 앱을 만들 수 있을것으로 생각된다. 멀티플랫폼인 앱들도 있지만 현재 타겟플랫폼이 맥이다보니, 앱들도 대부분 맥을 기준으로 정리해 두었다. * 용어 설명 비교에 들어가기 앞서 몇가지 비교포인트에 대한 용어를 정의해보았다. 블로그 싱크: 연결된 블로그로 직접 포스팅/수정이 가능한지 여부 싱글윈도우 UI: 앱 전체를 통틀어 윈도우는 하나이고, 다른 문서 선택시 해당 윈도우에서 문서가 불러들여짐 멀티윈도우 UI: 각 문서마다 새로운 창이 하나씩 새로 띄워짐. HTML 프리뷰: 마크다운 문서 작성시, HTML/CSS형태로 출력되는 것을 실시간 미리보기가 가능한지 여부 마크다운/블로깅 관련 네이티브 앱 Ecto 3 가격: 19.95$(웹사이트 자체판매), 웹사이트 블로그 싱크 O, 싱글+멀티 윈도우UI, HTML 프리뷰 X 싱크 가능한 블로그 갯수면에서는 가장 확장성있음 (Blogger, Blojsom, Drupal, MovableType, Nucleus, SquareSpace, TypePad, WordPress, 등등 지원) 기능은 많으나 멀티 패널 UI가 매우 복잡해서 쓰기 불편함. 업데이트가 이뤄진지 좀 오래된듯(2011년 이후 업데이트가 없는듯) PixelPumper 가격: 무료, 프로버전(11.99$) 블로그 싱크 O, 싱글 윈도우 UI, HTML 프리뷰 X 비주얼(WYSWYG) HTML 에디터 기반으로 블로그 글 편집 메인 에디터 디자인은 이쁘지만, 기타 주변 기능 레이아웃이 전반적으로 복잡한 느낌. 무료로 일단 받은 후, 프로버전을 인앱결제로 업그레이드 가능 ByWord 2 가격: 9.99$(맥 앱스토어), (블로그 싱크: +4.99$ 인앱결제) 웹사이트 블로그 싱크 O, 멀티 윈도우 UI, HTML 프리뷰 X 멀티플랫폼(Mac, iPhone, iPad) 동시 연동 HarooPad 한국 개발팀이 개발중, 현재 베타버전(무료), 웹사이트 블로그 싱크 O, 멀티 윈도우 UI, HTML 프리뷰 O, 멀티플랫폼(Mac, Windows, Linux) 멀티플랫폼 지원앱이다보니 디자인이 맥의 네이티브UI와 잘 어울리지 않는편. Texts 가격: 14.50$(사이트 자체판매), 웹사이트 블로그 싱크 X, 멀티 윈도우 UI, HTML 프리뷰 X, 멀티플랫폼(Mac, Windows) 렌더링시 마크다운 문법 태그들을 삭제하고 문서 형식에 반영해버리는 특징(HTML프리뷰 없음) Markdown 문서에대한 미리보기(QuickLook) 플러그인 지원 수식입력 지원 Mou 가격: 무료(베타) 웹사이트 블로그 싱크 X, 멀티 윈도우 UI, HTML 프리뷰 O Ulysses III 가격: 44.99$(맥 앱스토어), 웹사이트 블로그 싱크 X, 싱글 윈도우 UI, HTML 프리뷰 X 에 유료에 판매중, 데모버전 다운로드 가능 http://media.the-soulmen.com/ulyssesapp/Ulysses%20Demo.zip 텍스트기반의 마크다운 에디터 위주, 전체화면시 distraction free 환경 제공 에디터 문법 컬러(Syntax Coloring) 깔끔함 이미지 편집창에 링크같은것들을 raw text가 아닌 “Bubble” 형태로 이쁘게 렌더링해서 보여줌 MultiMarkDown Composer 가격: 11.99$(맥 앱스토어) 블로그 싱크 X, 멀티 윈도우 UI, HTML 프리뷰 X CriticMarkup 기능 포함(변경내역 추적) CriticMarkup 웹사이트 문서에 변경내역 표시할 수 있는 MultiMarkDown의 확장문법 제공 BBEdit, SublimeText 등에 플러긴형태로 실행됨 Marked2 가격: 11.99$(Paddle통해서 판매) 웹사이트 마크다운 미리보기 전용 툴. 다른 편집기(ex: TextMate, SublimeText 등)에서 편집중인 파일을 저장할때마다 불러들여서 프리뷰해줌. 웹 서비스 형태 Editorially https://editorially.com 웹기반 마크다운 에디터 여러사용자가 하나의 문서 동시편집 가능 문서 변경내역 히스토리 트래킹이 가능 심플하고 distraction free한 환경. 워드프레스 연동해서 익스포트 가능 Markable http://markable.in/ 웹기반 마크다운 에디터 무난한 기능, 무난한 UI, 특이점 없음.

2013년 11월 18일 · 2분 · 418단어

우편번호 DB MySQL로 임포트하기

감사하게도 http://www.zipfinder.co.kr/ 에서 편리하게 사용가능한 다양한 형식의 우편번호 데이터베이스 파일을 제공해주고있다. 단순 CSV라서 우체국에서 주는것보다 가공하기 편하게 되어있는 편이다. 여기서는 Type 1 우편번호 DB를 기준으로 설명하도록 한다. CSV형태와 통일하게 임포트할 빈 테이블 먼저 생성 CREATE TABLE `korea_zipcode` ( `zipcode` char(7) DEFAULT NULL, `sido` char(4) DEFAULT NULL, `gugun` char(17) DEFAULT NULL, `dong` char(52) DEFAULT NULL, `bunji` char(17) DEFAULT NULL, `seq` int(5) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 다음은 탭문자로 구분되어있는 CSV형태의 텍스트를 MySQL로 임포트하는 SQL구문은 다음과 같다. ...

2013년 11월 12일 · 1분 · 113단어

NginX vs. Apache on AWS micro

아파치(Apache)와 엔진엑스(NginX)의 특성들을 비교한 글들은 많이 있으니 여기서 다루지 않고, 실제 AWS EC2 micro에 적용했을때 어떤 차이를 보였는지만 눈으로 쉽게 볼 수있도록 이 글을 작성한다. 본 테스트가 진행된 웹서버에서는 워드프레스 기반의 사이트가 운영되고 있으며 일간 페이지뷰는 800~1000뷰 정도 된다. 처음에 아파치를 설치해서 사용할 떄는 CPU점유율이 5분이상 100%를 넘을때가 너무 많았다. 마이크로 인스턴스의 특성상 CPU 사용률 100%가 일정시간 이상 지속되면 먹통이 되는데 덕분에 하루에 4~5회정도 사이트 접속이 불가능한 시간들이 있었다. 서버를 스몰 인스턴스(small instance)로 업그레이드 하긴 좀 아까워서 웹서버를 엔진엑스, php-fpm조합으로 교체하여 테스트 해 본 결과 매우 성공적인 성능 향상을 가져왔다. ...

2013년 11월 10일 · 1분 · 189단어

NginX, PHP-FPM 맥에 설치하기

맥용 패키지 설치 프로그램인 홈브루(Homebrew)가 설치되어 있다는 것을 가정하에 진행한다. 홈브루가 없을경우 http://brew.sh/ 에서 다운로드하여 설치한다. 홈브루가 설치되어있을경우 다음 명령어를 통해 홈브루 포뮬러들을 업데이트 해두는 것이 좋다. brew update NginX 설치 brew install nginx NginX 설치를 위해서는 pcre 라이브러리가 필요한데, 디렉토리 권한문제로 다음과같은 에러가 날때가있다. Warning: Could not link pcre. Unlinking... Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local You can try again using `brew link pcre' 이경우 다음과같이 해결해주면 된다. ...

2013년 11월 3일 · 3분 · 530단어

웹사이트 도메인 이전하기

개인 블로그용 독립 도메인을 구입해서 새로운 도메인으로 이전을 하려니 은근히 준비할 것들이 많았다. 기존 포스팅들이 이미 구글, 네이버 등의 검색엔진에 잘 인덱싱되어있는 것들이 많다보니 이것을 어떻게하면 잘 유지하면서 이전 할 수있을지가 관건이었다. 이전 과정 요약 새로운 도메인과 예전 도메인에 대해 사이트가 각각 잘 동작하도록 셋팅을 해둔다. SEO를 위해 구글 웹마스터 도구에서 기존 도메인 -> 새도메인으로 변경을 해준다. 사이트 이전 을 참조 기존 도메인으로 접속시 새 도메인으로 웹서버 자체 설정을 변경하여 301 Redirection 을 설정해 둔다. ...

2013년 11월 2일 · 2분 · 235단어

디익스트라 알고리즘(Dijkstra algorithm)

위키피디아에 있는 코드[^1]이 왠지 어려워서 나름대로 주석을 좀 추가하고 정리를 해봤는데, 그래도 어렵다. 그림을 그려서 설명하면 그나마 좀 괜찮은데 글로만 설명하려니 역시 쉽지 않은듯. 알고리즘 설명 시작노드를 설정 후 모든 노드에 대해(메인 루프) 아래 2가지 루프를 적용한다. 서브 루프1: 현재 노드에서 도달 가능한 모든 노드 중 최소거리인 노드를 찾은 후 현재노드값을 해당 위치로 변경 서브 루프2: 변경된 현재 노드까지 오는 최단거리를 알고있으므로, 이 값을 기준으로 다른 모든 노드들에 도달하는 거리를 한번씩의 덧셈으로 업데이트 한다. (현재노드까지 최단거리값 + 현재노드에서 다음노드 거리 = 출발노드에서 다음 노드까지의 최단거리) ...

2013년 11월 1일 · 2분 · 306단어

NSViewController를 리스폰더 체인에 추가하기

NSViewController가 이벤트를 수신하여 처리하기 좋은 객체인데, 이녀석은 FirstResponder가 될 수 없다보니 코코아에서 기본적으로 이벤트를 수신하는 것이 불가능하다. NSViewController를 사용하면 NIB(혹은 xib)파일로 부터 NSView를 매우 쉽게 불러올 수 있다. 하지만 NSWindowController와는 다르게 몇가지 한계점이 있는데 이 부분을 설명하고 해결방안을 제시하고자 한다. NSWindowController의 경우 NSWindow와 자연스레 연결하여 사용 할 수있게 해주는 다음과같은 기능들을 가지고 있다. NSWindow객체는 windowController메서드를 이용하여 연결된 NSWindowController에 바로 접근 가능 First responder로서 사용자 이벤트를 수신 하여 특정 액션을 실행 가능 (responder chain의 순서는 NSWindow바로 다음) NSWindow의 delegate로서 windowWillClose:, windowDidBecomeMain: 등을 수신하기 적합하고, windowDidLoad, windowWillLoad 등의 오버라이드 가능한 자체적인 메서드도 가지고 있다. 반면 NSViewController의 경우 NSView에서 NSViewController로의 직접적으로 접근하는 방법이 제공되지 않기때문에 기본적으로 연동 기능이 없다고 보면 된다. ...

2013년 10월 28일 · 2분 · 323단어

Mac OS의 미리보기(QuickLook) 기능 확장을 위한 플러그인

맥의 매우 편리한 기능 중 하나인 미리보기의 경우 기본적으로 많은 파일들을 지원하지만 모든파일을 지원하는데에는 한계가 있다. 이경우 플러그인을 설치하여 기존에 서포트하지 않는 파일들도 미리보기를 할 수 있는데, 다음 사이트에 다양한 미리보기 플러그인들이 있으니 입맛에 맞춰서 다운로드 받으면 될 듯 하다. http://www.quicklookplugins.com/ 추천 플러그인 CSV 미리보기 CSV파일을 미리보기에서 표 형태로 바로 보여줘서 매우 편리하다. https://code.google.com/p/quicklook-csv/ Zip 파일 미리보기(by BetterZip) Zip 파일 내부의 파일 리스트, 압축된 용량 등을 한눈에 보여준다. http://macitbetter.com/BetterZip-Quick-Look-Generator/ 설치방법 원하는 미리보기 플러그인을 다운로드한다. 다운로드받은 파일을 압축을 풀면 PluginName.qlgenerator 의 플러그인 파일이 나온다. ...

2013년 10월 26일 · 1분 · 117단어

새 맥북프로와 함께 PC시장 장악에 나선 애플

오늘 애플 키노트(22 Oct 2013)를 보니 애플이 PC시장 점유율 확장을 시도하고 있는것 같다. 기본적으로 맥북프로 뉴모델들을 가격을 200달러씩 전부 인하하였고(13인치 $1499-> $1299, 15인치 $2199 -> $1999), 매버릭 + iWorks(키노트, 넘버스 등)을 완전히 무료로 공개해 버렸다. 일반 대중들이 맥을 구입하는데 가장 망설였던 점이 Windows PC에 비히 터무니 없이 비싼 맥의 가격이었는데 이번 발표로 인해 하드웨어+소프트웨어 모두 저렴해졌고 게다가 마침 마이크로소프트는 여전히 갈길이 멀어보이는 Windows 8.1을 내놓은 상태라, 애플의 상당한 점유율 확장이 예상된다. 물론 늘 그렇듯 인텔 하스웰 칩셋과 지포스 그래픽칩으로 하드웨어를 업그레이드해서 성능 또한 많이 향상되었음을 알 수 있다. 이러한 추세가 계속된다면, 다음 New iMac 발표때도 분명 가격을 대폭 할인 할 것으로 예상된다. ...

2013년 10월 22일 · 1분 · 202단어