2013년 9월 29일 일요일

Power Mockup!




개발하기전에 보통 목업을 제작하는 경우가 많은데요.

목업을 종이에 직접 그리기도 하고

프로그램을 쓰기도 합니다.

저도 몇몇 목업 프로그램을 써봤는데요,

그런 프로그램들은 쓰기가 어려운(노가다성이 좀 있는) 단점이 있었습니다.

그러던 중 알게 된 좋은 프로그램! Power Mockup!


(약간 '객체지향'스럽다고 해야하나..)

한국사람이라면 누구나 PPT를 써봤을 겁니다.

PowerMockup은 PPT를 기반으로 하는 하나의 라이브러리로,

PPT를 써본 사람이라면 누구나 쉽게 쓸 수 있어요.



에 가면 무료버젼을 다운 받을 수 있습니다.

(그런데 무료버젼은 제한이 많이 있네요 ㅠ)


학생이면 40%할인을 해준다고 하니 잘 알아보시면 좋을 것 같습니다.

그럼 이만!




2013년 9월 15일 일요일

[AWS] 아마존 웹 서비스 요금(Free-tier)

-현재 가격에 관한것들(Free tier 기준)-

Free tier에서 750 시간 을 제공합니다.
즉 t1.micro 한개를 한달 내내 켜놓아도 요금이 부과되지 않아요.

인스턴스 시간은 인스턴스가 “실행” 상태일 때 계산됩니다.
즉 "Stop" 나 "Terminate" 일 때는 청구되지 않습니다.
두개의 차이? 말 그대로 Stop은 멈추는거고 Terminate는 인스턴스를 완전히 삭제하는 겁니다.

서버 한개당 하나의 Elastic IP를 할당 하는 것은 무료입니다.

서버 한개당 Elastic IP를 여러개 할당 하는 것은 유료입니다.

Elastic IP를 할당받고, 인스턴스에 할당 하지 않으면 유료입니다.
(첫 한시간동안은 무료, 이후 시간당 0.005달러)


계정을 클릭하고 Account Activity(계정 활동)을 누르면
지금까지의 사용 요금을 확인 할 수 있습니다.
바로 바로 갱신되는것은 아니고 시간이 지나야 갱신되는 듯 합니다.

"이 기간에는 청구할 내역이 없습니다." 가 아니고






이게 보이면 다음달에 여기에 적힌 금액 이상 요금이 청구된다는 뜻 입니다.

저도 ....테스트하다가 요금이...나와버렸네요.



★Free tier에서 예상치 못한 요금이 부과되는 경우를 생각해 보면...

Azure 와 달리 요금이 초과될 경우 제한 할 수 있는 정책이 아직 없습니다.
따라서 많은 I/O 또는 요청수로 예상치 못한 요금이 부과될 수 있습니다.

인스턴스 하나는 한달 내내 켜놓아도 750시간이 넘지 않아 문제가 되지 않지만,
인스턴스 여러개를 한달 내내 켜놓으면 750시간을 훌쩍 넘으므로 주의해야 합니다.

Free tier에서 인스턴스 하나일 경우는 계속 실행해 놓아도 상관없지만
여러개의 인스턴스일 경우 인스턴스를 "Stop" 혹은 "Terminate" 해야 합니다.

현재 (2013년 9월) 기준으로 Free tier 
무료 OS는 Linux/Unix/RHEL/Microsoft Windows Server 입니다. 
이외의 OS 즉 SuSe Linux Enterprise Server등은 유료입니다.

Elastic IP를 인스턴스에 할당한 상태에서, 
테스트를 끝내고 해당 인스턴스를 Terminate 시켜도 Elastic IP는 할당이 해제된 채로 
계속 남아 있습니다. 이를 반드시 Release 해주어야 요금이 부과되지 않습니다.



[AWS] 아마존 웹 서비스 시작하기


주의 : 그림없고 말로만 설명합니다.

-가입-
가입 할 때
폰번호 정확히 입력하세요.
국가코드 선택 후 010부터 다 적어도 전화 잘 옵니다.

-EC2 Instance 만들기-
계정을 눌러 AWS Management Console 메뉴 들어간 후
오른쪽 상단 Help 바로 옆을 클릭해서 지역을 정합니다.

됴코는 요새 느린 문제가 좀 있다고 알려져서 저는 싱가폴로 했습니다.

EC2 아이콘을 클릭하고
Launch Instance 라는 파란버튼 있는데 클릭하면 EC2 인스턴스를 만들기 시작합니다.

클래식 위자드 선택하고 진행하면 되는데
Continue 하다가 Key , Value 라고 나오는데 그냥 아무거나 입력하면 됩니다.
할거 없으신 분은 각각 Name , Webserver 를 입력하세요

Create & Download your Key Pair 를 클릭해서
다운 받은 pem 파일을 잘 보관하도록 합니다.

Create a new Security Group 에서는 방화벽 마냥 각종 포트를 열어주면 됩니다.
기본은 화이트 리스트방식입니다. 즉 등록한 포트만 열리고 나머지는 다 막힙니다.
22, 80, 3306, 6379, 9000 등 본인이 자주 쓰는 포트를 여세요.
핑 때릴려면 ICMP도 여시구요.

pem파일을 puttygen으로 가져온다음
암호화할 String을 입력합니다(이건 나중에 로그인 할 때 암호로 사용됩니다.)
save private key 클릭 하면 ppk파일로 저장됩니다.

PuTTY - Connection - SSH - Auth 에서 Browase 눌러서 ppk 파일 가져온 후
왼쪽 Session에서 해당 IP치고 Open 눌러서 접속합니다.

root로 로그인하고 아까 암호화 스트링을 입력하면 로그인 되는데
전 우분투 12. 버젼이므로 아이디 ubuntu로 로그인 하라고 하네요.
다시 로그인 하면 됩니다.

Elastic IP는 공인 아이피를 고정시키는 것인데,
할당 받으셨다면 반드시 Associate Address 를 눌러 인스턴스와 연결해 주세요.


다음 포스팅은 AWS Free tier의 가격에 관한 것입니다.





2013년 9월 9일 월요일

[UCrew] 나에게도 태블릿이 있다면...



오늘은 기술적인 내용의 포스팅이 아닌

특별히 UCrew 를 지원하기 위한 포스팅을 하려고 합니다.



크고 무겁고, 가지고 다니기 부담스러운 노트북과

작지만 화면이 너무 작은,

원래 용도는 사실 전화기였다는 스마트폰.





단언컨대, 
태블릿은 가장 완벽한 
스마트기기입니다.






MISSION 1 - 태블릿이 있다면???



1. 공부


저는 소프트웨어를 전공하는 학생으로 현재 프로그램을 개발하고 있는데요

이 서비스는 태블릿을 타겟으로 하는데, 거기엔 특별한 이유가 있습니다.

태블릿은 휴대성이 좋기 때문에 교수님께서 강의 하실 때

태블릿에서 이 프로그램을 실행한 후 들고 움직이면서

필기와 강의를 동시에 할 수 있게 됩니다.

개발중인 프로그램 소개 동영상부터 보시고 가실게요.








학교 교수님의 피드백도 있어요~








저는 이렇게 태블릿을 타겟으로 하는 서비스를 개발중이기 때문에

태블릿이 필요했으며, 태블릿을 타겟으로 하는 프로그램을 만든다는 것 자체가

저에게 있어서는 가장 큰 전공 공부가 되지 않을까 생각합니다.

이번에 태블릿을 쓸 기회가 저에게도 생긴다면

참 좋을 것 같습니다.



2.공모전


지난주에 이 서비스를 통해 공모전에서 대상을 수상하여 코엑스에서

교육부 장관상을 받게 되었는데요









태블릿이 있었다면 하는 아쉬움이..












이때 태블릿이 있었다면 얼마나 좋았을까 생각해 봤습니다.

이곳에 각 정부 부처의 높은 분들과 많은 기업인들이 오셨는데

발표를 할 때 이 아이디어의 타겟인 태블릿을 직접 들고 발표를 했다면

더욱 호응도 좋고 많은 분들에게 어필 할 수도 있고

서비스에 대한 이해도도 높아지지 않았을까 하는 아쉬움이 있습니다.

다른 공모전들도 신청한 것들이 있는데요,

꼭 태블릿을 받아서 시연 해 보고 싶습니다.




3. 수업


과 특성상 거의 모든 과목이 PPT로 진행됩니다.

그래서 저는 마이크로소프트사의 오피스 2013 정품을 구매하였지만

막상 노트북을 학교에 가지고 다니면서 보기엔 너무 부담스러워서

결국 A4로 프린팅하는데요.









파일 집 하나로는 부족하여 두개 샀습니다.











보시다시피


한 학기동안 뽑아야 하는 A4용지는 가히 상상을 초월합니다.

따라서 태블릿이 있다면 종이를 아껴 자연을 지킬 수도 있고

귀찮게 프린트를 하지 않아도 됩니다.




MISSION 2 - 태블릿을 받아 할 수 있는 활동???




아까 공부 부분에서 말씀드렸는데, 정확하게는 제가 듣고있는 

모든 과목이 PPT로 진행됩니다.

따라서 제가 태블릿으로 필기를 하며 수업을 참여한다면 많이 알려질 것이라고 생각합니다.

저도 다른 친구가 갖고 있는 스마트 기기에 굉장히 많은 관심을 갖고 있기 때문이죠.

또한 제가 만들고 있는 서비스를 학과 친구들과 교수님 그리고

공모전에서도 많은 기업분들, 각 부처 관계자분들께

태블릿을 가지고 시연한다면

입소문을 타게되고 그만큼 많은 파급력 즉 

굉장히 큰 간접 광고가 될 것이라고 생각합니다.








2013년 9월 1일 일요일

[CentOS 6.x] 각종 서버 설치하기

**기본

yum -y update
yum -y groupinstall "Development Tools"

**NginX


#wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
#rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
#yum install nginx
#service nginx start

Nginx는 /etc/nginx/nginx.conf 요 파일이 /etc/nginx/conf.d/default.conf 파일을 인클루드 하고 있습니다.
두 파일은 혹시나 모르니 cp 명령어로 백업 해놓으시고

worker_processes 부분에는 하드웨어 코어 개수만큼 숫자를 적어 줍니다.

#vi /etc/nginx/nginx.conf

user              nginx;
worker_processes  4;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  30;
    server {
        listen       80;
        server_name  _;
        location / {
            root   /usr/share/nginx/html;
            index  index.php index.html index.htm;
        }
        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
        location ~* \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO $fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}



#vi /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  _;
    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        try_files $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

service nginx restart 

**Apache 

전 리버스 프록시를 이용해 PHP 요청은 아파치가 처리하도록 했기 때문에 설치했는데
Nginx만 쓰면 굳이 설치할 필요는 없습니다.

#yum -y install httpd

구동하는 포트넘버가 80으로 되어있는데 Nginx랑 겹치니까 다른걸로 바꿔주면 됩니다.

service httpd restart


**Mysql

#yum -y install mysql mysql-server
#mysqladmin -u root password 비밀번호

패스워드 설정해줍니다.

참고로 자료 백업 및 복구할 때(전체)
백업 : mysqldump -u root -p --all-databases > 파일명.sql
복구 : mysql -u root -p < 파일명.sql

특정 테이블만 하는거면 저기 -p 뒤에 테이블 명 쓰면 됩니다.

그리고 처음에 원격접속 허용하려면 service mysqld start 로 시작한 후

 mysql -u root -p 로 로그인하고,

use mysql; 한 다음 host 컬럼을 %로 바꾸면 원격으로도 접속이 가능합니다.

UPDATE `mysql`.`user`
SET `Host`='%'
WHERE `Host`='localhost' AND `User`='root';

service mysqld restart


**REDIS

#cd /usr/local/src
#wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
#tar xvfz redis-2.6.14.tar.gz
#cd redis-2.6.14
#make -j4 && make install  -j4

redis-server&


**Node

#yum -y update
#yum -y groupinstall "Development Tools"

#wget http://nodejs.org/dist/v0.10.17/node-v0.10.17.tar.gz
#tar zxf node-v0.10.17.tar.gz
#cd node-v0.10.17
#./configure
#make
#make install

모듈들 설치는

#npm -g install 설치할모듈

실행은

#node 실행할파일

**PHP

#yum -y install
php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-fpm

php.ini 파일 수정해서
short_open_tag = On 해줍니다.

우린 PHP-FPM 사용할거니까

service php-fpm restart

*Predis (PHP 와 Redis 연결)

#pear channel-discover pear.nrk.io
#pear install nrk/Predis



**Samba

이건 다 아시겠지만 윈도우처럼 파일 공유하는 서비스입니다.

yum install samba
smbpasswd -a 사용자명      // 패스워드설정
service smb start

아무리 권한을 추가해도 권한 문제가 생긴다면

vi /etc/selinux/config
Set
//SELINUX=enforcing 이걸
SELINUX=disabled //요렇게 고치면 됩니다.

vi /etc/samba/smb.conf 
를 열어서 여러가지 수정을 해줍니다.

server string = Server name
hosts allow = lo eth0 11.22.33.   // 11.22.33 대역 접속 허용 설정
[share]
    comment = hi
    path = /usr/share/nginx
    writable = yes
    valid user = by

이것은 by라는 사용자에게 /usr/share/nginx 디렉토리를 공유할 수 있도록 한 것입니다.

권한 문제가 있다면 user의 디렉토리와 /etc/passwd 의 디렉토리를 같게 해주고

chmod 755 등으로 해당 디렉토리에 권한을 줘봅니다.

/sbin/service smb restart 


***6시간짜리 팁

이렇게 하고 Nginx와 PHP-FPM 이 연동이 안됬습니다.

php -v , php-fpm -v 로 버젼을 확인해보니 5.3

혹시나해서 5.5로 업데이트 해보았습니다.

#rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
#rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

#yum --enablerepo=remi,remi-test install httpd mysql mysql-server php php-common

#yum --enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo

그래도 안되서 권한부터 시작해서 온갖 걸 다 해봤습니다.

/var/log/nginx/error.log 파일을 열어보면 에러로그들이 있죠

계속해서 살펴보던 중 시스템 시각과 현재 시각이 맞지 않다는 것을 알게 되었고

시간이나 맞춰야지 하고

rdate -s time.bora.net

...

갑자기 잘됨

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ???????????????????



[CentOS 6.x] 설치


CentOS 기본


지금 부터 다음 몇 회 까지는 기본적인 것을 다루려고 합니다.

CentOS 설치부터 시작해 보겠습니다. (가상머신 위에 띄우는거 아니고 로컬에 설치하는 겁니다.)

일단 저는 제대로 된 이미지 파일 찾기에서 부터 힘들었습니다.

어렵게 구해서 설치하면 설치가 안되고...(너무 오래전이라 지금은 어디서 받았는지 기억이 안나네요)

어쨌든 제대로 된 이미지 파일을 구하셨다면, iso2usb 같은 usb구워주는 프로그램을 다운받아서

USB를 부팅 USB로 만듭니다.

설치시 중요한건 부트로더 설치 위치입니다.

USB에 부트로더를 설치하면 나중에 USB를 제거했을 때 부팅이 되지 않습니다.

(물론 원인을 알고나면 쉽게 재설치 할 수 있지만 그동안 멘탈이 손상될 수 있습니다.)

저장장치 선택 에서 다 오른쪽으로 밀어버리고 기존의 하드디스크만 선택해서 파티션을 잡습니다.

Network 설정[고정아이피]

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0              
BOOTPROTO=static          
HWADDR=맥주소인데 알아서 들어가 있음
IPADDR=원하는 아이피 주소
NETMASK=255.255.255.0
NETWORK=기본게이트웨이 보통 끝에 1
BROADCAST=끝에 255
ONBOOT=yes                    // 시스템 부팅시 해당 이더넷 활성화

service network restart 으로 재시작하면 끝

방화벽, 아이피설정 같은것은 setup 명령어를 통해 간편하게 할 수 있습니다.

다음은 CentOS 위에 각종 서버를 설치 해 보겠습니다.