본문 바로가기

전체 글97

[객체지향의 사실과 오해] 정리 및 리뷰 객체지향의 사실과 오해를 읽고 이를 정리하고자 한다.개인적으로는 매우 만족했던 도서이다. 객체지향에 대한 내 추상적인 생각을 정리해 주었고, 코드가 없음에도 이런식으로 적용해보면 좋을것 같다라는 생각을 많이 들게 해주었다. 이책은 반복된 메세지를 이야기 한다. 그만큼 해당 메세지가 중요하다는 의미이고 이 중심이 되는 이야기를 바탕으로 확장해 나간다. 이번 정리에서는 해당 메세지를 중심으로 내 생각을 정리하고자 한다. 객체지향의 핵심은 적절한 책임을 수행하는 역할 간의유연하고 견고한 협력 관계를 구축하는 것이다. [협력이라는 문맥] 객체지향을 처음 접할 때 흔히 클래스, 상속, 현실 세계의 모방 같은 단어들이 떠오른다. 하지만 이것들은 객체지향의 본질이 아니다. 이것들은 단지 객체가 제 몫을 다하고 다.. 2026. 2. 10.
트랜잭션의 격리 수준(Isolatino Levl) with Mysql과 PostgreSQL의 차이 트랜잭션의 격리 수준(Isolation Level)이란 여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것이다. 트랜잭션의 격리 수준은 격리 수준이 높은 순서대로 SERIALIZABLE, REPEATABLE READ, READ COMMITTED, READ UNCOMMITED가 존재한다. 참고로 아래의 예제들은 모두 자동 커밋(AUTO COMMIT)이 false인 상태에서만 발생한다.SERIALIZABLEREPEATABLE READREAD COMMITTEDREAD UNCOMMITED[ SERIALIZABLE ]SERIALIZABLE은 모든 격리 수준 중 가장 엄격한 단계로, 이름 그대로 트랜잭션을 마치 순차적으로 진행시.. 2026. 2. 3.
[ DB ] PostgreSQL의 MVCC와 Vacuum 이전글에서는 MySQL의 mvcc를 살펴보았습니다. 이번글에서는 PostgreSQL의 MVCC의 구현 방법과 Vacuum을 설명하겠습니다. [DB] MySQL의 MVCC와 언두 로그이전 MVCC에 대한 이야기는 이전 포스팅을 참고해주세요 [DB] 동시성 제어란? Lock의 한계와 MVCC의 등장 배경오늘은 데이터베이스의 동시성 제어에 대해 알아보겠습니다. 1. 동시성 제어란동시에 실agongstory.tistory.com 1. PostgreSQL의 MVCC PostgreSQL 에서는 record를 tuple이라고 부릅니다. PostgreSQL에서는 멀티버전에 대한 정보를 하나의 Page에서 관리하고 있습니다. 이때 데이터 페이지 내에 변경되기 이전 Tuple과 변경된 신규 Tuple을 같은 page에 .. 2026. 2. 2.
[DB] MySQL의 MVCC와 언두 로그 이전 MVCC에 대한 이야기는 이전 포스팅을 참고해주세요 [DB] 동시성 제어란? Lock의 한계와 MVCC의 등장 배경오늘은 데이터베이스의 동시성 제어에 대해 알아보겠습니다. 1. 동시성 제어란동시에 실행되는 여러 개의 트랜잭션이 작업을 성공적으로 마칠 수 있도록 트랜잭션의 실행 순서를 제어하는 기법agongstory.tistory.com 데이터베이스마다 MVCC를 구현하는 방법이 다른데 이번글에서는 MySQL을 살펴보도록 하겠습니다.InnoDB는 MySQL에서 가장 널리 사용되는 스토리지 엔진 중 하나로, 이번글에서는 MySQL의 InnoDB엔진을 사용한다고 가정하고 설명합니다. MySQL먼저 mySQL의 MVCC를 이해하기 위해서는 언두 로그(Undo Log)를 알아야만 합니다. 언두 로그란? 언두.. 2026. 2. 2.