전체 글 (322) 썸네일형 리스트형 [Network] 멱등성이란? 멱등성(Idempotency)어떤 연산을 여러 번 실행해도 결과가 같음을 보장하는 성질을 말한다.쉽게 말해, "한 번 실행한 것과 여러 번 실행한 것이 같은 효과를 낸다"는 뜻"책상이 어지럽혀져 있을 때 정리하는 것" → 멱등하지 않음. (처음과 나중 상태가 다름.)"이미 정리된 책상을 다시 정리하는 것" → 멱등함. (반복해도 상태가 변하지 않음.) 예시 1: 전등 스위치 켜져 있는 전등을 다시 "켜기" 스위치를 눌러도 상태는 변하지 않는다.반대로, 꺼져 있는 전등을 "끄기" 스위치를 누른다고 상태가 변하지 않는다.따라서, "켜기"나 "끄기" 연산은 멱등하다.예시 2: 문 잠그기 문이 이미 잠겨 있다면, "잠그기" 동작을 여러 번 해도 결과는 같다.따라서, "잠그기" 연산은 멱등하다.예시 3: 웹 .. [DB] Soft Delete VS Hard Delete Soft Delete데이터를 실제로 삭제하지 않고, 삭제된 것처럼 표시만 하는 방식보통 is_deleted와 같은 플래그를 추가해 이를 관리합니다.특징:데이터는 여전히 저장소에 남아 있음."삭제됨" 상태를 나타내는 플래그를 이용.데이터를 복구하거나 기록을 추적할 수 있음.장점복구 가능: 실수로 삭제한 데이터를 복구할 수 있음.이력 관리: 데이터의 삭제 여부를 기준으로 과거 기록 확인 가능.참조 데이터 보호: 외래 키 제약 조건을 위반하지 않고 삭제 처리 가능.단점스토리지 증가: 삭제된 데이터를 계속 저장하기 때문에 데이터베이스 크기가 커질 수 있음.복잡한 쿼리: "삭제되지 않은 데이터"를 조회하려면 조건을 추가해야 함 (WHERE is_deleted = false).성능 저하: 많은 "삭제된" 데이터를 .. [DB] 트랜잭션 ACID 트랜잭션단일한 논리적인 작업 단위논리적인 이유로 여러 SQL 문들을 단일 작업으로 묶어서 나눠질 수 없게 만든 것이 트랜잭션이다.트랜잭션의 SQL 문들 중에 일부만 성공해서 DB에 반영되는 일은 일어나지 않는다.둘 다 정상 처리되어야만 성공하는 단일 작업 일반적인 트랜잭션 사용 패턴트랜잭션을 시작한다.데이터를 읽거나 쓰는 등의 SQL문들을 포함해서 로직을 수행한다.일련의 과정들이 문제없이 동작했다면 트랜잭션을 커밋한다.중간에 문제가 발생했다면 트랜잭션을 롤백한다.트랜잭션이 가져야 할 속성 (ACID)AtomicityConsistencyIsolationDurabilityAtomicity(원자성)ALL or Nothing트랜잭션은 논리적으로 쪼개질 수 없는 작업 단위이기 때문에 내부의 SQL문들이 모두 성공.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 108 다음