태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

티스토리 툴바


개발서적 추천
Refactoring 리팩토링
마틴 파울러 저/윤성준,조재박 공역
Debug It! 실용주의 디버깅
폴 부처 저/박일 역
예스24 | 애드온2

패키지 매니저로 설치하기
이렇게

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:chris-lea/node.js

sudo apt-get update

sudo apt-get install nodejs


또는 요렇게

sudo apt-get install nodejs-dev

 
소스를 받아서 컴파일
소스를 받아서 컴파일 해서 설치하고 싶은 사람은 아래를 보시길 

nodejs의 소스를 받아온다. 

wget http://nodejs.org/dist/v0.6.8/node-v0.6.8.tar.gz


 
/usr/local/에 압축을 풀고 심볼릭 링크를 걸어줌. 

$ mv node-v0.6.8.tar.gz /usr/local/ 
$ cd /usr/local
$ tar -xvzf node-v0.6.8.tar.gz 
$ ln -s node-v0.6.8 /usr/local/nodejs


 configure

$ cd /usr/local/nodejs/
$ ./configure 

 
요런 에러가 뜬다.

Checking for program g++ or c++       : not found

Checking for program icpc               : not found

Checking for program c++               : not found 

 
필요한 패키지를 설치해야함(y/n을 물으면 확인해보고 y해야 설치된다.)

$ sudo apt-get install build-essential

$ sudo apt-get install g++ curl libssl-dev apache2-utils

 
 다시 configure (물론 nodejs폴더로 이동해야함)

$ ./configure

 
성공하면 make 그리고 make install 

$ make && make install 


설치끝!

'install' finished successfully (0.389s)


설치완료!


위의 과정을 스크립트로 만들어놓은 링크가 있어 그곳의 스크립트를 남겨놓는다. 
http://apptob.org/

# Update System

echo 'System Update'

apt-get -y update

echo 'Update completed'

# Install help app

apt-get -y install libssl-dev git-core pkg-config build-essential curl gcc g++

# Download & Unpack Node.js - v. 0.6.8

echo 'Download Node.js - v. 0.6.8'

mkdir /tmp/node-install

cd /tmp/node-install

wget http://nodejs.org/dist/v0.6.8/node-v0.6.8.tar.gz

tar -zxf node-v0.6.8.tar.gz

echo 'Node.js download & unpack completed'

# Install Node.js

echo 'Install Node.js'

cd node-v0.6.8

./configure && make && checkinstall --install=yes --pkgname=nodejs --pkgversion "0.6.8" --default

echo 'Node.js install completed'



테스트해보자
아래는 nodejs홈페이지에 있는 예제소스 (example.js)로 저장

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');


example.js실행해보기

$ node example.js


요딴식으로 나온다.

$ node example.js 

Server running at http://127.0.0.1:1337



헬로월드가 잘찍혀나오면 잘 설치된거임~~


Posted by 규이
GenericObjectPool의 설정에 관한 메모이다. 
아래의 사이트에서 번역해 온 내용임을 밝힌다. 
누군가 벌써 해놨을지도 모르지만.. 
http://commons.apache.org/pool/apidocs/org/apache/commons/pool/impl/GenericObjectPool.html 

설정가능한 ObjectPool의 구현체

적절한 PoolableObjectFactory과 관련하여 GenericObjectPool은 
임의의 오브젝트에게 견고한 풀링을 기능적으로 제공한다. 

GenericObjectPool은 수많은 설정가능한 파라메터를 제공한다. 

* maxActive : 주어진 시간에서의 풀(클라이언트가 보고있거나, 대기상태에 있는)에 의해 할당되어 관리되는오브젝트의 최대수. 설정이 양수가 아닌경우에는 한번에 풀에서 관리될 수 있는 오브젝트의 숫자에는 제한이 없다. 오브젝트의 수가 maxActive에 다다른 경우, 풀은 고갈되었다라고 말한다. 기본 설정은 8이다. 

* maxIdle : 어떠한 시간에 풀에서 대기상태로 관리되어 질수 있는 최대 수이다. 음수인경우에는 풀에서 대기상태로 있는 오브젝트의 수에 제한이 없는것으로 간주한다. 기본설정은 8이다. 

* whenExhaustedAction : borrowObject() 실행시 풀이 고갈되었을때의 행동을 지정한다. 

* WHEN_EXHAUSTED_FAIL, borrowObject() 인경우 NoSuchElementExcption을 던질것이다.

* WHEN_EXHAUSTED_GROW, borrowObject() 인경우 새로운 오브젝트를 만들고 그것을 리턴한다. 
(근본적으로 maxActive가 의미가 없어진다. )

* WHEN_EXHAUSTED_BLOCK, borrowObject() 인경우 새 오브젝트혹은 대기오브젝트가 사용가능해 질때까지  블럭- Object.wait()를 호출 - 시킨다. maxWait값이 양수인경우 수 밀리세컨드동안 borrowObject()를 블럭시키고 그후에 
NoSuchElementException을 던지게 될것이다. maxWait가 음수라면 borrowObject()메서드는 영원히 블럭된다. (헐~)

* testOnBorrow가 설정되어 있으면, borrowObject()메서드를 통해 오브젝트를 리턴하기 전에 각각의 오브젝트의 유효성을 확인 하려고 할것이다.
(팩토리의 PoolableObjectFactory.validateObject(T) 메서드를 사용한다. ) 
유효성 체크에 실패하면 풀에서 그 오브젝트를 떨궈내고 다른 오브젝트를 빌려오게 될것이다. 기본설정은 false이다. 

* testOnReturn이 설정되어 있으면, returnObject(T)를 통해 풀에 오브젝트를 반환하려고 할때 
그 오브젝트의 유효성을 확인 하려고 할것이다. (팩토리의 PoolableObjectFactory.validateObject(T) 메서드를 사용한다.) 
유효성 체크에 실패하면 풀어세 떨궈낸다. 기본 설정은 false이다. 


옵션으로, 한가지 설정이 더있다. 풀에서 대기상태로 주저 앉아버린 오브젝트들을 쫓아낼 수 있는지 조사하기 위해 그리고 대기 오브젝트 수를 최소값이 되도록 보장하기위한 것이다. 이것은 한개의 'idle object eviction(대기 오부젝트 쫒아내기)' 스레드에
의해 수행되며, 비동기적으로 실행된다. 이 옵션을 설정할 경우는 주의해야한다. Eviction(오브젝트 쫓아내기)은 풀로 부터 오브젝트를 얻으려고하는 클라이언트 스레드와 다툴것이다. 그러므로 Eviction이 매우 빈번하게 일어난다면 성능상의 문제를 가져오게 될것이다. 대기 오브젝트를 쫓아내는 스레드는 아래의 어트리 뷰트들로 설정이 가능할것이다. (할것이다는 머임)

* timeBetweenEvictionRunsMillis : 대기 오브젝트를 쫓아내는 스레드가 "실행" 되기전에 얼마만큼 잠들어 있어야 되는지를 나타낸다. 음수로 되어있으면, 대기 오브젝트 쫓아내는 스레드는 올라오지 않는다. 디폴트 설정은 -1 이다. (즉 기본 설정은 사용안함이다.)

* minEvictableIdleTimeMills : 오브젝트가 풀에서 대기상태로 주저앉기 전에 idleTime에 의거해 쫓아 낼수 있는 최소 시간량을 명시한것이다. (시간제 피씨방, 만화방을 생각하면 되는건가.) 음수로 설정되어 있으면, idle time만으로는 어떤 오브젝트로 쫓아내지 않는다.  이 설정은 timeBetweenEvictionRunsMillis > 0 이 아니면 전혀 효과가 없다. 기본값은 30분이다. 

* testWhileIdle : 대기 오브젝트이든 아니든 팩토리의 PoolableObjectFactory.validateObject(T)에 의해
유효성을 체크하게된다. 유효성체크에 실패한 오브젝트는 풀에서 떨궈진다. 이 설정은 timeBetweenEvictionRunsMillis > 0 이 아니면 전혀 효과가 없다.디폴트 설정은 false이다. 

* softMinEvictableIdleTimeMills : 오브젝트가 풀에서 대기상태로 주저앉기 전에 대기오브젝트를 쫓아내는 스레드에 의해 쫓겨나게 되는 최소시간량을 몇시한다. 추가적인 조건으로 "minIdle"오브젝트의 인스턴스는 풀에 남아 있어야 된다. 음수로 설정되어 있으면 어떠한 오브젝트가 대기상태에 빠지더라도 쫓겨나지 않는다. timeBetweenEvictionRunsMillis > 0 이 아니면 이 설정은 무효다. 그리고 이 설정은 minEvictableIdleTimeMills가 유효한경우에는 무시된다. 디폴트 설정은 -1이다. (무효)

* numTestsPerEvictionRun : 대기 오브젝트를 쫓아내녀석(스레드)의 갯수. timeBetweenEvictionRunsMillis > 0 이 아니면 이 설정은 무효다. 기본값은 3이다.

대기 오브젝트를 존중해주려면, 풀은 LIFO큐로도 설정이 가능하다. 항상 가장 최근에 사용된 객체가 풀에서 부터 리턴된다. 또는 FIFO 큐는 풀의 가장 오래된 오브젝트 부터 빌려온다. 


* lifo : 대기 오브젝트이든 아니든 풀은 last-in-first-out으로 객체를 리턴한다. 디폴트는 true

GenericObjectPoll은 PoolableObjectFactory가 없다면 쓸모없다. null이 아닌 팩토리는 풀이 생성되기 전에 생성자의 인자 혹은 setFactory(org.apache.commons.poll.PoolableObjectFactory)로 제공되어 져야한다. 


 




'개발관련 > JSP' 카테고리의 다른 글

GenericObjectPool 메모  (0) 2012/01/20
java Enum 정리  (2) 2011/10/07
JSP 커스텀 태그의 종류  (0) 2011/01/06
jsp:include에서 sendRedirect안되는 문제  (0) 2010/03/17
자바 초보웹 개발자 로드맵  (0) 2008/08/07
DataSource Mapping하기 - 톰캣의 DBCP 사용하기  (0) 2007/11/08
Posted by 규이
여기서 펌
http://blog.daum.net/jg997/2329281
 

1.프로는 불을 피우고, 아마추어는 불을 쬔다. 

2.프로는 자신이 한 일에 대해 책임을 지지만, 아마추어는 책임을 회피하려고 급급 한다. 
3.프로는 기회가 오면 우선 잡고 보지만, 아마추어는 생각만 하다 기회를 놓친다. 
4.프로는 돌다리도 두드리고 건너지만, 아마추어는 두드리고도 안 건넌다. 
5.프로는 자신의 일에 목숨을 걸지만 아마추어는 자신 일에 변명을 건다 
6.프로는 여행가이고, 아마추어는 관광객이다. 
7.프로는 남의 말을 잘 들어주고, 아마추어는 자기 이야기만 한다. 
8.프로의 하루는 25시간이지만, 아마추어의 하루는 24시간뿐이다 
10.프로는 뚜렷한 목표가 있지만, 아마추어는 목표가 없다. 
11.프로는 행동을 보여 주고, 아마추어는 말로 보여준다 
12.프로는 너도 살고 나도 살자고 하지만, 아마추어는 너 죽고 나 죽자고 한다. 
13.프로는 자신에게는 엄하고 남에게는 후하지만, 아마추어는 자신에게 후하고 남에게 엄하다. 
14.프로는 놀 때 최고로 놀지만, 아마추어는 놀 줄 모른다. 
15.프로는 리더(Leader)고, 아마추어는 관리자(Manager)다 
16.프로는 평생 공부를 하지만, 아마추어는 한 때 공부를 한다. 
17.프로는 결과보다 과정을 중시하지만, 아마추어는 결과에 집착한다. 
18.프로는 독서량을 자랑하지만, 아마추어는 주량을 자랑한다, 
19.프로는 강자에게 강하고, 아마추어는 약자에게 강하다. 
20.프로는 사람을 소중히 하고, 아마추어는 돈을 소중히 한다. 
21.프로는 사람이 우선이고, 아마추어는 일이 우선이다. 
22.프로는 길게 내다보고, 아마추어는 눈앞의 것만 본다. 
23.프로는 해보겠다고 하지만, 아마추어는 안 된다고 한다. 
24.프로는 시간을 관리하고, 아마추어는 시간에 끌려 다닌다. 
25.프로는 구름 위에 뜬 태양을 보고, 아마추어는 구름 위의 비를 본다 
26.프로는 지는 것을 두려워하지 않고, 아마추어는 이기는 것도 걱정한다. 
27.프로는 번영 의식이 있지만, 아마추어는 편한 의식이 있다. 
28.프로는 "난 꼭 할 꺼야" 라고 말하지만, 아마추어는 "난 하고 싶었어" 라고 말한다 
29.프로는 메모를 하고, 아마추어는 듣기만 한다. 
30.프로는 "지금 당장"을 좋아하지만, 아마추어는 "나중에"를 좋아한다. 
31.프로는 꿈을 먹고 살지만, 아마추어는 꿈을 잃고 산다. 
32.프로는 "요령껏, 재주껏" 하지만 아마추어는 "무조건 열심히" 만 한다. 
33.프로는 "Me"를 생각하지만, 아마추어는 "Me Too"를 생각한다. 
34.프로는 Only One를 추구하지만, 아마추어는 Number One을 추구한다. 
35.프로는 다면 사고를 하지만, 아마추어는 단면 사고를 한다 
36.프로는 Know-Where를 생각하고, 아마추어는 Know-How를 생각한다. 
37.프로는 밸류을 추구하지만 아마추어는 볼륨을 생각한다. 
38.프로는 질을 생각하고, 아마추어는 양을 생각한다. 
39.프로는 디지털형이고, 아마추어는 아나로그형이다. 
40.프로는 플로우를 좋아하고, 아마추어는 스톡을 좋아한다. 
41.프로는 뛰면서 생각하지만 아마추어는 생각한 뒤 뛴다. 
42.프로의 무대는 그라운드지만, 아마추어의 무대는 관중석이다. 
43.프로는 창조적 괴짜형이고, 아마추어는 노예형이다. 
44.프로는 미래 중심적이고, 아마추어는 과거 중심적이다. 
45.프로는 창조를 하고, 아마추어는 모방을 한다. 
46.프로는 발전시키지만, 아마추어는 현상을 유지한다. 
47.프로는 사람에 초점을 두지만, 아마추어는 시스템과 구조에 둔다. 
48.프로는 신뢰를 쌓지만, 아마추어는 통제에 의존한다. 
49.프로는 장기적 관점을 갖지만, 아마추어는 단기적인 전망을 갖는다. 
50.프로는 "왜, 무엇"을 묻지만, 아마추어는 "어떻게, 언제"를 묻는다. 
51.프로는 먼 수평선에 두지만, 아마추어는 시야를 말끝에 둔다. 
52.프로는 자기의 의지에 따라 움직이지만, 아마추어는 현상을 그대로 받아들인다. 
56.프로는 "올바른 일"만 하지만, 아마추어는 "일을 올바르게" 한다. 
57.프로는 위험을 감수하지만, 아마추어는 위험을 회피한다. 
58.프로는 이끌기 위해 솔선 수범하지만, 아마추어는 주어진 직책에 안주한다. 
60.프로는 삶으로서 영향력을 발휘하지만, 아마추어는 직책으로 영향력을 행사한다. 
61.프로는 사람을 고무시키지만, 아마추어는 기준을 따르라고 한다. 
62. 프로는 변화를 추구하지만, 아마추어는 예측과 질서를 추구한다. 
63.프로는 현상에 도전하지만, 아마추어는 현상을 유지한다. 
64.프로는 비전과 전략에 관심을 두지만, 아마추어는 세부적인 계획, 시간표에 관심을 둔다. 
65.프로는 혁신가지만, 아마추어는 행정가이다. 
66.프로는 실질적인 성과에 관심이 있다. 아마추어는 능률에 관심을 둔다. 
67.프로는 철학, 핵심 가치, 공동 목표를 강조하지만, 아마추어는 전술,시스템, 구조를 강조한다. 
68. 프로는 책임부터 생각하고, 아마추어는 권한만을 생각한다. 
69. 프로는 공유하려 하고, 아마추어는 독점하려 한다. 
70. 프로는 실수를 하고, 아마추어는 실패를 한다. 
71. 프로는 놀지만, 아마추어는 까분다. 
72. 프로는 웃지만, 아마추어는 비웃는다. 
73. 프로는 알면서도 모르는 척 해주지만, 아마추어는 모르면서도 아는 척 한다. 
74. 프로는 힘들어하지만, 아마추어는 힘들다고 소리친다. 
75. 프로는 함께 일하고.아마추어는 혼자 일한다. 
76. 프로는 비판하지만, 아마추어는 비난한다. 
77. 프로는 얘기하지만, 아마추어는 떠든다. 
78. 프로는 묵묵히 걸어다니지만, 아마추어는 싸돌아다닌다. 
79. 프로는 남에게 감사하지만, 아마추어는 남을 감시한다. 
80. 그리고, Pro는 (영락없이) Amateur처럼 생겼지만, Amateur는 (마치) Pro처럼 행세한다.
Posted by 규이
http://dalinaum-kr.tumblr.com/post/2986196227/hello-homebrew

여기보고 따라했는데 잘된다. 

 .bash_profile은 없으면 만들자.

/etc/.bash_profile 
/$user/.bash_profile 
순으로 적용된단다.

아래꺼는 내꺼 설정 앨리어스 (알리어스?)랑 패스설정해줬다. 

#bash_profile
alias ll='ls -al'
alias ls='ls -vGF'

PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/loca/sbin

 
적용은

user$  source ~/.bash_profile

해주면 됨!  

요거는 리눅스시스템에서의 환경설정 파일 설명해놓은 링크
http://chanyi.egloos.com/4491641
 

'Mac' 카테고리의 다른 글

homebrew 설치관련 링크  (0) 2011/11/17
[vim] .vimrc 파일 없을때  (0) 2011/11/12
Posted by 규이
맥으로 c 프로그래밍좀 공부할려고 했드만 vim에서 문법에 색을 안입혀주는게 아닌가..?!

그래서 찾아보니 .vimrc파일을 수정해주라네..

근데 찾아보니 없음. ㅡㅡ;

개발자 정신을 발휘한다면... 없으면 만들라?!

그래서 찾아보니 진짜 없으면 만들면 됨..ㅡㅡ;

순서는 이렇소.

$ cd ~
$ vi .vimrc

[.vimrc파일 내용]

" add for next lines
set tabstop=4
set ai " auto indenting
set history=100 " keep 100 lines of history
set ruler " show the cursor position
syntax on " syntax highlighting
set hlsearch " highlight the last searched term
filetype plugin on " use the file type plugins
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if ! exists("g:leave_my_cursor_position_alone") |
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal g'\"" |
\ endif |
\ endif

 
:wq 로 저장하면

끝!

저기 .vimrc에서 문법에 색깔 입히는거는  
사실 요거 한줄

syntax on " syntax highlighting  

'Mac' 카테고리의 다른 글

homebrew 설치관련 링크  (0) 2011/11/17
[vim] .vimrc 파일 없을때  (0) 2011/11/12
Posted by 규이

Enum 열거형.

가장 간단히 enum을 정의 하는 법

enum EnumName { EnumValule1, EnumValue2, ... }

EnumValue의 젤 뒤에 세미콜론을 넣어도 오케이

enum EnumName { EnumValule1, EnumValue2, ...;}

EnumValue의 젤뒤에 컴마랑 세미콜론을 넣어도 오케이(생긴건 약간 이상함)

enum EnumName { EnumValule1, EnumValue2, ...,;}

EX)
enum Gender {MALE, FEMALE}
enum Status {STAT1, STAT2, STAT3;}
enum 종족 {
휴먼,
엘프,
드워프,
호빗,
}

사용법

enum에 정의된 EnumValue는 정수(public static final) 처럼 취급

Status s = Status.STAT1;
if( s == Status.STAT1) {
 
} else if (s == Status.STAT2){

}

스위치문에서 사용가능

Statis s = Status.STAT1;
switch(s) {
  case STAT1: blah....; break;
  case STAT2: blah....; break;
  default : default blah...; break;
}

위에서 switch문에 들어가는 값이 null로 나오면 NullPoihnterException이 발생하니 주의!

암묵적으로 정의되는 메서드
아래와 같은 enum을 정의했다고 치자
enum Status {STAT1, STAT2, STAT3}

컴파일 된 이미지는 아래와 같다. (JVM에 따라 약간의 차이가 생김)

final class Status extends Enum<Status> {
  private Status(String name, int ordinal) {
     super(name, ordinal);
  }
  public static final Status STAT1 = new Status("STAT1", 0);
  public static final Status STAT2 = new Status("STAT2", 0);
  public static final Status STAT3 = new Status("STAT3", 0);
 
  private static final Status ENUM$VALUES[] = {STAT1, STAT2, STAT3};
}

ENUM$VALUES에 모든 열거자(EnumValue)가 저장이 되는데, 이것을 사용하고자하면 values()를 사용하면 된다.

 public final String  name()  열거자의 이름을반환  String name = STAT1.name();
 public final  int ordinal() 열거자의 순서를 반환(컴파일러가 임의로 지정함)  int n = STAT1.ordinal();
 public final int compareTo(열거자) 순서에 의해 대소비교  Status s = ...;
if (s.compareTo(STAT2) < ) {...}
 public  String toString() name()과동일, 오버라이드 가능   System.out.println(STAT1);
public static   Enum valueOf(String name) 문자열에 해당하는 열거자의 오브젝트를 반환. 없으면 익셉션 발생  Status s = Status.valueOf("STAT1");
public static  Enum[] values() 열거자를 순서대로 나열한 배열을 반환.
ENUM$VALUES의 카피이므로, 너무 자주 호출하는것은 좋지않음.
 Status[] sarr = Status.values();
 public final   Class<Enum> getDeclaringClass()  열거자의 클라스를 취득함.  Class clazz = STAT1.getDeclaringClass();

enum의 언어상의 특수취급사항

1. enum은 new로 새로운 인스턴스를 만들수 없다. 생성자가 private이므로
2. newInstance() 리플리케이션에 의한 인스턴스생성도 불가. newInstance()를 호출하면 InstantiationException 발생.
3. clone()을 만들수 없다. Enum클래스를 상속받고는 있지만, clone() 메서드가 final로 지정이 되어있어서 사용하게되면 CloneNotSupportedException 발생.
4. 시리얼라이즈 - 외부에서 출력하여 다시읽어들여도, 올바르게 열거자가 됨.
  (설명) 열거자의 증감이 있어서(클래스가 수정되어서) ordinal값이 변경되어도 올바른 이름의 열거자가 된다.  열거자가 없는 경우는 InvalidObjectException(enum constant 열거자 does not exist)가 발생함.
 
그외

enum은 [특수한 클래스]이므로 아래와 같은 코딩이 가능함.

public enum Main{
  ;
  public static void main(String [] args){
    System.out.println("이렇게해도 실행이 된답니다~~~^^;");
  }
}


위 내용은 아래의 일본사이트에서 번역해서 가져 왔습니다.
발번역이라 이상한부분도 많을것 같아요ㅠㅠ
http://www.ne.jp/asahi/hishidama/home/tech/java/enum.html

다른 내용이 더 있긴한데 정리한거만 알아도 사용하는데 지장이 없을것 같습니다.

설명이 부족한 부분이 있다면 댓글로 남겨주시면 찾아보겠습니다.

'개발관련 > JSP' 카테고리의 다른 글

GenericObjectPool 메모  (0) 2012/01/20
java Enum 정리  (2) 2011/10/07
JSP 커스텀 태그의 종류  (0) 2011/01/06
jsp:include에서 sendRedirect안되는 문제  (0) 2010/03/17
자바 초보웹 개발자 로드맵  (0) 2008/08/07
DataSource Mapping하기 - 톰캣의 DBCP 사용하기  (0) 2007/11/08
Posted by 규이
요즘에는 정말 개발하기 편한게 너무 많이 나온다.

DB도 관계지향적 DB에서 요즘에는 NoSQL이라는 것도 나오고...
자바로 스트러츠2 + 스프링 + 마이바티스로 연결해서 쓸때에 너무 소스 코딩을 많이 해야되어서
굉장히 불편했는데..
자바도 쾌속개발이 가능한 툴들이 계속 나오고 있다.

7월달에 샘플코드라도 돌려 봤으면 하는 것들 리스트를 정리해두려한다.


mongodb
공식사이트 : http://www.mongodb.org/
한글 강좌 : http://www.ibm.com/developerworks/kr/library/j-morphia/index.html?ca=drs-
소개 블로그 : http://blog.doortts.com/178
한글 서적 : http://www.yes24.com/24/goods/5161478?scode=029

회사분이 책을 샀길래 그거 뺏어서 열심히 읽고있음. 다음주까지 줘야되서 열라 빨리 읽고 있다..으하하..ㅠㅠ
실제로 콘솔창에서 실행을 해보니 아주 쉽고 재미남...(아직 쉬운부분만 봐서 그렇겠지..ㅎㅎ)

redis
공식사이트 : http://redis.io/
이거는 아직 별로 안봤공...

Play framework
공식사이트 : http://www.playframework.org/
공식사이트의 샘플프로젝트 만드는 동영상 봤느데... 꽤나 잘 만들었다는 느낌이 많이 든다.
근데 인도사람이 만든건가?!
문서도 나름 알아보기 쉽게 되어있고.. 좀 마음에 드는데?!
Posted by 규이
apache 설치

#설치할 폴더로 이동
> cd /usr/local/

#설치파일 받기
> wget http://ftp.kddilabs.jp/infosystems/apache//httpd/httpd-2.2.19.tar.gz

#압축풀기
> tar zxvf httpd-2.2.19.tar.gz

#설정하기 - 시스템 체크 makefile 생성
> ./configure --prefix=/usr/local/apache --enable-module=so --enable-mods-shared=all --enable-so --enable-ssl=shared --with-ssl --enable-rewrite

#컴파일하기 설치하기
> make
> make install

아직 까지는 간단!


PHP 설치

PHP는 아래 링크를 참고 했슴다.

http://blog.daum.net/ezway/10
http://www.linuxfromscratch.org/blfs/view/svn/general/php.html


> php-5.3.6.tar.bz 를 다운로드

#압축해제
> tar xvzfp php-5.3.6.tar.bz
> cd php-5.3.6


#설정
> ./configure --prefix=/usr/local/php \
 --with-apxs2=/usr/local/apache/bin/apxs \
 --with-config-file-path=/usr/local/apache/conf \
 --with-exec-dir=/usr/local/apache/bin \
 --with-mysql=/usr/local/mysql \
 --with-config-file-path=/etc \
 --enable-sigchild \
 --enable-static \
 --enable-zend-multibyte \
 --enable-sockets \
 --enable-soap

#설치!
> make
> make install

#아파치에 php설정을 추가해줌
아래와 같이 콘솔창에 입력을 하면 vim텍스트 편집기가 나온다.
> vim /usr/local/apache/conf/httpd.conf

LoadModule이 여러줄 나오는 곳 가장 하단에 아래에 적혀있는 php관련된 3줄만 추가해주자

LoadModule php5_module /usr/local/php/libs/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

그리고 아파치 재시작!!

Posted by 규이
자세히 나와 있는곳이 없어서 너무나 큰 왕삽질을 했다...ㅠㅠ

5.5.x 버전은 cmake라는 걸 이용해서 컴파일을 해야하는데 우선 cmake라는 녀석부터 설치를 해보자.


#CMAKE 설치에 필요한 라이브러리 설치
> yum -y install zlib curl
> yum -y install gcc g++ cpp gcc-c++
> yum -y install openssl openssl-devel
> yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
> yum -y install bison

#CMAKE를 받자
>wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

#압축 풀고 설치
> tar xvfzp cmake-2.8.4.tar.gz
> cd cmake-2.8.4
> mkdir cmake-build
> cd cmake-build
> ../bootstrap
> make all
> make install

cmake 설치끝!

이제 MySQL 5.5.13 버전을 설치해보자!

#컴파일하기 전 필요한 라이브러리 설치
> wget ftp://ftp.pbone.net/mirror/dev.mysql.com/pub/Downloads/MySQL-5.5/MySQL-devel-5.5.13-1.rhel5.i386.rpm
> rpm -Uvh --force --nodeps MySQL-devel-5.5.13-1.rhel5.i386.rpm

#tar 파일 받기
> wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.13.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/

#압축풀기
> tar xvfz mysql-5.5.13.tar.gz
> cd /mysql-5.5.13

#cmake로 컴파일 및 설치
> cmake -DCMAKDE_INSTALL_PREFIX=/usr/local/mysql-5.5.13 \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/data -DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFIGDIR=/etc \
-DEFAULT_CHARSET=utf8 \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_TCP_PORT=3306

> make && make install

#mysql 그룹, 계정 만들기
> groupadd mysql
> useradd -g mysql mysql

#권한주기
> chown mysql:mysql /usr/local/mysql
> chown -R mysql:mysql /usr/local/mysql/data
> cd /usr/local/mysql

#설치후 세팅들
>  ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
> cp support-files/my-medium.cnf /etc/my.cnf
> cp support-files/mysql.server /etc/init.d/mysqld
>vim /etc/init.d/mysqld   #vim으로 열어서 datadir이라고 되어 있는 부분만 아래와 같이 수정하자
>datadir=/usr/local/mysql/data


#mysql 실행시 아래와 같은 에러가 나는경우
> mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

=> 서비스가 아직 떠있지 않아서 그런것이니 서비스를 실행시켜주자.
> /etc/init.d/mysqld start
혹은
> service mysqld start

잘되는지 테스트해보자. mysql을 치고 mysql 콘솔화면으로 들어간다음
show databases; 라고 쳐보자. ; 세미콜론을 꼭! 쳐주어야함!
아래와 같이 나오면 잘되는 것이다.

> mysql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)


#유저추가
insert into user(host, user, password) values('localhost', '아이디', password('비밀번호')); 


#DB 권한 추가
 insert into db(Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) values('%', '%', '아이디','Y','Y','Y','Y','Y','Y');
GRANT ALL on 데이터베이스.* TO 아이디;



 
Posted by 규이
소나타입의 페이지에 있는 m2eclipse 설치하기를 그대로 따라하면 될 것을...
괜히 인터넷에서 찾아보고 했다..

m2eclipse를 설치후에 참으로 고민되는게 webcontents 폴더를 여는게 무진장 귀찮다는 것인데...
이클립스에서 한방에 보이게끔 하는 플러그인이 또 따로 있었다.

m2eclipse가 설치된 상태에서 설치해야하는데..
성질 급하신분들은 아래링크에서 영어로 읽으시고.


http://m2eclipse.sonatype.org/installing-m2eclipse.html

그냥 m2eclipse Extras라는 플러그인을 하나더 설치해주시면 된다.
아래처럼 하면됨.
1. m2eclipse를 설치한다.
2. m2eclipse Extras를 설치한다.

m2eclipse Extras 업데이트 사이트 : http://m2eclipse.sonatype.org/sites/m2e-extras

설치할때의 사진을 올리면 더 이해가 빠를듯하여 사진도 올림.

아래의 Maven Integration for Eclipse Extras랑
Maven Integration for Eclipse WTP 두개만 선택하면 된다.
다른거는 필요하면 선택!


이렇게 불편하게 하나하나 소스트리를 열어야 했는데!


빨간 테두리에 있는 것처럼 편하게 됐다! 

웹개발하시는 분들은 꼭...

m2eclipse랑 m2eclipse Extras 둘다 설치합시다!



m2eclipse Extras는 이클립스 3.5.2dhk 3.6.1버전이 있다.
(이전버전도 있지만 설치는 알아서 하시길..)
3.4.x버전을 쓰고 있다면 이번기회에 업그레이드 합시다.


Posted by 규이