DB

    DB Replication

    들어가며 현재 요즘카페 팀의 DB는 서버와 같은 EC2에 존재하기 때문에 SPOF가 있어서 이를 제거하고자 하였다. 그러기 위해 DB를 다른 서버에 두기로 하였다. 이 과정에서 요즘카페 는 조회가 빈번하게 발생하고, 조회 도중에도 시청하지 않은 카페를 삽입해주는 로직이 실행되기 때문에 조회와 삽입을 DB Replication을 통해 성능을 향상시키고자 하였다. Replication 한 서버에서 다른 서버로 데이터가 동기화 되는 것을 의미한다. 원본 데이터를 가진 소스서버에서 변경이 발생하면 복제 데이터를 갖는 레플리카 서버에는 이러한 변경 내역을 토대로 레플리카 서버의 데이터로 반영한다. 이 Replication을 하는 다양한 이유가 존재하는데 스케일 아웃: 서버 분리로 트래픽 분산 데이터 백업: 레플리..

    [Database] 스프링과 트랜잭션

    들어가며 트랜잭션이란 DB에서 하나의 기능을 수행하기 위한 작업의 단위 이다. 여러 쿼리들을 하나로 묶는 단위이다. 커밋이 되었다 == 하나의 트랜잭션이 성공적으로 수행되었다. 트랜잭션 정의 이유 DB에서 데이터를 다룰때 장애가 일어날 때 데이터를 복구하는 작업의 단위 여러 작업 동시에 같은 데이터를 다룰 때 작업을 서로 분리하는 단위가 됨 트랜잭션은 전체가 수행되거나 전혀 수행되지 않아야함 (ALL OR NOTHING) 트랜잭션의 ACID 특징 원자성 일부만 수행되는 일이 없도록 전부 수행되거나 아예 수행되지 않아야함 all or nothing일관성 트랜잭션은 db의 일관성을 유지해야함 일관성 트랜잭션을 수행하기 전이나 수행한 후나 db는 항상 일관된 상태를 유지해야함 일관 되게 조건,규칙에 유효해야함..

    [Database] 정규화 과정

    들어가며 잊고 있던 정규화 과정을 다시한번 기억해보며 .. 회사에서는 2단계 이상하면 많이한거랬나.. 3단계였나 기억이안나네 정규화 과정 릴레이션 (테이블) 간 잘못된 종속 관계로 DB 이상현상이 발생한다. 이를 해결하거나 저장공간을 효율적으로 사용하기 위해 릴레이션을 여러개로 분리하는 과정이다. DB 이상현상이란 ? 삭제 이상 내가 원하는 값만 테이블에서 삭제하고 싶은데, 하나의 튜플이 삭제를 원하지 않는 속성값도 갖고 있기에 같이 지워져서 발생하는 문제 삽입 이상 내가 원하는 값만 테이블에 삽입하고 싶은데, 테이블에 필요하지 않은 필드들 때문에 원치 않는 필드의 값도 삽입해야 하는 경우 발생하는 문제 ex) null 수정 이상 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어..