2012년 12월 27일 목요일

MySQL innodb_flush_log_at_trx_commit 의 설정값 별 설명

MySQL의 InnoDB엔진에는 트랜잭션이 commit될 때 log buffer를 flush하고 disk 연산이 flush되는 시점을 설정하는 파라미터가 있다.

innodb_flush_log_at_trx_commit이라는 파라미터이다.

이 설정값은 0,1,2 이렇게 3가지 모드가 있으며 아래와 같은 차이점들이 있다.

설정값
설명

0
1초에 한번씩 log buffer를 log file에 기록하고 disk 연산에 대한 flush는 log file에서 일어나지만 commit 시점에서는 아무것도 일어나지 않습니다.
mysqld 프로세스가 죽으면 마지막 1초간의 트랜잭션이 유실될 수 있습니다.

1
매번 commit이 일어날 때마다 log buffer를 log file에 기록하고 disk 연산에 대한 flush는 log file에서 일어납니다.
따라서 성능이 느려지지만 full ACID를 만족하게 됩니다.

2매번 commit이 일어날 때마다 log buffer를 log file에 기록하지만 1초에 한번씩 disk 연산에 대한 flush는 log file에서 일어납니다.
(프로세스 스케쥴링 이슈로 인해 매번 1초에 한번씩 일어난다는 보장을 할 수 없습니다.)
OS가 crash되거나 파워가 나가면 마지막 1초(혹은 그 이상..)의 트랜잭션이 유실될 수 있습니다.

데이터의 유실이 없어야 하는 시스템에서는 1로 설정하여 사용해야 한다.

어느정도 데이터의 유실은 상관없는 서비스에서 성능만으로 테스트 했을 때 0 > 2 > 1 의 순서로 성능차이를 보였다.

2012년 12월 22일 토요일

Android EditText에 숫자만 입력 받기

EditText에 숫자만 입력 받기 위해서 inputType을 number로 줬지만


한/영 변환 키가 있어서 숫자 이외의 것들도 입력이 가능한 문제가 있었다.


이 때문에 inputType 속성을 phone으로 주니 숫자패드만 활성화되어 숫자만 입력 가능했다.

2012년 12월 21일 금요일

SQLite WHERE절에서의 NULL 체크

SQLite에서 WHERE절의 NULL 체크는 아래와 같이 할 수 있다.

col_name IS NULL
col_name IS NOT NULL

2012년 12월 21일 지구멸망?

그렇다..


2012년 12월 21일고대 마야 달력의 마지막 날이다..


이것 때문에 지구 종말설이 퍼져나갔고 결국 하루 전으로 다가왔다..


달력을 만들다 지쳐서 그만 뒀을 수도 있는걸..


이런식으로 종말까지 엮는 우리 모습이 우습기만 하다..ㅋㅋ


일단 내 생각은..


내일 지구가 멸망을 할려면 이미 자연 재해든 뭐든 시작이 되어야했다..


오늘부터라도 뭔가 기미가 보여야 했다는 말이다..ㅋ


암튼..멸망 같은건 없으니까 그냥 발 닦고 잠이나..-_-


 

2012년 12월 18일 화요일

12월 19일은 대통령 선거일!

"깨끗한 선거, 대한민국의 얼굴입니다.


당신의 투표가 대한민국을 만듭니다."


12월 19일은 법정임시공휴일입니다.


무작정 어디 놀러갈 생각만 하지말고 소중한 한표 행사하고 떠나세요!


아침 6시부터 시작하니까 놀러가기 전에 하면 되겠죠? ^^


 

2012년 12월 17일 월요일

Eclipse에서 android 디바이스를 찾을 수 없을 때..

어느정도 완성된 어플을 여자친구에게 설치를 해줄려고 했지만..


이클립스에서 디바이스를 찾을 수가 없었다..


개발용으로 얻어온 핸드폰도 마찬가지였다..


순간 멘붕에 빠져서 뭐가 문제지..? 라는 고민을 했지만..


해결책은 내가 부끄러울 정도로 단순한 방법이었다..


해당 핸드폰의 USB 드라이버를 설치하는 것..!


젠장..OTL

2012년 12월 14일 금요일

Android ListView의 OnItemClickListener가 반응이 없다.

언젠가부터 어플을 만들어 보고 싶다는 생각은 했지만 계기가 없었다.


누군가의 요청을 핑계삼아 책을 한권 사들고 구글링을 하며 어플을 만들기 시작했다.


단순한 기능의 어플이지만 공부한다 셈 치고 이것저것 기능을 추가하고 있다.


그러던 중 체계적인 공부나 기획 따위는 하지않고 덜컥 개발을 시작했더니 여러가지 난관이 많았다.


수정하고 수정하며 많은 공부를 하고 있다.


그런데!


맙소사..술술 잘나가던 내 진도는 한가지 기능이 먹통이 되면서 막히고 말았다.


그것은 ListView의 OnItemClickListener가 반응을 보이지 않는다는 것이었다.


나는 커스텀 ListView를 만들어서 사용하고 있었다.


(각 row는 LinearLayout에 TextView와 ImageButton으로 이루어져 있다.)


구글링을 해보니 비슷한 상황의 사람들이 많았지만..


해결책으로 나와있는 내용들을 적용시켜도 나와는 해당사항이 없었다.


(ListView가 focus를 가질 수 있도록 Item을 구성하고 있는 View들의 focusable 속성을 false로 설정하라는 것..)


혹시나 하는 마음(Button이 ListView의 focus를 뺏어가나..?)ImageButton을 제거해 보았다.


언제 그랬냐는 듯이 ListView의 OnItemClickListener가 동작했다............OTL


ImageButton을 ImageView로 변환하고 다시 진도를 나가고 있다...


이렇게 해결은 했지만 한켠으로는 찝찝한 마음이 가시질 않는다..


ListView에 관련된 문서를 다시한번 훑어봐야겠다.

2012년 12월 10일 월요일

Wordpress를 이용한 블로그 구축 완료!

이전부터 블로그에 대한 관심이 있어서 네이버, 다음, 구글, 티스토리 등을 통해 블로그를 생성한 적이 있었다.

하지만 꾸준히 운영을 하지 못하고 문을 닫고 말았다.

그러던 중 내 지식을 저장하고 공유하고자 다시 블로그에 관심을 가졌고..

회사에서 검토하고 있던 Wordpress를 통해 구축해 보자고 결심했다.

Wordpress는 서비스형과 구축형으로 나뉘어져 있었다.

서비스형이 편하지만 제약이 많아 구축형으로 결정을 했다.

구축형으로 결정을 하니 직접 저렴한 서버도 하나 구축하고 싶었지만..

유지 비용이 만만치 않아서 그냥 저렴한 호스팅 업체를 통해 구축하기로 했다.

결심이 선 김에 호스팅 업체를 통해 도메인까지 구입해 버렸다..

돈이 아까워서라도 망하지 않게..열심히 포스팅하고 운영해야겠다..ㅋ