NakNak's Blog

[DB] DB Lock

서론 트랜잭션 격리 수준에서 각 트랜잭션끼리 서로 어떤 기준으로 격리되어야하는 지 알아보았다. 트랜잭션 격리 수준이란 여러 트랜잭션이 동시에 테이블, 레코드를 접근하지 못하도록 막는 규칙을 의미한다. 그렇다면 Lock은 무엇일까? 트랜잭션 격리 수준이라는 규칙을 구현할 수 있으며, 여러 커넥션에서 동시에 변경할 수 없도록 데이터를 잠금하는 기법...

[DB] 트랜잭션 격리 수준

서론 트랜잭션에 대한 개념과 특징, 상태에 대해 지난 포스팅에서 알아보았다. 트랜잭션의 특징 중 I에 해당하는 isolation(격리성)은 트랜잭션 수행 시에 서로 끼어들면 안된다는 것을 말한다. 데이터베이스는 여러 사용자가 같은 데이터에 접근할 수 있어야 한다. 순차적으로 접근할 수 있다면 쉽게 구현할 수 있겠지만 성능이 나쁠 것이다. 트랜잭션 ...

[DB] 인덱스

공부하게 된 배경 최근에 기술 면접에서 DB의 인덱스에 대한 질문을 받았는데 DB 조회 성능을 개선할 당시에 나는 현업에서 사용하지 않았었다. 면접관 분은 당연히 인덱스를 이용해보았을 거라고 생각하셨지만 인덱스에 대해 깊이 알고 있지 못했고 이미 100만 건 이상의 데이터가 있어서 인덱스를 새로 설정하는 데에 시간이 오래 걸릴 것이라 생각했다. 하지...

[디자인 패턴] 프록시와 프록시 패턴

Spring의 AOP(관점 중심 프로그래밍)에서 프록시와 프록시 패턴이 사용되는데, 프록시와 프록시 패턴이라는 디자인 패턴에 대해 공부하기 위해 기록한다. 프록시란? 프록시(Proxy)를 번역하면, 대체자, 대리자, 위임과 같은 키워드가 등장한다. 그리고 대리자는 누군가의 일을 대신해서 수행하는 사람을 의미한다. 이 부분은 프로그램에서 프록시를 통...

[Java] Java 에서 비트마스킹을! - BitSet

BitSet Java로 ‘비트마스킹’을 이용해 알고리즘 문제를 해결할 때 비트 관리를 편하게 할 수 없을까 하다가 찾은 라이브러리이다. 패키지는 java.util.BitSet 이다. BitSet 은 비트들로 이루어진 vector로, boolean 배열처럼 이용할 수 있다. 그리고 대량의 이진 데이터를 효율적으로 다룰 때에 유용하다. 여러 비트를 한...

[디자인 패턴] 싱글톤 패턴

책 ‘면접을 위한 CS 전공노트’ 중에서 공부하고 싶었던 부분에 대해 요약 정리한 글이다. 이번에는 디자인 패턴 중에 DB 모듈 클래스에 많이 쓰이는 싱글톤 패턴을 깊게 보고, 라이브러리, 프레임워크에 대한 용어 정리를 간단하게 하고자 한다. 0. 사전지식 라이브러리 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것. ...