뭔가 이상하다 했더니 버그였던것인가...ssh쪽 버그는 아직도 수정이 안된건가...ㅠ 아님 내가 뭘 잘못한건가... 암튼 오늘의 삽질 히스토리를 공개!

작업버전은 Eclipse 3.7 + Eclipse EGit 1.1.0

1. 이클립스 실행 및 EGit 플러그인, Git 설치

이클립스
http://www.eclipse.org/downloads/ 

EGit플러그인은 Help -> Install New Software -> Work with에서 Indigo선택하시면 아래 Collaboration에서 Eclipse EGit를 설치
그리고 Default repository folder를 바꿔줍시다. 안그러면 Git설치 후 Git Bash 홈폴더를 이상하게 홈폴더/git로 인식합니다...홈폴더/git만 아니면 됩니다. 저는 C:\Users\mudchobo\gitrepository요기로 바꿈 ㅇㅇ

Git설치
http://code.google.com/p/msysgit/downloads/list?can=3
1.7.7.1버전의 주의사항은 Windows7에서 삭제가 안됩니다. 삭제하려면 그 전버전을 설치하고 지우면 지워져요. 암튼 다음 신공으로 설치.
사실 플러그인 깔면 Git는 안깔아도 되긴 하는데, 깔아야하는 이유가 ssh를 써야해서...
그리고 이클립스에서만 쓸 게 아니여서^^ 


2. ssh 인증키 생성

이미 있으신 분들도 passphrase값 넣으셨다면 안돼요. 다시 만드세요~! EGit가 그지같이 비번확인창을 못 띄우는 것 같아요.
window -> Preferences -> General -> Necwork Connections -> SSH2에서 key management탭에서 Generate RSA Key 생성 후 Save Private Key 클릭!

그리고 가장 중요한 게 이거 해줘야합니다. 안그러면 이클립스에서 Transport Error Cannot get remote respository refs. 하면서 Are you sure you want to continue connecting? 이 부분을 그냥 에러로 띄워버립니다. 얘는 물어보는건데...-_- 그래서 미리 해줘야합니다.

git를 설치했다면 Git Bash를 실행.

mudchobo@MUDCHOBO-PC ~

$ cd .ssh


mudchobo@MUDCHOBO-PC ~/.ssh

$ ssh -t git@github.com

The authenticity of host 'github.com (207.97.227.239)' can't be established.

RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of know

n hosts.

Hi mudchobo! You've successfully authenticated, but GitHub does not provide shel

l access.

Connection to github.com closed.


mudchobo@MUDCHOBO-PC ~/.ssh

$




3. GitHub 가입 및 Repository 생성 및 인증키 추가

가입하세요-_-
https://github.com/

Repository생성
New Repository -> 아무이름 입력하고 Create Respository하면 바로 생성됩니다.

인증키 추가
우측상단 Account Settings에서 SSH Public Keys선택 Add another public key선택
title은 아무거나 하시고, key는 위에서 이클립스에서 생성한 내용입니다. 홈폴더/.ssh/id_rsa.pub의 내용을 가져다가 붙이시면 됩니다.


4. 프로젝트 생성 및 push

프로젝트 아무거나 하나 생성하고, 프로젝트명에 대고 오른쪽마우스버튼 후 Team -> Share Project -> Git선택 -> Repository선택(없으면 Create) -> 아래체크 후 finish

일단 프로젝트 내용을 Team -> commit을 통해 커밋

Team -> Remote -> Push선택
여기서 GitHub은 ssh와 https 두가지 방식을 제공합니다.
ssh로 하면 여기 위에 있는 모든 과정을 다 해야하고(ssh키 만들고, github에 등록하고 known_hosts파일 생성 등), https방식은 그냥 user와 password를 그대로 github계정을 쓰면 됩니다. 
즉, 편하게 하려면 https로만 하면 되는거임 ㅇㅇ
github프로젝트에 uri가 나와있습니다. 근데 젠장 처음에 생성할 때에는 https를 못찾아서 ssh방식으로만 삽질했던....
uri는 예를 들어 아래와 같습니다.
ssh는 git@github.com:mudchobo/test.git
https는 https://mudchobo@github.com/mudchobo/test.git 이런 형태입니다.
Add All Branches Spec을 선택하셔서 Finish때리면 push가 됩니다!

이쁘게 잘 생성되었네요!
https://github.com/mudchobo/test


PS. 후.....뭔가 길어졌는데, 결론은 github쓰려면 쓸데없이 ssh2 키만들고 개고생 하지 마시고 https로 쓰세요-_- 근데 확실히 https가 더 느린 듯한 느낌을 받았네요.


참고문서
egit가이드 http://wiki.eclipse.org/EGit/User_Guide



 
Posted by 머드초보
,
 
Heroku는 호스팅 서비스입니다. 
http://www.heroku.com/

요즘은 호스팅 서비스가 참 많이 있는데요. 지원하는 방법도 틀리고, 지원 범위도 매우 다양합니다.
구글 앱엔진 같은 경우, Java와 Python을 통해 앱을 개발하고 구글 앱엔진서버에 올려서 서비스하는 방식이죠. 대신에 FTP 같은 것을 지원하지 않고, 한번에 배포를 하는 방식이며, Database는 우리가 일반적으로 쓰는 SQL형태(MySQL, Oracle 등)과는 다르게 BigTable이라는 접근제한(?)적인 DB를 제공합니다.
국내에서 서비스 하는 Cafe24 같은 경우는 그냥 ftp를 지원하고, Mysql계정을 주며, 직접 안에서 개발을 하고, Java같은 경우 개별 톰캣을 줘서 시작하고 끌 수 있는 형태로 호스팅을 하고 있죠.

Heroku도 구글앱엔진과 비슷한 형태로 서비스를 하고 있는데요. Heroku는 git를 이용해서 로컬에서 개발해놓은 것을 Heroku에 올립니다. 이 때 Procfile이라는 것을 같이 올리는데, 여기에 서비스 시작 명령어 같은 것이 있습니다. 그러면 올리자마자 해당 서비스가 돌아가게 됩니다.
Node.js에 대해서 검색해보다가 Node.js를 호스팅해주는 서비스라고 해서 알아봤는데, Java도 되고, 루비도 되고, 좋은 것 같네요. 근데, 용량을 늘리거나 다른 기능을 쓰려면 돈을 내야합니다. 하지만, 일부는 무료인 것 같습니다.

제가 Windows를 쓰고 있어서 이걸로 설명을......

공식사이트에 나와있는 Windows에서 시작하기 및 Node.js 시작하기 문서를 참조했습니다. 뭐 참조해서 했다기보다 그냥 그거 보고 따라한거에요~ 제 글보다 영어가 편하시면 이 아래의 글을 읽는 게 더편할 듯!
windows에서 시작하기 : http://devcenter.heroku.com/articles/windows 
node.js시작하기 : http://devcenter.heroku.com/articles/node-js


1. Heroku 설치

일단 Heroku 사이트에 가입하시구요. 공식사이트에서는 http://railsinstaller.org 에서 한번에 git와 ruby를 설치하는 것을 설명해놨네요.

Heroku설치는 gem을 이용해서 설치하면 됩니다.

gem install heroku



2. ssh key셋팅

git를 제가 잘 몰라서 제가 일단 이해한대로 작성을.....-_-
git에 접근하기 위해서는 그 해당 git에 권한이 있어야 하는데, 해당 git에 등록된 ssh key만이 접근이 가능합니다. 그래서 heroku에 공개키를 업로드해서 얘는 여기에 등록된 사용자 라는 것을 판단하는 것 같습니다.

일단 키를 생성해야 합니다.
git 설치하면 Git Bash프로그램이 생깁니다. 그걸 실행.
아래와 같이 명령어를 치면

ssh-keygen -t rsa



홈폴더/.ssh/id_rsa과 id_rsa.pub파일이 만들어집니다. 그럼 이제 이 pc에서는 git로 이 키가 등록된 곳은 clone이 가능하겠죠. 키를 추가하는 방법은 아래 명령어로 추가합니다.

heroku keys:add

 
키가 추가됐는지 보려면 그냥 heroku keys 치면 되고, 키를 지우려면 heroku remove mudchobo@MUDCHOBO-VAIO 이렇게 치면 되고, 뒤에 인제 없이 remove만 하면 다 날라가더라구요-_-


3. Node.js 코딩

보니까 socket.io와 expres framework를 지원하는 것 같더라구요. 둘 다 사용하는 예제로 한번 올려보겠습니다.
app.js, index.html, Procfile, package.json 파일을 만들어서 올립니다.
app.js파일은 실제 node.js코드파일이고, index.html은 node.js에서 내려주는 클라이언트 파일이며 Procfile은 heroku에서 사용하는 앱 실행명령어가 있는 파일이며, package.json은 현재 프로젝트에 대한 요약 및 어떤 버전에 의존하고 있는지 명세하고 있는 파일입니다.

app.js
var app = require('express').createServer()
,io = require('socket.io').listen(app);

// 여기서 포트는 지정할 수 없고 하나만 쓸 수 있음. 미리정해진 상수.
app.listen(process.env.PORT);
console.log("port = " + process.env.PORT);

app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});


index.html
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
  });
</script>


package.json 
{
"name": "node-example",
"version": "0.0.1",
"dependencies": {
"express": "2.2.0",
"socket.io": "0.8.2"
}
}


Procfile
web: node app.js


4. git로 커밋과 remote쪽인 heroku로 push

이제 이 폴더를 git로 새로 생성해서 커밋을 합니다.

git init
git add .
git commit -m "init" 

 
그리고 heroku의 새로운 프로젝트를 생성해야 합니다.
Heroku에서 얘기하는 Cedar stack이 아직도 뭔지 모르겠습니다. 근데, Java나 Ruby On Rails, Node.js를 사용하려면 이걸로 프로젝트를 생성해야하는 것 같습니다. 

heroku create --stack cedar helloworldnodejs(원하는 이름)

이거 하면 해당 git에 remote로 heroku라는 이름으로 추가가 됩니다. 저기 원하는 이름을 쓰지 않으면 랜덤으로 이름을 생성해서 만듭니다. 그리고 현재 heroku에서 존재하는 이름으로 생성해도 Name is already taken이라는 에러메세지가 뜹니다. 유니크하게 적어주면 됩니다.

이제 push하면 됩니다.
git push heroku master

현재 프로세스가 돌아가는지 보려면
heroku ps
또는 정확하게 앱을 찍어서
heroku ps --app helloworldnodejs(앱 명칭)


5. 앱이 잘 돌아가는지 확인

heroku의 앱 url은 앱이름.herokuapp.com 입니다.
http://helloworldnodejs.herokuapp.com/
여기 접속해서 console로 helloworld가 뜬다면 된 것이겠죠. 서버쪽 로그도 확인할 수 있는데, 서버로그는 ps명령어와 동일합니다.
heroku logs --app helloworldnodejs(앱 명칭)


PS. play! framework도 꽤 관심있었는데, 여기서 호스팅까지 해준다니 이번 기회에 한번 봐야겠네요. node.js를 이용해서 초간단 html5게임이나 한번 만들어봐야겠네요~!
 
Posted by 머드초보
,
 
야후에서 만든 YUI Compressor도 있죠.
하지만 구글에서 만든 Closure Compiler는 다양한 방법으로 제공합니다. YUI Compressor같은 경우에는 java로 만든 jar파일을 통해 콘솔로 실행하는 법 밖에 없는 반면에 Closure Compiler는 웹에서 UI형태, API, 애플리케이션(JAR형태) 3가지 방법이 존재합니다.

Google Code프로젝트 Closure Compiler
http://code.google.com/intl/ko-KR/closure/compiler/

UI페이지는 아래와 같습니다.
http://closure-compiler.appspot.com/

URL을 보면 appspot인 것을 보니, 구글앱엔진으로 만들어진 것 같습니다^^ 구글은 구글제품을 활용을 너무 잘하네요^^
이 사이트에 가보면 좌측이 원본소스를 입력하는 곳이 있고, 우측에 컴파일된 파일이 나오는 곳이 있습니다. 사용법은 간단하네요~ 근데 모드를 3가지 중 선택할 수 있는데, 하나는 그냥 공백만 없애고, 하나는 노멀한 심플모드고, 하나가 Advanced모드인데, 이걸로 하니 내부 변수까지 다 바꿔버리네요. 그래서 이걸 사용하고 있는 곳에도 같이 compile을 해버리던가 아님 사용하고 있는 곳에 변수를 바꿔줘야하네요^^
물론 Advanced모드가 훨씬 많이 줄어드네요^^ 변수명도 한자리로 다 바뀌고 ^^

사용자 삽입 이미지

잘 안보이는데-_-
Original Size: 3.56KB (1.07KB gzipped)
Compiled Size: 2.82KB (835 bytes gzipped)
요렇게 줄어들었네요~ 좋네요~

API 방식을 이용해서 다양하게 응용이 가능할 것 같네요.
저희도 개발할 땐 그냥 개발하다가 배포시에는 컴파일해서 배포하도록 스크립트를 짤 수도 있고 뭐 그런식으로 응용이 가능할 듯 합니다^^


 
Posted by 머드초보
,
 
일단 한마디로 소감을 말하자면, 엄청 느리고 그래서 VMWare에 설치하는 게 훨신 낫습니다.
VMWare는 가상화 기술을 지원해선 하는 것 같은데, 이건 그냥 소프트웨어적으로 돌리는 것 같은 느낌으로 엄청 느립니다. 그냥 켰다가 껐습니다-_- 뭐 인터넷 정도만 할만한 것 보니, 맥에서 웹사이트 브라우저 테스트 정도는 할 수 있을 것 같습니다-_-

버추얼박스 다운로드 : http://www.virtualbox.org/wiki/Downloads
이번 3.2.X버전부터 지원을 한거라 아직 안정화단계는 아닌 것 같습니다. VirtualBox는 버전이 엄청나게 빠르게 업뎃을 해서 곧 안정화하리라 믿습니다^^
아~ 게다가 예전에는 Sun VirtualBox였는데, Oracle VirtualBox로 변경되었네요.

게다가 설치할 때 엄청 어려움을 겪었습니다.
osx 이미지를 일단 구해야하는데, 3가지 종류를 구했는데, 다 부팅이 안되는 겁니다-_-
그래서 검색을 해보니, empireEFIv1085.iso를 구해서 부팅한 뒤 설치할 수 있다고 하네요.

가상머신을 만듭니다.
사용자 삽입 이미지
그러면 공식적으로 Mac OS X가 있는 것을 볼 수 있습니다. 베타때에는 Server가 안붙었는데, 뭔가 문제를 회피(?)하기 위해서 붙인 것 같습니다-_-

만들었으면 설정을 해줘야합니다.
시스템에서 EFI체크해제하고, 저장소에서는 두번째 것에 empireEFIv1085.iso파일을 삽입합니다.

그리고 부팅을 하게되면 몬가 부팅이 되는데요. 거기서 다시 맥 설치 이미지로 변경해주어야합니다.
그런다음에 설치안내에 따라서 설치해주시면 됩니다.

설치가 완료되면 다시 empireEFIv1085.iso로 부팅해서 설치한 것을 선택해주시면 됩니다.
사용자 삽입 이미지



PS. 참고로 제가 뭘 잘못한지는 모르겠지만, 그냥 부팅해도 되시는 분들도 있다고 합니다. 위 방법은 그냥 부팅했을 때 안되시는 분들은 저렇게 하면 된다는 것입니다^^
PS. VMWare7에 설치하실 분들은 여기를 참고~ http://mudchobo.tomeii.com/tt/468


 
Posted by 머드초보
,
 
모토로이에서 기본 바탕화면에 깔려있는 인터넷브라우저가 있습니다. 이걸로 인터넷을 하고 그러는데, 카페같은 곳을 돌아다녀보니 돌핀이라는 브라우저가 있다는 것을 들었습니다. 마켓에서 dolphin이라고 검색하면 나오네요.
트위터도 있네요.
http://twitter.com/DolphinBrowser

일단 대충 사용해본 결과 브라우저 속도와 드래그 및 스크롤 속도가 체감적으로 기본 브라우저보다 더 빠른 것 같습니다.
그리고, 기본 내장브라우저에 비해 부가기능을 좀 더 가지고 있습니다.
탭기능도 더욱 향상되어서 볼 수 있습니다.
좌우로 긴글을 보게될 때 좌우로 스크롤을 하지 않아도 자동으로 볼 수 있게 해줍니다.
제스처를 통한 브라우징을 할 수 있습니다.

차례차례 기능을 알아봅시다-_-

1. 메뉴
일단 메뉴버튼을 누르면 여러가지 메뉴가 나오네요.
(1)Share page
현재 접속한 페이지 주소를 공유합니다.
공유할 수 있는 곳은 여러곳이 있네요.
Delicious, Facebook, Twitter, Gmail, 메세지. Delicious와 facebook은 안써봐서 모르겠고, Twitter는 아래 그림 오른쪽과 같이 글을 쓸 수 있게 해주고(로그인하라고나옵니다^^), Gmail은 메일로 쓰고, 메세지는 특정인에겍 sms를 날립니다.
사용자 삽입 이미지

음..이런 기능이 왜 1번에 있는거지....-_-

(2)Home page
말그대로 홈으로 그냥 가는겁니다. 최초 돌핀브라우저는 홈이 이상한 곳(?)으로 되어있는데, 전 http://www.google.com/m으로 바꿨습니다. 역시나 구글을 가장 많이 쓰기 때문에-_-

(3)Find on page
이건 기존 브라우저에 있는 Control + F 기능입니다. 내용찾기 기능이죠.
사용자 삽입 이미지
잘 찾아지네요. 근데 가끔 박스가 안보일 때가 있는 것 같은데, 그건 화면을 fit시켜놔서 그런 듯.

(4)Downloads
다운로드 목록이 보여집니다.

(5)Read later
이거 정체를 잘 모르겠는데, Read later를 선택하면 Saved라고 뜹니다. 그리고 메뉴버튼 -> 좌상단에 홈표시버튼 -> 4번째 메뉴의 아이콘을 선택하면 리스트에 생깁니다. 그걸 누르면 그냥 이페이지가 다시 열립니다.
나중에 읽겠다는 건 알겠는데, 북마크랑 뭐가 다른지.....아....생각해보니 이놈은 일회성 북마크인 듯-_- 읽고나면 지워짐-_-

(6)Subscrib RSS
뭐지....내 블로그는 왜 RSS가 안돼-_- 암튼 rss가 있는 블로그들에 가면 상단에 알림바에서 뜹니다. 그러면 구독하면 되는 듯. 근데 구글 리더로 그냥 연결이 되는 것 같은.....

(7)Select Text
이거 선택하면 웹에서 드래그를 할 수 있습니다. 드래그를 마치게 되면 클립보드에 복사가 됩니다. 그리고 나중에 텍스트를 붙여넣을 수 있습니다. url이 링크가 안달린 것에 대해서 복사해서 주소창에 붙여넣을 수 있습니다. 붙여넣는 메뉴는 텍스트필드를 긴누름을 하시면 된다는 거 잊지마세요~

(8)Compact page
페이지를 줄여주는 것 같은데.....글과 링크만 남고 다 없어지는 것 같아요. 말그대로 그냥 컴팩트하게 웹페이지를 만들어주는 듯.

(9)Setting
설정이겠죠.

(10)Exit
종료할 때 그냥 종료할래? Clear cache하고 할래? 물어보네요.

2. 홈메뉴
홈메뉴는 좀 찾기 힘들었는데, 메뉴누르면 주소창이 나오는 곳에 좌상단에 있는 집모양으로 되어있는 것이 홈메뉴입니다. 여기서 북마크를 열 수 있습니다. 북마크 어떻게 여는지 조낸 연구했는데, 여기에 있었습니다.....
사용자 삽입 이미지
아이콘이 위에서부터 6개가 있는데요.
(1)첫번째 - Most Visited
가장 많이 방문한 사이트목록을 보여줍니다. 노란별표가 보이는 것은 북마크가 되어있는 것이고, 안되어있는 것은 그냥 회색별로 나옵니다.

(2)두번째 - Bookmarks
북마크입니다. 북마크한 사이트가 나오는데, 별도 폴더작성은 안되는 것 같습니다.

(3)세번째 - Google Service
구글 서비스 사이트 목록이 나옵니다.

(4)네번째 - Read it later
아까 메뉴에서 있었던 기능입니다. 메뉴에 Read later기능 참조.

(5)다섯번째 - Delicious
딜리셔스안쓰므로 패스

(6)여섯번째 - Contact us
돌핀브라우저에 대한 정보 및 피드백을 보낼 수 있는 수단들이 모여있군요.

3. 탭기능
기본 내장 브라우저에도 탭이 있는데요. 윈도우라고 해서 되어있는데, 돌핀도 똑같이 있는데, 좀 더 향상된 기능으로 존재합니다. 일단 각각 열려있는 탭화면에 대해서 섬네일형식으로 볼 수 있습니다.
사용자 삽입 이미지
위와 같은 형태로 볼 수 있습니다. 새탭열기를 하게되면 홈화면을 보여줘서 북마크 등에서 찾아 바로 열 수 있습니다^^
아래에는 맨 왼쪽아이콘은 모든 창 닫는 것이고, 중간것은 자기 창 빼고 다 닫는 것이고, 오른쪽은 새창 열기입니다^^

4. 제스처
제스처가 좀 좋은 것 같습니다. 평소 크롬브라우저를 사용하는데, 마우스제스처없는 브라우저를 만지게 되면 매우 불편합니다. 그래서 꼭 사용하는 편인데, 기본 브라우저에는 이런 기능이 없더라구요. 마침 돌핀에는 있네요. 앞으로 뒤로를 제스처로 할 수 있고, 북마크도 쉽게 할 수 있으며, 새탭열기도 제스처로 쉽게 열 수 있습니다.
근데....N을 그리는 새탭열기는 좀 잘 안되네요-_- 내가 다시 그려야하나....

5. 설정
여러가지 설정을 할 수 있습니다.
보니까 캐쉬데이터를 기본 브라우저는 내장메모리에다가 해버리나봅니다. 이건 SDCARD에다가 저장할 수 있도록 설정이 가능합니다. 제스처 설정, 탭바보이기 여부, User agent조정, 자동화면맞추기 등 여러가지 옵션을 할 수 있어요.
가장 맘에 드는 옵션은 역시나 자동화면맞추기입니다. 기존에 내장 브라우저는 1024width정도의 글을 보게된다면 계속 드래그하면서 봐야하는데, 이 브라우저는 글만 자동으로 폰 해상도에 맞게 맞춰줍니다. 그래서 그냥 스크롤만 내리면 볼 수 있게 해줍니다. 근데, 확대축소 하다보면....조낸 꼬이는지 뭐라고 표현해야할 지 모르겠지만, 지멋대로 화면이 마구 바뀌어버리는 버그가 있습니다-_-

전체적으로 기본브라우저를 바꾸게된 계기는 체감속도 때문입니다. 확실히 좀 빨라짐을 느끼게 되었어요. 네이트와 같이 풀로 보여주는 사이트들을 스크롤 하게 되면 좀 많이 느렸는데, 돌핀은 그것보다 좀 빨랐거든요. 확실히 두개를 띄워보시고 스크롤해보시면 느끼실 듯. 어차피 보여지는 게 똑같다면 기본 내장브라우저를 쓸 이유가 없습니다. 그냥 +되는 느낌이라....
근데 안드로이드펍에서 어떤 분은 구글지도 등과 연결이 잘 안된다는 문제점이 있다고 하네요. 제가 지도는 잘 안써서....-_-
많은 기능을 탑재하고 있어서 인지 가끔 웹서핑하다보면...브라우저가 가끔 죽습니다-_- 왜그런지는 잘 모르겠네요.
 
Posted by 머드초보
,