'2009/02'에 해당되는 글 5건
dbcp와 c3p0 커넥션 풀 유지하기 :: 2009/02/17 18:09
JDBC 커넥션 풀을 지원하는 대표적인 오픈소스 중에 아파치 DBCP와 C3P0가 있다. 이들은 Spring, Hibernate 등과 통합되어 DB 커넥션 풀을 제공하는 DataSource를 구성하여 자주 쓰인다.
오라클이나 MySQL 등 DBMS들은 기본적으로 특정 시간동안 실행이 없으면 해당 세션을 종료하게 된다. 이렇게 종료된 커넥션은 어플리케이션에서 오류를 발생시키게 되므로 커넥션을 유지하기 위한 별도 설정을 필요로 하게 된다. 커넥션을 얻어올 때 커넥션 테스트를 수행하고 실패하면 새로운 커넥션을 생성할 수 있다. 또한 idle 타임에 주기적으로 커넥션 테스트를 수행할 수도 있다.
아래는 dbcp를 이용하여 구성한 스프링 DataSource 설정의 예이다.
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="defaultAutoCommit" value="true"/>
<property name="initialSize" value="5"/>
<property name="maxActive" value="30"/>
<property name="maxIdle" value="5"/>
<property name="maxWait" value="30000"/>
<property name="validationQuery" value="SELECT 1 FROM DUAL"/>
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="false"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="60000"/>
</bean> |
아래는 c3p0를 이용하여 구성한 스프링 DataSource 설정의 예이다.
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="org.gjt.mm.mysql.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost/testdb" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialPoolSize" value="5" />
<property name="maxPoolSize" value="30" />
<property name="minPoolSize" value="5" />
<property name="acquireIncrement" value="3" />
<property name="acquireRetryAttempts" value="30" />
<property name="acquireRetryDelay" value="1000" />
<property name="idleConnectionTestPeriod" value="60" />
<property name="preferredTestQuery" value="SELECT 1" />
<property name="testConnectionOnCheckin" value="true" />
<property name="testConnectionOnCheckout" value="false" />
</bean> |
참조:
- DBCP Configuration: http://commons.apache.org/dbcp/configuration.html
- C3P0 Configuraion: http://www.mchange.com/projects/c3p0/index.html
파일 퍼미션 chmod & umask :: 2009/02/11 18:23
유닉스에서 파일 퍼미션을 제어하는 명령어들이다.
chmod
유닉스에서 파일 퍼미션을 변경할 때 사용하는 명령어이다.
- 퍼미션 대상: user, group, others --> u, g, o
- 접근 유형: read, write, execute --> r, w, x
퍼미션 값은 기본적으로 3자리 숫자로 표기되며, 각 자리수는 첫번째는 소유자, 두번재는 사용자 그룹, 세번째는 다른 사용자들을 의미한다.
각 숫자는 접근 유형의 조합에 따라 0~7까지의 값을 가질 수 있다. 권한을 부여할 때 각 접근 유형의 값을 더한(ADD) 값을 사용한다.
- Read = +4
- Write = +2
- eXecute = +1
파일에 대한 접근 권한을 소유자에게 rwx, 사용자그룹에 rwx, 다른 사용자에게 r-x 로 퍼미션을 부여할 경우 명령은 다음과 같다.
$> chmod 775 파일명
또는
$> chmod a+rwx 파일명 (주의: a = all)
$> chmod o-w 파일명
umask
유닉스상에서 파일이나 디렉토리가 생성될 때 디폴트로 적용되어지는 파일 퍼미션을 셋팅하기 위한 명령어이다. chmod와 셋팅 방법은 유사한데, umask는 각 접근 유형 값을 7에서 뺀(SUBTRACT) 값을 사용한다.
- Read = -4
- Write = -2
- eXecute = -1
기본으로 생성되는 파일이나 디렉토리 퍼미션 값을 775로 셋팅할 경우 다음과 같다.
7 = rwx --> 7 - 4(r) - 2(w) -1(x) = 0
5 = r-x --> 7 - 4(r) -1(w) = 2
따라서
$> umask 002
Chmod Calculator
데스크탑 컴퓨터 조립 :: 2009/02/06 13:54
| 구분 | 제품 | 비고 |
| CPU | [인텔] 코어2듀오 E8400 (울프데일/3.0Ghz) | |
| MOTHERBOARD | [기가바이트] GA-EP45-UD3R | 랜/사운드카드 |
| VIDEO CARD | [렉스텍] GeForce 9600GT 512MB 블랙라벨 쿨러마스터 | |
| RAM | [삼성전자] 삼성전자 DDR2 2G PC2-6400 | 4G |
| HDD | [삼성전자] HD103UJ (1T/32M/SATA2) | 1000G |
| ODD | [삼성전자] SH-S223Q 블랙 | LightScribe |
| CASE | [다오코리아] F2 UV 블루 | 파워 별도 |
| POWER | [스카이디지탈] PS2-500EF 80PLUS | 110V/220V |
| READER | [세마] SFD-321F/T51 90 in 1 멀티리더기 | |
| MONITOR | [삼성전자] 싱크마스터 2433BW | 24인치/1920x1200 |
<구입 후기>
- 만족스런 제품: 마더보드, 파워, 하드디스크, LCD 모니터
- 불만족스런 제품: 그래픽카드 --> 칩셋은 좋으나 쿨러 소음이 너무 심함. 드라이버를 깔면 좀 낫지만 그래도 소음의 주원인.
- 기타: 카드 리더기를 설치하니 탐색기에 "Removable Disk"가 5개나 보임.
vi 텍스트 검색 및 치환 :: 2009/02/03 17:01
/foo --> 문자열 'foo'를 위에서 아래로 찾음
?foo --> 문자열 'foo'를 아래에서 위로 찾음
n (소문자 n) --> 위에서 아래로 계속 찾음
N (대문자 n) --> 아래에서 위로 계속 찾음
2. 문자열 바꾸기 (치환)
%s/foo/bar --> 문자열 'foo'를 문자열 'bar'로 바꿈
%s/foo/bar/c --> 문자열을 바꿀 때 확인함 (y는 바꿈, n은 취소)
%s/foo/bar/i --> 문자열의 대소문자를 구분하지 않음
%s/foo/bar/g --> 문서 내의 모든 문자열을 한꺼번에 바꿈
%s/foo/bar/gi --> 문서 내의 모든 문자열을 대소문자 구분없이 한꺼번에 바꿈
3. 텍스트 문서 라인 끝의 ^M 문자 없애기
%s/^M//g --> ^M은 Ctrl+V+M 으로 입력
Firefox Add-on: Live HTTP Headers :: 2009/02/03 15:02
Firefox Add-on인 Live HTTP Headers를 이용하여 브라우저를 통한 HTTP 요청/응답 헤더를 모니터링할 수 있다.


