대학로 맛집, 조선식당

 미각이 예민하거나 주위환경에 영향을 크게 받는 성격이 아니기에, 주면 주는데로 먹고 가자면 가자는데로 행동하는 편이다. 생활 블로그를 하는 사람들이 많이 올리는 포스팅 주제가 맛집인데, 나는 맛집 포스팅을 잘 하지 않는다. 어디가 맛집인지 잘 모르기 때문이다. 그래서 내가 가장 잘한다고 생각되었던 프로그래밍에 관한 글을 주로 올렸다. 하지만 IT에 관한 글만을 올리는 블로그는 아니다. 그 시기에 내가 관심이 있어하는 분야의 글을 주로 올리는 편이다. 이러던중 요즘 여자친구와 자주 가는 맛집이 생겨서 아주 간단히 포스팅을 해보고자 한다.
위치 : 대학로 1번출구로 나와서 2번출구 방향으로 가다보면 왼편에 조선식당 입구 있음
다음지도로 위치 보기 : http://dmaps.kr/pzgu
 식당의 분위기는 일반 한식집과는 달리 매우 깔끔하다. 대학로에 위치해서인지 커피숍에 가깝게 느껴진다. 조용히 밥먹기에 딱 좋은것 같다.
 내가 주로 돼지 직화구이를 주로 먹는다. 8천원 정도하는데, 맛이 괜찮다. 기본반찬은 깔끔하게 나오는 편이다.
 그리고 된장찌개도 살짝 진한 맛으로 괜찮다. 둘이 가서 식사용으로 막기엔 이 두가지 메뉴가 딱인것 같다.
 4명정도 온 사람들은 불고기전골을 많이 먹는것 같다. 낙지 비빕밥도 맛있게 한다. 조용하게 깔끔한 한식을 먹고자 한다면 추천하는 식당이다.

외장하드 케이스, 스카이디지탈 EZSAVE Q25 USB 3.0 사용기

 2.5인치 HDD가 생겼다. 지인이 사용하던 것인데, 필요가 없다면서 나에게 주었다. 그냥 두기엔 아까워서 외장하드 케이스를 구입해서 사용하기로 했다.

 외장하드 케이스는 여러 종류가 있는데, 보통 iptime 이라는 브랜드로 유명한 EFM네트웤스와 스카이디지탈 EZSAVE를 많이 사용하는 것 같다. 큰 기술을 필요로 하는 것 같지 않아 저렴한 가격과 디자인이 마음에 드는걸 선택하면 될 것 같다. iptime 제품과 EZSAVE 중에서 고민을 하다가 스틸형태의 외관과 저렴한 가격의 EZSAVE를 선택했다. 사실, 두 제품의 가격차이는 몇 천원 나지 않는데, iptime에는 자동백업 등의 내가 필요하지 않는 기능이 있어서 단순한 EZSAVE Q25 를 선택했다.

 사진을 보면서 2.5인치 HDD와 외장하드 케이스를 조립해보자.
 외장하드 케이스와 드라이버, 여분의 나사가 있어서 추가적인 도구는 필요없다. 아래 설명서를 참고하여 조립을 시작하면 된다.
 먼저, 테입을 이용하여 외장하드 케이스를 연다.
 중간 프레임을 분리를 한다.
 2.5인치 하드를 중간 프레임에 연결하고 은색 나사로 고정한다.
 중간 프레임과 커버를 결합시키고 작은 검정 나사를 커버 측면에 고정시킨다.
 조립완료 후, 기존의 삼성 외장하드와의 비교 사진이다. 평면은 ezsave Q25가 더 크지만, 두깨는 ezsave Q25가 더 얇다.
 USB 연결 단자를 연결 했을때, 틈이 발생하는 것은 조금 아쉽다. 파일 전송에는 문제가 없지만, 연결이 조금 불안해 보인다. 삼성 외장하드도 틈이 조금 발생하는데 USB표준의 문제인지, 내가 가지고 있는 두 제품의 문제인지는 확실하지 않다.
 검정색 무광의 단순한 디자인은 매우 만족스럽다. 제품 아래쪽에 고무판이 없어 진동흡수에는 미흡할 수 있지만, 책상 평면에서 사용하는 걸 고려한다면 별로 신경쓸 일은 아닌 것 같다. 스카이디지털 EZSAVE Q25 USB 3.0 제품은 가지고 있는 2.5인치 하드디스크를 이용해서 심플한 외장하드를 만드는데 부족함이 없는 제품이다. 

압구정 나들이, 현대카드 트래블 라이브러리(여행 도서관)

 압구정과 도서관은 조금 어울리지 않는 조합이다. 압구정의 이미지에 도서관을 상상하는 것은 조금 어렵다. 하지만, 현대카드 트래블 라이브러리를 방문해 본다면, 도서관도 압구정 스타일로 만들 수 있구나 하는 생각이 들것이다. 우연한 기회에 방문한 현대카드 트래블 라이브러리는 나에게 신선하게 다가 왔다. 압구정에 위치한 작은 공간이지만 많은 영감을 주었다.

 현대카드는 금융회사임에도 디자인을 중요시하는 회사이다. 이러한 이유로 다양한 문화 활동을 지원하고 마케팅에 활용하고 있다. 디자인 중시 경영의 일환으로 도서관을 만들게 된것 같다. 첫번째 도서관은 안국역에 위치한 디자인 도서관이다. 압구정에 위치한 현대카드 트레블 라이브러리는 현대카드에서 2번째로 만든 특별한 도서관이다. 현대카드 트래블 라이브러리는 공간 디자이너로 유명한 카타야마 마사미치가 디자인하였다.
현대카드 트래블 라이브러리 : http://library.hyundaicard.com/visit/travel.hdc 
이용가능 시간 : 화 ~ 토 12:00 ~ 21:00 / 일요일 11:00 ~ 18:00
위치 : 서울시 강남구 선릉로 152길 18 (구글지도에서 보기)
 현대카드 소지자와 동반 2인이 출입가능하다. 자세한 사항은 홈페이지를 참고 하길 바란다.

 일요일 저녁에 방문하였음에도 사람들이 많아서 조금 대기인원이 있었다. 사람이 엄청 몰리지 않는다면 1층에서 대기하면서 책을 볼 수 있다. 2층은 총원이 30명이어서 대기표를 받아야 한다.
 상점같이 보이는 이 곳이 도서관이다. 특이한 점은 이곳을 출입하기 위해선 사진 왼쪽에 보이는 카드 리더기에서 현대카드 결제를 해야한다. 물론 실제 결제는 일어나지 않는다.
 여행전문도서관 답게 세계 주요 도시의 여행지도가 구비되어 있다. 구매도 가능한 지도도 있다. 
 상대적으로 공간이 좁아서 책을 볼 수 있는 공간은 적지만, 공간활용이 뛰어나서 여행관련 준비를 하기엔 적당한것 같다. 외부 음식은 반입불가이고 음료는 구입할 수 있다.
 겨울임에도 건물 뒷편 야외공간에서 책을 볼 수 있다.

 이제 2층으로 올라가 보자.
 2층으로 올라가게 되면 좀더 다양한 여행 서적을 볼 수 있다. 대여는 불가능하고 도서관 2층에서만 볼 수 있다.

 현대카드 트래블 라이브러리엔 특별한 공간이 있다. 구글 스트리트뷰를 큰 방에서 볼 수 있는데, 간단한 조이스틱 조작으로 세계 유명 여행지를 미리 볼 수 있다. 여러개의 디스플레이를 곡선형태로 연결해 두어 현지를 방문한 느낌을 받을 수 있었다.
 여행을 준비하는 사람뿐만 아니라, 친구 연인끼리가도 재미있을것다. 여행관련 정보는 물론이고 실내 공간 디자인에도 많은 영감을 받을 수 있다. 조용한 도서관의 이미지 보다는 세련된 서재로 느껴지는 현대카드 크래블 라이브러리 였다.

iOS 8.2 업데이트 요약

 애플은 4월에 출시 예정인 애플 워치와의 연동을 대비하고 기타 개선사항을 수정한 iOS 8.2를 배포하기 시작했다. 그리고 건강 관리와 관련된 업데이트가 많이 이루어졌다. 삼성 갤럭시 시리즈의 방향을 볼때, 애플 또한 아이폰6 차기 버전에서는 좀더 많은 건강 관련 기능이 들어가지 않을까 생각된다.

 이번에 판올림한 iOS 8.2의 내용을 첨부한다.

이 릴리즈는 Apple Watch 지원을 추가하고 건강 App에 대한 개선사항과 향상된 안정성 및 오류 수정사항을 포함합니다.
Apple Watch 지원
  • iPhone과 쌍으로 연결하여 동기화하고 시계 설정을 사용자화하는 새로운 Apple Watch App
  • Apple Watch의 피트니스 데이터 및 목표 달성을 볼 수 있는 새로운 활동 App(Apple Watch와 연결 시 나타남)
  • iPhone 5 이상에서 사용 가능
건강 App 개선사항
  • 거리, 체온, 키, 몸무게 및 혈당 측정 단위를 선택할 수 있는 기능 추가
  • 대용량 데이터를 처리할 때 안정성 향상
  • 타사 App의 운동 세션을 추가하고 시각화하는 기능 포함
  • 의료 정보에서 사용자가 사진을 추가하지 못하는 문제 해결
  • 비타민과 미네랄 단위 수정
  • 데이터 소스 순서를 변경한 후 건강 데이터가 새로 고침되지 않던 문제 수정
  • 일부 그래프에서 데이터 값이 보이지 않던 문제 수정
  • 걸음 수, 거리, 계단 오르내리는 횟수 추적을 끌 수 있도록 개인 정보 보호 설정 추가
안정성 향상
  • Mail의 안정성 향상
  • 지도에서 Flyover의 안정성 향상
  • 음악의 안정성 향상
  • VoiceOver 신뢰성 향상
  • Made for iPhone 보청기와 연결성 향상
오류 수정사항
  • 일부 즐겨찾기 위치를 탐색하지 못하는 지도 문제 수정
  • 빠른 메시지 답장에서 마지막 단어가 자동 완성되지 않던 문제 해결
  • iTunes에서 구입한 콘텐츠가 중복되어 iCloud 복원이 완료되지 못하던 문제 수정
  • 일부 음악 또는 재생목록이 iTunes에서 음악 App으로 동기화되지 않던 문제 해결
  • 가끔 장비에서 삭제된 오디오북이 남아 있던 문제 해결
  • Siri Eyes Free를 사용 중에 전화 소리가 자동차 스피커로 전송되지 않던 문제 해결
  • 전화를 받을 때까지 오디오가 들리지 않던 Bluetooth 통화 문제 수정
  • 캘린더 이벤트가 GMT로 나타나던 시간대 문제 수정
  • Exchange 캘린더에서 사용자화된 반복 일정에서 특정 이벤트가 사라지는 문제 해결
  • 타사 게이트웨이 뒤에서 Exchange 계정을 구성하지 못하던 인증서 오류 수정
  • 주최자의 Exchange 일정 메모가 중복 기재되는 문제 해결
  • 초대를 승인한 후에 일부 캘린더 이벤트가 '바쁨'으로 자동으로 표시되지 않던 문제 해결
이 업데이트의 보안 콘텐츠에 관한 자세한 정보를 보려면 다음 웹 사이트를 방문하십시오.

Ubuntu + Nginx + MariaDB + Php5 설치하기

 우분투를 기반으로 하여 nginx(웹서버), mariaDB(DB), php5(웹언어)로 구성하는 웹서버를 만들어 보자.

 우분투는 일반 버전과 LTS(장기지원) 버전으로 나뉜다. 서버를 안정적으로 구축할 목적이라면 2년에 한번씩 나오고 5년간 지원을 하는 LTS 버전을 이용하는것이 여러모로 낫다. LTS 버전을 이용한다면 다음 LTS 버전이 나오더라도 시간적 여유를 가지고 업그레이드를 할 수 있기 때문이다.
 우분투 14.04 LTS 버전 파일을 다운받은 다음 CD또는 USB 등을 이용하여 PC에 설치하자. DVD-Writer가 없어도 Universal USB Installer 등을 이용한다면 USB메모리를 이용하여 설치 할 수 있다.
Ubuntu Server 14.04 : http://www.ubuntu.com/download/server 
Universal USB Installer : http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
 우분투를 설치했다고 가정하고 본격적으로 웹서버를 구축해보자.

 웹서버의 역사는 Apache 의 역사라고 해도 과언이 아니었다. 하지만, 역사가 오래된 만큼 하위 호환성을 유지하기 위해 지금은 필요없어진 기능을 지원해야만 했다. 이로 인해서 프로그램은 복잡해지고 무거워 졌다. 그 틈을 파고들어 개발된 것이 nginx라는 웹서버이다. 
http://nginx.org/
  NetCraft 2015년 2월 기사(링크)에 따르면 nginx는 전체 웹서버에서 15%를 차지하고 있다. 우리가 자주 사용하는 네이버의 메인페이지와 카카오톡의 공지사항 서버를 nginx가 담당하고 있다고 한다. 
 많은 개발자들이 선호하고 있고 성능도 뛰어나다기에 이번에 구축할 웹서버는 nginx로 정하였다.

 첫번째 단계로 nginx 웹서버를 설치하자. 
$ sudo apt-get install nginx
정상적으로 설치가 되었다면 nginx is running 이라고 표시될 것이다.
$ sudo service nginx status
[sudo] password for user_id:
 * nginx is running
 그리고 인터넷 웹브라우져에 서버 IP를 입력하면 Welcome 으로 시작하는 페이지가 뜰것이다.
 두번째 단계로 DB를 설치하자. mariaDB는 기본적으로 mysql과 같은 구조를 가진다. mysql를 만들던 개발자가 오라클의 mysql 정책에 불만가져 회사를 나오게 된다. 그리고 만들게된 DB가 MariaDB이다. 

 mariaDB를 설치한다. 
$ sudo apt-get install mariadb-server mariadb-client
정상적으로 설치되었다면 아래와 같은 형태를 가질 것이다.
$ sudo service mysql status
 * /usr/bin/mysqladmin  Ver 9.0 Distrib 5.5.41-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.
Server version          5.5.41-MariaDB-1ubuntu0.14.04.1
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 1 hour 8 min 21 sec
Threads: 1  Questions: 82  Slow queries: 0  Opens: 54  Flush tables: 2  Open tables: 39  Queries per second avg: 0.019
 마지막으로 PHP를 설치하자.
$ sudo apt-get install php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi
 php 관련 프로그램과 모듈을 설치를 완료 하였다면 cgi 설정을 변경한다.
$ sudo vi /etc/php5/fpm/php.ini
 파일에서 ";cgi.fix_pathinfo=1" 을 찾아서 주석을 제거한 후, 값을 0으로 세팅한다.
cgi.fix_pathinfo=0
 php5-fpm 을 재시작한다.
$ sudo service php5-fpm restart
nginx는 기본적으로 다음과 같은 설정값을 가진다.
Document Root
/usr/share/nginx/www 
 설정 파일
/etc/nginx/nginx.conf
/etc/nginx/sites-available/default 
로그파일
/var/log/nginx/
 마지막으로 php 파일을 감지하여 파싱하기 위해 nginx의 설정을 변경한다.
$ sudo vi /etc/nginx/sites-available/default
 웹서버의 root 디렉토리를 변경한다. index.php 파일을 추가한다.
 20 server {
 21         listen 80 default_server;
 22         listen [::]:80 default_server ipv6only=on;
 23
 24         #root /usr/share/nginx/html;
 25         root /home/user_id/www;
 26         index index.html index.htm index.php;
 27
 28         # Make site accessible from http://localhost/
 29         server_name localhost;
 30
 31         location / {
 32                 # First attempt to serve request as file, then
 33                 # as directory, then fall back to displaying a 404.
 34                 try_files $uri $uri/ =404;
 35                 # Uncomment to enable naxsi on this location
 36                 # include /etc/nginx/naxsi.rules
 37         }
php 구문을 파싱할수 있게 변경한다.
 55         location ~ \.php$ {
 56                 fastcgi_split_path_info ^(.+\.php)(/.+)$;

 57         #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 58         #
 59         #       # With php5-cgi alone:
 60         #       fastcgi_pass 127.0.0.1:9000;
 61         #       # With php5-fpm:
 62                 fastcgi_pass unix:/var/run/php5-fpm.sock;
 63                 fastcgi_index index.php;
 64                 include fastcgi_params;
 65         }
 설정이 끝나면, wq 명령으로 저장 후, nginx를 다시 시작한다.
$ sudo service nginx restart
 이제 /home/user_id/www 리렉토리 아래에 index.php 파일을 만들면 웹서버의 홈디렉토리 이동이 완성된다.
$ cd ~
$ mkdir www
$ cd www
$ vi index.php
 php가 정상적으로 동작하는걸 확인하기 위해 아래의 코드를 index.php 파일에 넣고 웹페지를 접속 해보자.
<?php
     phpinfo();
?>
아래와 같은 내용이 뜬다면 정상적으로 php가 동작하고 있는 것이다
 기본적인 설정은 거의 끝이 나고 있다. 여기까지 하면, index.php 와 같이 php 확장자를 가진 파일에 들어 있는 php 코드는 파싱이 되지만, htm 파일에 들어 있는 php 코드는 파싱이 되지 않는다. 아래의 링크를 참고하여 htm 파일에 들어 있는 php 코드도 인식이 되게끔 해보자.
nginX 웹서버에서 html, htm 파일의 PHP 코드 실행 : http://www.withover.com/2014/12/nginx-html-htm-php.html
 별문제가 없다면 LEMP 서버 설정은 10분 이내로 끝낼 수 있다. 하지만 원지 않게 오류를 만날 수도 있다. LEMP 서버를 구성하면서 만났던 오류와 해결 방법을 기술해 본다.

1. nginx 완전히 삭제하기
awk: fatal: cannot open file `/etc/nginx/nginx.conf' for reading (No such file or directory)
 위와 같은 메시지가 나오면서 nginx가 실행되지 않는다면, 아래 단계를 거쳐 nginx를 완전히 삭제후, 다시 설치한다.
$ sudo apt-get autoremove nginx
$ sudo apt-get --purge remove nginx
$ sudo apt-get autoremove -f
$ sudo apt-get autoclean
$ sudo find / | grep nginx | sudo xargs rm -rf
$ sudo apt-get install nginx
2. dpkg 오류
 nginx 설치시, 아래의 오류를 만난다면, 
nginx Sub-process /usr/bin/dpkg returned an error code (2)
 아래 명령으로 설치 패키지를 초기화 한다. 
$ dpkg --clear-avail