2015년 10월 24일 토요일

mysql transction isolation level (트렌젝션 격리 수준)



repeatable read
  • mysql에서 default로 설정되어 있는 트랜젝션 격리수준이다. 
  • 한 데이터에 대하여 데이터 트랜젝션이 수행중일 경우 읽기에 대한 접근을 할 수 있다.
  • 한 데이터에 대해 여러 트랜젝션이 동시에 진행중일 때 모든 트렌젝션이 끝날때까지 이전의 데이터를 읽을 수 있다.
    • 이점은 read commit 과 다른 점이다.
read uncommitted
  • 커밋 되지 않은 데이터 상태에서 읽을 경우 추후에 롤백이 되더라도 처리 된 부분까지의 결과를 읽을 수 있습니다. 즉, 트랜젝션 중간이라도 데이터 읽기에 대한 접근이 가능합니다.
  • dirty read라고 부르기도 한다.
read commit
  • 트랜젝션 중의 경우 커밋이 되어 있지 않다면 이전의 데이터를 읽는다는 점에서는 repeatable read와 비슷하다.
  • 여러 트랜젝션이 수행중일 경우 해당 세션에서 진행중인 트랜젝션의 범위 내에서만 적용된다.
 SERIALIZABLE
  • 가장 높은 level의 트랜젝션
  • 데이터에 대하여 트랜젝션이 수행중인 경우 읽기 쓰기 수정 삭제 모든게 불가능하다.

2015년 10월 12일 월요일

barcode 표기법 : code 128에 대하여



code 128에 대하여..

사진 출처는 언제나 위키피디아

code128은 아주 높은 정보를 집약해 놓을 수 있는 1차원 바코드 표기법이다.
즉, 적은 양의 표기로 많은 양의 정보를 보여줄 수 있다. (어디까지나 1차원 중에서..)
스마트폰의 스대가 오면서 2차원 바코드 스캐너, 즉 qr코드등의 스캔이 용이 해지면서 qr로 더욱 많은 정보를 전달하지만, 1차원 바코드가 비교적 빠르고 이미 많은 시스탬화 되어 있는 상황과 시중에 (특히 중고로 구매사용하는 상점들)은 1차원 바코드 스캐너를 이용하고 있다.  

흔히 바코드라 말하는 상품 분류코드는 ean 13으로 13자리표기로 물품을 분류관리 하고 있고 code128은 좀 다른 방식이다.

code 128의 심볼

총 108개의 문자를 표현 할 수 있다. 이중에 start symbol(3개)과 stop symbol(2개)를 제외하면 총 105개의 문자를 표현 할수 있다.
각 심볼을 구성하는 요소는 3개의 bar와 3개의 white space로 이루어져 있다.

Bar와 White Space

하나의 문자(심벌)에는 3개의 bar와 white space를 가지고 있으며 각각의 요소는 다른 두깨를 가지고 있으며 이에는 몇가지 규칙이 있다.

  • 이 두가지(bar,space)는 각각 1~4의 두깨를 가질수 있다.  
  • 하나의 symbol에서 Bar들의 두깨의 합은 짝수의 넓이를 가지고 
  • Space의 넓이들의 합은 홀수를 가져야 한다.
  • 하나의 심벌에서 모든 넓이의 값은 11의 넓이이다.(stop symbol일 경우 13)
바코드를 2진표기할때 이것을 이용한다.
예를 들어 0을 표기할때 11011001100로 표기하는데, 
순서대로 (단위: 두깨) 
  • 검은바(2) 흰공백(1) 검은바(2) 흰공백(2) 검은바(2) 흰공백(2)
가 되며 
  • 검은 바의 넓이의 합은 6(짝수)가 되며 흰공백의 넓이의 합은 5(홀수)가 된다.
  • 총 넓이의 합은 11이 된다.

Start Symbol

code128은 3가지의 code set을 사용한다. 각각 128a,128b,128c로 부른다.
이를 정의 하기 위한 symbol을 앞에 위치하게 된다. 위의 그림에서 2개의 2번영역 중 앞에 위치하게 된다.

Stop Symbol

stop심볼은 특수한 심볼이다. 다른 symbol들과는 달리 4개의 bar, 3개의 white space로 이루어져 있다. 1100011101011(2331112)로 적으며 위의 그림에서 2개의 2번영역중 뒤에 위치하게 된다. stop symbol은 아주 특수한 심벌로서 중요한 역활을 한다.
  • 바코드을 거꾸로 읽었을 경우를 인지 할 수 있다.
바로 읽을경우 2331112로 끝을 알리고 거꾸로 읽었을 경우 즉, 2111332일 경우 바코드를 반대로 읽었음을 인지하고 바로 할 수 있다.

Check digit

code 128에도 체크섬과 같은 역활을 하는 부분이 있다.
start symbol *1,과 각각의 2진비트값 * 위치 를 103으로 나눈 값을 적어 둔다.
마치 주민등록번호 유효성 검사와 같다.
위의 위치에서 4번에 위치하게 된다.

Quiet zone

바코드의 앞,뒤에 존재하게 되며, 최소한의 크기는 바코드의 내용문자의 *10의 크기를 가져야 한다. 위의 그림에서 1번에 위치하게 된다.

FUNCTION4

를 사용하면 더욱 많은 문자(특수한 문자)를 사용 할 수 있다고 한다.