MongoDB2012. 8. 8. 17:13

MongoDB시작하기..


다음의 사이트에서 MongoDB를 다운받는다.


http://www.mongodb.org/downloads


내가 사용할 OS에 맞는 MongoDB를 다운 받았으면 알맞은 곳에 압축을 푼다.


그리고 루트디렉토리에 data/db라는 폴더를 만들어준다.


리눅스나 MacOS의 경우에는 터미널에서


cd /로 루트로 간다음..

mkdir -p /data/db/ 명령어로 디렉토리를 만들어준다.(디렉토리 만드는 명령어가 정확한지는 모르겠음) 

MongoDB를 설치한(압축을 푼)곳에 가보면 bin디렉토리가 있는데..


그곳의 mongod명령어가 MongoDB를 시작하는 명령어이고, mongo명령어가 MongoDB의 쉘을 시작하는 명령어이다.


실행해보면 data/db디렉토리의 권한때문에 실행이 안되는 경우도 있을것이고 운영체제가 32비트나 64비트라 안되는 그런


경고 문구들로 실행이 안되는 경우가 있다.


디렉토리의 권한 문제로 실행이 안될 경우에는 data/db에 권한을 주면된다.

chown `id -u` /data/db


그리고 32비트나 64비트라서 안되는 문제는 mongod를 실행 시킬때


mongod --journal 이렇게 실행 시켜 주도록 하자.


Posted by Z700zZz
日常2012. 8. 6. 23:37

요즘 들어서 마음이 심난한건지 아니면 불안한건지 모르겠다.


어제는 전화를 걸었는데 어머니의 친한 친구분이 사경을 헤매고 있다는 소식을 들었다.


암환자이셨던 어머니는 아무렇지 않게 나에게 말을 하셨지만 얼마나 심난 하셨을지..


작년말 어머니의 다른 친구 한분은 췌장암 4기로 6개월 판정을 받았는데 정말 딱 6개월을 살다가 세상을 떠나셨다.


모두 나에게 잘해주셨던 분들이다.


암환자를 가족으로 둔 사람이라면 이런 소식듣는 순간 마음이 무거워질 것이다.


요즘 날씨가 무척이나 덥다. 벌써 낮기온이 36도가 넘고 밤기온도 30도 아래로 떨어지지 않은지 며칠이 지난지 모르겠다.


어제의 소식, 무더운 날씨, 그리고 지금 하고 있는 일..


이 모든 것들이 복합적으로 나의 맘을 심난하게 만드는 것인지도 모르겠다.


자신감을 갖자고 다짐을 해도 그게 좀처럼 쉽게 되지 않는다.


이세상에 어려운 일이란 없다라고 항상 생각하는데 막상 닥치면 그게 뜻대로 되지 않는다.


회사에서는 나에게 믿음을 준다. 그게 고맙고 그에 맞게 행동을 해야 한다 생각한다.


누군가에게 신뢰를 받는 다는 것은 상당히 조심스러운 일이다.


하지만 요즘 내가 하는 행동을 보면 한심하다.


자신감은 없고 무기력하고 시키는 일도 제대로 하지도 못하고 너무 게으르게 생활을 하는것 같다.


날씨 탓으로 돌릴까도 싶지만 이건 어제 오늘의 일만이 아님을 잘 알고 있다.


이러한 모든 행동이 여태껏 쌓아온 신뢰를 무너뜨릴 것만 같은 기분이 든다.


잘 알고 있으니 내일부터는 열심히 하면 된다.


그리고 공부 또 공부 공부만이 살길이다.

Posted by Z700zZz
감상2012. 6. 27. 17:22

지금 나에게 필요한 것!!

높은 목표를 달성하려면 
간절한 바램이 잠재의식에 미칠 정도로
곧고 강해야 한다.
주위의 시선에 우왕좌왕하지 말아야 한다.
하고 싶다면, 하고자 한다면
무슨 일이 있어도 그 길을 가겠다고
굳게 다짐하라.
그리고 반드시 이룰 수 있다고 굳게 다짐하라.
그런 간절함이 없다면
처음부터 꿈도 꾸지마라.

-이나모리 가즈오 '왜 일하는가?'-

무슨일이든 이룰 수 있다고 다짐하라.
모두와 함께 일하고 기쁨을 나누어라.
항상 긍정적으로 생각하고 행동하라.
다른 사람들에게 선의를 베풀어라.
자신보다는 남을 먼저 배려하라.
정직하고, 겸손하며, 노력을 아끼지 마라.
남의 것을 탐하지 말고, 욕심을 멀리하라.
모든일이 뜻대로 된다고 믿어라.

-미래를 짊어질 젊은이들을 위한 이나모리 가즈오 회장의 사고방식-

지금 나에게 없는 것은 간절함..

간절함이 필요하다!!


'감상' 카테고리의 다른 글

관상..  (0) 2013.09.13
나부터 보자.  (0) 2012.03.19
고백(告白) - 미나토 가나에(湊かなえ)  (0) 2009.10.14
Posted by Z700zZz
iBATIS2012. 6. 27. 17:18

블로그를 처음 시작 하면서 iBatis로 insert한 후 입력된 데이터의 pk값을 가져오는 법을 포스팅 했었다.


그게 벌써 몇년전인지..내가 저런글을 썼나 싶을 정도로 오래(?)..


이번은 시퀀스 값이나 pk값이 아닌 그저 성공여부를 가져오는 법을 포스팅 하려한다.


방법은??


간단하다 insert메소드가 아닌 update메소드로 insert쿼리를 실행하면 결과 값으로 성곤한 row의 값이 리턴 값으로 넘어오게 된다.


성공하면 1, 성공하지 못하면 0.


원래 그냥 selectKey를 이용해서 시퀀스나 PK값을 가져오지 않으면 Null을 리턴하게 되어있다.


위와같은 방법으로 시퀀스가 필요 없을 때 값이 제대로 들어갔는지 확인이 가능하다.

'iBATIS' 카테고리의 다른 글

iBatis 주의사항..두번째  (0) 2014.09.16
iBatis 주의사항..  (0) 2014.09.01
iBatis DTD 오류..!  (0) 2011.07.15
MSSql - iBatis에서 Insert후 Seq값 Return하기.  (0) 2011.07.01
iBATIS Lazy Loading...!  (0) 2009.09.15
Posted by Z700zZz
Java2012. 6. 26. 10:20

좀전에 포스팅에서는 Log4j의 전체적인 설정을 설명하였다.


하다보니 뭔가 허전하다. 이번엔 Appender에 대해서 설명하겠다.


Appender란 무엇인가.


Appender의 종류에는 여러가지가 있다.


Class Output Direction
org.apache.log4j.ConsoleAppender Console
org.apache.log4j.DailyRollingFileAppender File
org.apache.log4j.FileAppender
org.apache.log4j.RollingFileAppender
org.apache.log4j.WriterAppender Java.io.Writer
org.apache.log4j.net.JMSAppender JMS(Java Message Service)
org.apache.log4j.net.SMTPAppender Electronical Mail
org.apache.log4j.net.SocketAppender Remote Socket Server
org.apache.log4j.net.SyslogAppender Remove UnixSyslog Daemon
org.apache.log4j.nt.NTEventLogAppender Window NT Event Log
org.apache.log4j.AsyncAppender Others..
org.apache.log4j.performance.NullAppender
org.apache.log4j.varia.ExternallyRolledFileAppender


위의 표와 같은 수많은(?) Appender가 있다.


1. ConsoleAppender


쉽게 말해서 이클립스 Console창에 나오는 정보라고 보면된다.


log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n


위와 같이 설정 하면 og4j.rootLogger=DEBUG에서 DEBUG로 설정했으면 DEBUG이상 레벨의 모든 Log가 설정한 ConversionPattern대로 Console창에 나오게 된다.


2. RollingFileAppender


파일에 로그를 기록하는 Appender.


어떠한 용량을 정해주고 그 용량이 넘어가면 로그 파일을 새로 기록하는 Appender다.


3. DailyRollingFileAppender


RollingFileAppender는 용량을 정해주는 거라면 DailyRollingFileAppender는 기간을 정해주는 Appender다.


log4j.appender.logfile.DatePattern='.'yyyy-MM                     <월단위

log4j.appender.logfile.DatePattern='.'yyyy-MM-ww         <주단위
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd-a
        <12시간단위
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd-HH         <시간단위
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd-HH-mm    <분단위


위와같이 설정 파일에 설정을 해주면 시간이 지나면 알아서 파일을 새로 생성하여 로그를 기록한다


표에 보면 많은 Appender들이 있지만 주로 쓰이는 몇가지만 설명을..(아는게 이것밖에는..ㅋ)


아무튼 이것만 알아도 되지는 않을것이고 좀더 공부하고 포스팅을..

'Java' 카테고리의 다른 글

EhCache의 Spring Framework(iBatis)적용...!  (0) 2012.09.18
json-lib-2.4-jdk15.jar  (0) 2012.08.24
Log4j 설정..!  (0) 2012.06.25
Java Compile Version Error..!  (0) 2012.03.15
Java의 문자열 비교..!  (0) 2011.10.04
Posted by Z700zZz
Java2012. 6. 25. 21:33

Log를 과리를 잘하기 위해서 존재하는 프레임워크가 바로 Log4j다.


자 간단하게 log4j.properties 설정 법에 대해서 설명하겠다.


뭐 사실 설명하고 싶은건 일별로 로그 파일을 관리 할 때의 방법이다.


log4j.rootLogger=DEBUG, stdout, logfile

전체 적인 로그의 레벨을 정한다.


# Console

이클립스의 콘솔에 찍힐 로그를 정한다.

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n

# LogFile

파일에 쓸 로그의 내용을 정한다.

log4j.appender.logfile.Threshold=DEBUG

파일에 쓸 로그의 레벨을 정한다.
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender

하나의 파일에 계속해서 로그를 쌓을 것인지 매일매일 다른 파일에 로그를 쌓을것인지를 정한다.
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd'.log'

매일 매일 다른 파일에 로그를 쌓을 때 파일 이름의 규칙을 정한다.

위와 같은 형식으로 설정 할 경우 자정이 지나면 파일을 새로 생성한다.

검색해보면 DatePattern에 따라서 파일 하나에 기록할 것인지 하루에 정오와 자정에 나눠서 파일에 기록 할 것인지..

등등에 대해서 나눠 설정 할 수 있다.

log4j.appender.logfile.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n

파일에 기록 할 내용을 지정한다.

자세한 옵션은 검색 하면 많이 나온다.

log4j.appender.logfile.File=/Users/Jeonjinkang/Documents/workspace/ChannelTalk/WebContent/WEB-INF/logs/logfile

저장 할 파일의 위치와 이름을 지정한다.


여기서 중요한 것은 위와 같이 설정을 하고 서버를 돌리면 서버가 돌아가는 순간부터 Log파일에 기록이 된다.

Log파일을 찾아 보면 logfile라는 이름의 Log파일이 생겼을 것이다.

뭔가 이상하다..

나는 분명 설정에서 logfile라는 파일 이름과 그뒤에 '.'yyyy-MM-dd'.log'라는 파일 명명 규칙을 줬는데 왜 이렇게 밖에 생성을 못하는 것일까??

제대로 생성이 된다면 logfile.2012-06-25.log라는 파일이 생겨야 하는것이 아닌가??

그만 고민하자..그날 당일에 생긴 파일은 File에 설정한 이름대로 파일이 생기고 자정이 넘어가야만 DatePattern에 설정한 파일명이 붙는 단다..

설정한대로 안되서 2시간동안 검색하고 했는데 이런 결과가..

일단 기본적인 설정 방법은 설명했다.

다음엔 Spring FrameWork에 Log4j를 구동하기 위한 설정에 대해서 설명해 보겠다.

'Java' 카테고리의 다른 글

json-lib-2.4-jdk15.jar  (0) 2012.08.24
Log4j의 Appender..!  (0) 2012.06.26
Java Compile Version Error..!  (0) 2012.03.15
Java의 문자열 비교..!  (0) 2011.10.04
Java - Lotto(로또)  (0) 2009.10.14
Posted by Z700zZz
개발2012. 6. 21. 17:15

개발시 FireBug를 사용하기 위해 아니면 개발시 좀더 편한 개발을 위해 FireFox를 사용한다.


코딩을 하고 HTML페이지나 JSP같은 웹페이지를 호출해 보면 추가된 사항이나 수정된 사항이 제대로 적용이 안되어 보일때가 많다.


왜 이런 문제점이 발생 되는걸까.


바로 이번 페이지가 캐쉬되어 있기 때문이다.


파이어 폭스 환결설정 아무리 들어가 봐야 캐쉬에 대한 목록은 보이지 않는다.


자 주소창에 about:config를 쳐보자.


먼저 고급 환경설정을 할것이냐 물어보면 당연히 YES!!


들어가보면 무수히 많은 항목이 나타나는데 여기서 우리가 필요한 항목은


network.http.use-cache


이 학목을 보면 값이 true로 되어있다.


true의 값을 false로 바꿔주면 캐쉬 기능이 작동하지 않아 이제부터는 수정하는 즉시 리프레쉬 하면 바로바로 적용 되는것을 확인 할 수 있다.

Posted by Z700zZz
Oracle2012. 6. 21. 12:11

현재 하고 있는 프로젝트를 빠르게 진행하다 보니 시작은 MySQL로 시작했다가 중간에는 Oracle로 바꿨다.


JDBC드라이버와 URL등을 다 바꾸고 쿼리 부분도 오라클에 맞게 수정을 해준 다음 해보면 에러가 발생 하였다.


Cannot create PoolableConnectionFactory (ORA-00923: FROM keyword not found where expected


위와 같은 에러.


에러 내용을 보면 알겠지만 FROM절 뒤의 키워드가 잘못됐다? 못찾겠다?


나는 분명 쿼리에 문제가 없고 그 쿼리를 SQL Developer에 넣어 돌려보면 정상적인 값이 나온다.


분명 쿼리에는 문제가 없다.


모든 방법을 다 동원해서 해봤지만 나오는 결과는 똑같았다.


검색을 해보면 쿼리가 잘못 됐다거나 오라클 방화벽 문제거나 리스너가 구동 되지 않은 상태에서 하면 저런 결과가 나온다는 말뿐.


그러다 검색된 결과가..


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
            p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}" p:username="${jdbc.username}"
            p:password="${jdbc.password}"
            p:validationQuery="SELECT 1 FROM DUAL"
            p:testOnBorrow="true"
            p:testWhileIdle="true"
            p:timeBetweenEvictionRunsMillis="6000"
            p:removeAbandoned="true"
            p:removeAbandonedTimeout="60"/>


database-context.xml의 내용이다.


p:validationQuery="SELECT 1 FROM DUAL" 이게 문제였다.

Oracle이외의 DataBase는 SELECT 1을 쓴다고 한다.


Oracle로 변경을 하면서 저것을 바꿔주지 않으니 났던 에러였다.


SELECT 1이었던 값을 SELECT 1 FROM DUAL로 바꿔주니 아주 잘 된다.


이것 때문에 대체 얼마나 많은 시간을 소비한건지..-_-;;

Posted by Z700zZz
Linux2012. 6. 14. 23:01

CentOS6에 MySQL설치..!

어렵지 않다.

이것저것 검색을 해봤지만 제일 쉬운거로 해봤고 성공후 그 방법에 대해서 설명하려 한다.

CentOS에는 기본적으로 MySQL을 가지고 있다.

현재 사용중인 CentOS의 버전은 6.2.

기본적으로 포함되어 있는 MySQL의 버전은 5.1.

그럼 지금부터 설치 방법에 대해서 설명하겠다.

CentOS의 터미널을 열어 설치 하면 된다.

1. 설치하기.


실행해 보면 설치가 되는 패키지도 있고 이미 설치 된 패키지도 있는것을 확인할 수 있다.


하지만 설치가 안되는 패키지가 있다 하더라도 MySQL이 설치가 안되거나 실행이 되지 않는 일은 발생하지 않았다.


# yum install mysql-server

여기서 #은 [root@localhost-]# 의 #이다.

혹시나 저것까지 치는 사람이 있을까봐.

위와같은 명령어를 실행하면 알아서 패키지를 다운받고 설치가 시작된다.

2. 설치한 SQL서버 시작.

# service mysqld start

실행하고 1~2초를 기다리면 다음과 같은 메세지가 출력된다.

mysqld (을)를 시작 중:     [ OK ]

그럼 성공!!

쉽지 않은가??

3. root의 비번번호 설정 하기.

# mysql -u root -p

Enter Password : <---------- 다음과 같이 나오면 지체없이 Enter!! 우리는 비번을 설정한 적이 없다.

mysql> use mysql;

mysql> 은 위의  [root@localhost-]# 와 같은것.

use mysql은 mysql의 데이터 베이스를 사용하겠다는 명령어.

mysql> update user set password=password('사용할 비밀번호') where user='root';

user테이블의 root사용자의 비밀번호를 바꾸겠다는 명령어이다.

mysql> flush privileges;

MySQL의 사용자 테이블이 변경 되었을 때 변경 사항을 저장한다.

이로써 설치와 root계정 설정이 끝이 났다.


mysql> quit


mysql 명령어 이력을 종료하고 나와서 MySQL을 재시작한다.


# service mysqld restart


재시작 후 root 계정으로 재접속 해보면 비밀번호가 바뀌어 있는것을 확인 할 수 있다.


4. 한글 설정하기.


# whereis my


위의 명령어로 MySQL의 설정 파일이 어디에 있는지를 찾아 낸다.


# gedit 검색되어나온파일경로


실행 된 에디터에 다음의 내용을 입력한다.


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
default-collation=utf8_general_ci
init_connect=set collation_connection=utf8_general_ci
init_connect=set names utf8
character-set-server=utf8
collation-server=utf8_general_ci
character-set-client-handshake=TRUE

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
max_allowed_packet=64M

[mysqldump]
max_allowed_packet=64M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


컴퓨터에 설정 된 파일 모두를 긁어다 붙인 것이니 중복 되는 부분은 빼고 넣으면 된다.


위의 설정을 바꾸기전 실행 해서 확인 하고 위의 설정으로 바꾼다음 실행해서 확인해야 할 SQL문.


mysql> show variables like 'char%';


설정하기 전과 후를 비교해보면 캐릭터 셋이 UTF8로 바뀌어 있는것을 볼 수 가 있다.


MySQL공식 홈페이지에서 파일을 다운받아 설치 하려 하다 이런 방법이 검색되어 해보니 어렵지도 않고 너무 쉬웠다.


최신버전이 5.5로 알고 있는데 최신버전이 필요 없다면 이방법도 해보길 바란다. 쉽다!!

Posted by Z700zZz
Linux2012. 6. 4. 16:44

Linux터미널에서 프로세스를 백그라운드로 실행 시키는 방법.


./프로세스명령어 &


빨간 글씨의 &기호가 핵심이다.


프로세스를 실행 시킨뒤 터미널을 못쓰는 프로그램(?)들이 있는데..


이렇게 실행을 시키면 백그라운드에서 실행이 되기때문에 터미널에서 추가적인 작업(?)을 더 가능하게 해준다.


그럼 다시 백그라운드 해제 시키는 명령어는.


우선 jobs 명령어로 백그라운드에서 실행 되는 프로세스의 번호를 확인한다음.


fg %프로세스번호


위의 명령어를 실행 시키면 백그라운드에서 실행 되던 프로세스가 포어그라운드로 원상 복구 되는걸 볼 수 있다.


Posted by Z700zZz