데이터베이스 실무 응용

트랜잭션(Transaction)

데이터베이스 내에서 한번에 수행되어야 하는 연산들의 집합. 하나의 작업처리를 위한 논리적 작업 단위. 모두 완료하거나 또는 모두 취소되어야 한다.

  • 원자성(Atomicity) : 기본특성. 트랜잭션 내의 연산은 모두 수행되거나 모두 수행되지 않아야 한다.
  • 일관성(Consistency) : 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 한다.
  • 격리성(Isolation) : 독립성. 하나의 트랜잭션이 수행 중일 때는 다른 트랜잭션이 접근할 수 없다.
  • 영속성(Durability) : 지속성. 트랜잭션이 성공적으로 완료되면 결과는 지속적으로 유지되어야 한다.

회복

여러가지 요인으로 손상된 데이터베이스를 이전의 정상적인 상태로 복구시키는 작업.

  • 즉시 갱신 기법 : 변경되는 내용을 바로 데이터베이스에 적용하는 기법. 변경되는 모든 내용은 로그에 기록하여 장애 발생시 로그 내용을 토대로 회복.
  • 지연 갱신 기법 : 트랜잭션이 부분완료 될 때까지 데이터베이스에 적용하지 않고 지연시킨 후 부분완료가 되면 로그를 토대로 데이터베이스에 적용.
  • 검사 시점 기법 : 트랜잭션 실행 중간에 검사 시점(Check Point)을 지정하여 검사 시점까지 완료된 내용을 데이터베이스에 적용하는 기법.
  • 그림자 페이징(Shadow Paging) 기법 : 로그를 사용하지 않고 데이터베이스를 동일한 페이지로 나누어 페이지마다 복사하여 그림자 페이지를 보관.

병행 제어

동시에 여러개의 트랜잭션이 실행되는 경우 트랜잭션 간의 격리성을 유지하여 수행에 문제가 없도록 제어하는 것.

  • 로킹(Locking) : 주요 데이터의 액세스를 상호 배타적으로 하는 것. DB동시성으로 데이터를 잃거나 부정정 효과를 방지하기 위함.
  • 교착상태(Deadlock) : 한 트랜잭션에서 수행시간이 너무 길어 오랫동안 데이터가 LOCK된 상태가 오랫동안 지속되는 것. 공유락(읽기 허용, 쓰기 금지)과 배타락(읽기 쓰기 모두 금지)을 이용하거나, 2단계 로킹 기법, 타임 스탬프 등을 이용하여 해결할 수 있다.

보안(Security)

  • 기밀성(Confidentiality) : 허락되지 않은 사용자가 정보의 내용을 알 수 없도록 하는 것.
  • 무결성(Integrity) : 허락되지 않은 사용자나 대상이 정보를 함부로 수정, 삭제 등 변경할 수 업사도록 하는 것.
  • 가용성(Availability) : 하락된 사용자나 대상이 정보에 접근하고자 할 때 방해받지 않도록 하는 것.

암호화(Encryption) 기법을 이용한 보안

  • 대칭키 시스템 : 암호화-복호화 키가 동일한 암호 시스템. 속도가 빠르고 간단하나 키관리가 번답함. 예) DES.
  • 비대칭키 시스템 : 공개키 시스템. 암호화키(공개키)와 공개되지 않는 복호화키(비밀키)가 다름. 보안성이 좋으나 알고리즘이 복잡함. 예) RSA.

첫 캠핑을 떠나다 : 1.사이트 예약

지금 시작 안하면 평생 못해볼 것 같아, 3주만에 후다닥 준비하여 첫 캠핑을 갔다 왔습니다.

초등4학년과 2학년인 두 아들은 물론이고 40이 넘은 저도 캠핑을 가본 경험이 전혀 없었습니다. 다행히도 와이프께서 대학시절의 국토순례때 나름 수차례 실전캠핑의 경험이 있어, 주도적으로 일을 진행하였습니다.

<캠핑 사이트 예약>

일단 시작이 반이라고, 사이트를 예약해 놓으면 반강제적으로 준비를 하게되고, 결국 어떻게든지 캠핑을 가게될 것이라는 생각으로 와이프께서 예약부터 했습니다.

첫 캠핑을 위한 사이트를 고르는 조건은 다음과 같았습니다.

  • 집과 가까울 것 : 둘째가 멀미가 있어 이동하다 힘 다빠질 수 있고, 만약의 사태(?)에 돌아오기 쉬우니까….
  • 아이들이 놀 곳이 있을 것 : 수영장이나 , 놀이턴, 방방이나…뭐든 아이들 끼리만 놀 수 있는 공간이 존재해야 합니다. 첫 캠핑이라 어른에게 여유가 필요했어요..T_T
  • 차가 들어가는 오토캠핑일 것 : 여러 후기들을 살펴보니 초보캠퍼들은 차에 꽉찬 짐을 나르는 것 자체가 불가능해 보였어요.

결국 양산 근처의 라운드AUTO캠핑장을 선택했습니다. 1박 4만5천원 정도.

가장 힘든 일인 ‘시작’을 완료 하였으니 이제 절반은 성공입니다. 남은 일은 즐겁게 캠핑 물품을 지르며 준비하는 일만 남았네요.