2025/12 19

격리수준

출처 쉬운코드 https://www.youtube.com/watchv=bLLarZTrebU&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=17 Dirty Read : commit 되지 않은 변화를 읽음x가 10 y가 20 이었을 때 Non-repeatable read : 같은 데이터의 값이 달라짐x는 최초에 10 Phantom read : 없던 데이터가 생김두개의 튜플이 있음 최초 t1은 v가 10 t2는 v가 50 격리수준1. Read uncommitted : 커밋되지 않은 읽기 허용2. Read commited : 커밋된 읽기만 허용 Dirty Read 까지 방지3. Repeatable read : Non-repeatable read 까지 방지4. Serial..

데이터베이스 동시성제어 (2)

회복불가능한 스케줄스케줄 내에서 커밋된 트랜잭션이 롤백된 트랜잭션이 write 했었던 데이터를 읽은경우롤백을해도 이런 스케줄은 이전 상태로 회복 불가능할 수 있기 때문에 이런 스케줄은 dbms에서 허용하면안됨회복가능한 스케줄스케줄 내에서 어떤 트랜잭션도 자신이 읽은 데이터를 write한 트랜잭션이 먼저 커밋/롤백하기 전까지는 커밋하지 않는 경우캐스캐이딩 롤백하나의 트랜잭션이 롤백하면 의존성이있는 다른 트랜잭션도 롤백하는 것여러 트랜잭션의 롤백이 연쇄적으로 일어나면 처리하는 비용이 많이 듬캐스캐이드리스 스케줄스케줄 내에서 어떤 트랜잭션도 커밋되지않은 트랜잭션들이 write한 데이터를 읽지않은 경우 하지만 읽기작업이 없을시 일부 트랜잭션의 결과가 무효화될 수 있음엄격한 스케줄스케줄 내에서 어떤 트랜잭션도 커..

데이터베이스 동시성 제어 (1)

스케줄은 여러 트랜잭션이 동시에 실행될때 각 트랜잭션에 속한 명령의 실행순서시리얼 스케줄 (순차 스케줄) 트랜잭션들이 겹치지않고 한번에 하나씩 실행되는 스케줄비정상데이터가 생길일은 없지만 한번에 하나씩 실행되어서 성능이 안좋음 현실적으로 안쓰임I/O 작업이 끝날때까지 CPU가 대기논시리얼 스케줄 (비 순차 스케줄) 트랜잭션들이 겹쳐서(인터리빙) 되어 실행되는 스케줄I/O 작업이 끝나지않아도 다른 트랜잭션 실행 CPU 놀지않음같은시간동안 더 많은 트랜잭션 처리가능비정상데이터 생길 가능성있음논시리얼 스케줄에서 성능을 챙기는 방법Conflict란두가지의 명령이 있을때1. 각 명령이 서로 다른 트랜잭션이다2. 같은 데이터에 접근한다3. 최소하나는 write명령이다세가지를 만족하면 두 명령은 컨플릭트하다 라고함컨..

SOILD

SRP 단일책임원칙 - 클래스는 하나의 역할만해라OCP 개방폐쇄원칙 - 인터페이스 하나에 구현체 여러개 만들어서 갈아끼워라 확장할때는 기존코드 건들면 안된다 구현체를 새로만들어라LSP 리스코프치환원칙 - 자식은 부모 말 잘들어야한다. 부모의 역할 범위는 넘지말아라 잘 안될거같으면 엄마 아빠 부모 만들어서 한사람 말만 들어라ISP 인터페이스분리원칙 - 인터페이스에 역할 짬뽕 되어있으면 클래스들도 망한다(SRP) 인터페이스도 역할 분리해라DIP 의존역전원칙 - 인터페이스에 의존해라 구현체ㄴㄴ 테스트할때 바꿀거 많다추가IOC 제어의역전 - 매개변수를 받으면 역전당한거다 외부에서 주입해주니까 스프링의 경우 컨테이너

객체지향 2025.12.21

의존관계 주입

구체적인 의존 오브젝트와 그ㅡㄱ거슬 사용할 주체라고 불리는 오브젝트를 런타임시에 연결해주는것 3가지를 충족해야함 1. 클래스나 코드에는 런타임 시저의 의존관계가 드라나지않음 인터페이스에 의존해야함 2. 런타임 시점 의존관계나 컨테이너와 팩토리같은 제3의 존재가 결정 3. 의존관계는 상용할 오브젝트의 참조를 외부에서 제공해줌

객체지향 2025.12.21

싱글톤 패턴

어떤 클래스를 애플리케이션에서 제한된 인스턴수 개수 또는 하나만 존재하도록 강제함 이렇게 만들어지는 클래스의 오브텍트는 애플리케이션 내에서 전역적 접근가능 단일 오브젝트만 존재해야하고 이것을 애플리켕션의 여러 곳에서 공유하는 경우에 사용 만드는법 생성자 private 자신과 같은 타입의 스택틱 필드 정의 생성된 싱글톤 오브젝트 저장위함 스태틱 팩토리 메소드 생성 이미 만들어진 옺브젝트 넘겾ㅁ 단점 테스트하기 어려움 서버환경에서 하나만 만들어지는것을 보장못함 private 생성자라 상속 불가 어디서든 스택틱 메소드로 접근이 가능하여 전역 상태가 될수있음

디자인패턴 2025.12.21