본문 바로가기
728x90
반응형

전체 글79

[DB] 무결성과 정합성 ACID 중, Consistency는 정합성에 해당한다. 이 정합성과 무결성이 헷갈리는 거 같아서 간단하게 이를 정리하고자 블로그에 작성했다.정합성데이터들의 값이 서로 일치하는 상태정합성 훼손 예시Before주문 정보 테이블고객 번호주문 번호주문 금액....112000 123000 고객 정보 테이블고객번호고객 이름....1대우니  After주문 정보 테이블고객 번호주문 번호주문 금액....112000 123000 고객 정보 테이블고객번호고객 이름....2대우니  고객 정보 테이블의 고객번호를 1에서 2로 변경했지만, 주문 정보 테이블에는 고객번호가 변경되지 않았을 때, (데이터의 값이 서로 일치하지 않는다.)데이터 정합성이 훼손되었다고 볼 수 있다.무결성데이터 값이 컬럼 저장 조건에 알맞게 정확한 상태B.. 2024. 9. 16.
[트랜잭션] 정의 및 ACID 추석을 맞이하여 개념을 정리할 겸, DB의 꽃인 트랜잭션의 정의와 트랜잭션과 lock의 차이, 그리고 무결성과 정합성, ACID, 격리 수준, mysql 기준 MVCC 등에 대해 알아보고자 한다. 해당 블로그의 도움을 많이 받아 작성한 문서이다. https://mangkyu.tistory.com/category/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4 트랜잭션이란?시작에 앞서 트랜잭션이란 무엇일까? 트랜잭션이란 DB 상태를 변경시키기 위해 수행하는 논리적인 작업의 단위라 할 수 있다.즉, 상태 변경을 처리하기 위해 필요한 DB 연산을 모아놓은 것이다.그런데, 트랜잭션으로 묶인 작업은 하나라도 실패한다면 거래 이전으로 돌려야 하며, 모두 성공한다면 .. 2024. 9. 16.
[Spring Batch] CursorItemReader 알아보기 서론Spring Batch에서 사용되는 CursorItemReader의 코드를 확인해보면서 동작 방식과 특징에 대해 알아보고자 한다. 그리고, 대용량 데이터를 처리할 때 cursor 사용이 빠른 이유와 DB 커넥션이 길어질 때 유의 사항을 알아보고자 한다.Cursor와 Paging Cursor Item Reader대용량 데이터를 가져올 때 빠른 이유cursor는 커넥션 연결 중 한번의 SQL 문을 요청 후, 결과값을 DB 메모리에 저장하고, fetch size만큼 서버메모리에 가져오는 방식이므로 한번 정렬 쿼리하므로 커넥션 time out이 충분히 길다면 성능 측면에서 빠르다. 그러나, 몇가지 유의 사항이 있다. 대용량 데이터를 가져올 때 유의 사항connection timeout이 길어야 한다. cur.. 2024. 4. 1.
객체지향 5원칙 - SOLID 서론 객체지향에는 5원칙이 있는데, Single Responsibility, Open Close, Liscov Substitution, Interface Segregation, Dependency Inversion(SOLID)이다. 코드를 통해 해당 원칙을 살펴보도록 하자. 단일 책임 원칙(Single Responsibility Principle) 클래스는 단 하나의 책임을 가져야 하며 어떤 클래스를 변경해야하는 이유는 오직 하나뿐이어야 한다. 속성, 메서드, 패키지, 모듈, 컴포넌트, 프레임워크 등에 적용 보안 클래스에서는 두 기능을 모두 가지고 있어 단일 책임 원칙을 위반하고 있다. // 단일 책임 원칙을 지키지 않았을 때 public class Authentication { private Strin.. 2024. 4. 1.
728x90
반응형