23 Mar 2023 Java
Database Lock을 이용해 동시성 제어하기
동시성 (Race Condition)
Race Condition이란 두개 이상의 동시적인(Concurrent) 프로세스나 스레드들이 하나의 리소스에 접근하기 위해 경쟁하는 상태를 말한다.
이러한 상태가 발생했을때 자료의 일관성을 해치는 결과가 나타날 수 있다.
예를 들면 1개 남은 재고의 N개 이상의 프로세스(스레드)가 접근한다면? 겨우 1개의...
26 Feb 2023 DB
트랜잭션 전파 레벨 (Propagation)
Spring에서는 @Transaction
을 통해 DB의 Transaction을 관리 할 수 있다.
DB에서 관리하는것 외에 Spring에서 개발자들의 편의를 위해 제공하는 기술이라고 생각하면 된다.
@Transactional(propagation = Propagation.REQUIRED)
@Transaction
어노테이션에 propagation
옵션을 주어 사용할 수 있다.
<h2…
25 Feb 2023 DB
트랜잭션의 격리 수준 (Isolation Level)
이전 포스트에서 트랜잭션의 특징중 격리수준에 대해 정리해 보도록 하자
트랜잭션의 격리수준
트랜잭션의 격리수준이란, Transaction 에서 정리했던 특징중 I에 해당하는 독립성의 정도를 나타낸다.
원칙상 트랜잭션의 격리수준은 높아야 하지만, 현실적으로 성능 문제로 인해 유연하게 조절 할 수 있도록 격리...
25 Feb 2023 DB
트랜잭션 (Transaction)
요즘 재고의 동시성 이슈(Race Condition)에 관하여 공부중인데, 이중에 나온 트랜잭션의 공부가 추가로 필요할 것 같아 공부후에 기록하고자 정리를 하였다.
트랜잭션이란?
데이터베이스를 사용하는 이유는 데이터를 저장하는 것에 이유도 있겠지만, 트랜잭션이라는 개념이 있기 때문이다.
트랜잭션의 개념을 간단하게 설명하자면 데이터베이스의 상태를 변경시키기 위한 작업...
11 Feb 2023 Docker
해당 포스트는 inflearn에서 subicura님의 초보를 위한 도커 안내서의 강의를 듣고 정리한 문서입니다.
저번 포스트에는 commit하는 방법을 통해 새로운 이미지를 생성했다.
이번 포스트에는 Dockerfile을 만들어보고, build를 이용해 이미지를 생성해 보고자 한다.
Dockerfile
Dockerfile이란?
Dockerfile은 Docker의 이미지를 생성하기 위한 스크립트이다.
Dockerfile을 작성하면 작성된 한...