[서버] 단일 장애 지점(SPOF)이란?개발/Programming / 2025. 2. 20.단일 장애 지점(SPOF)이란?단일 장애 지점(Single Point of Failure, SPOF) 이란 전체 시스템에서 제대로 동작하지 않는 경우, 전체 시스템이 중단되는 특정 구성 요소를 의미합니다. 서버와 네트워크, 프로그램 등 정보 시스템이 정상적으로 사용할 수 있는 정도를 가용성(Availability) 이라고 합니다. 가용성은 정상적인 사용 시간(Uptime)을 전체 사용 시간(Uptime+Downtime)으로 나누어 구할 수 있습니다. 이때, 가용성이 99.999% 처럼 높은 경우에 고가용성(High Availability, HA) 이라 합니다. 시스템이 고가용성을 만족하기 위해서는 SPOF를 식별하고, 개선하는 작업이 필요합니다.단일 장애점은 시스템구성 요소 중에서, 동작하지 않으면 전체..
[서버] 다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제개발/Programming / 2025. 1. 6.다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우에는 세션 불일치 문제가 발생할 수 있습니다. 만약 서버 A, B를 관리하고 있을 때, 로드밸런서는 사용자의 요청을 상황에 맞게 A, B 중 한 곳으로 전달합니다. 유효한 로그인 요청이 A 서버로 처음 도착하면 사용자에 대한 세션 정보는 A 서버에 저장됩니다. 이후에 해당 사용자의 또 다른 요청이 로드 밸런서에 도착했을 때, B 서버로 도착하게 되면 사용자의 세션 데이터가 존재하지 않기 때문에 요청이 제대로 처리되지 않습니다. 이를 세션 불일치 문제라고 합니다.세션 불일치 문제는 어떻게 해결할 수 있나요? 🤔세션 불일치 문제는 크게 3가지 방식으로 해결할 수 있습니다. 스티키 세션 방식, 세션 클러스터링 방식, 스토리지 분리 방식입니다.스티키 세션..
[DB] 데이터베이스 시스템의 동시성 제어 (MVCC, Lock-Based)개발/DB&SQL / 2024. 12. 18.대표적인 동시성 제어 방식으로 MVCC(Multi-Version Concurrency Control) 와 Lock-Based Concurrency Control이 있습니다.MVCC(Multi-Version Concurrency Control)MVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식입니다. 각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않습니다.데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있습니다. 트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못합니다.또한 읽기 작업 시 잠금을 사용하지 않아 높은 동시성을 제공합니..
[JAVA] 객체복사 방법: 얕은 복사 VS 깊은 복사개발/Java / 2024. 11. 27.자바에서 객체를 복사할 때 얕은 복사와 깊은 복사라는 두 가지 방식이 있습니다. 먼저 Book과 Author라는 두 클래스를 사용해서 예제를 살펴볼게요. Book은 책의 이름(name)과 저자(author) 정보를 가지고 있고, Author는 저자의 이름을 가지고 있습니다.class Book { private String name; // 책 이름 private Author author; // 저자 public Book(String name, Author author) { this.name = name; this.author = author; } public Book shallowCopy() { // 얕은 복사 return new Book(t..
[SQL] ORACLE UNION과 UNION ALL의 차이개발/DB&SQL / 2024. 11. 20.SQL 에서 UNION/UNION ALL은 두 개 이상의 조회 결과를 하나로 합치는 연산자입니다. JOIN과의 차이점은 JOIN은 가로 방향으로 합친다면, UNION은 세로 방향으로 합칩니다.이제 UNION과 UNION ALL 두 연산자의 차이를 보겠습니다.SELECT 10 DATA FROM SYS.DUALUNION SELECT 10 DATA FROM SYS.DUALUNIONSELECT 20 DATA FROM SYS.DUAL-----SELECT 10 DATA FROM SYS.DUALUNION ALLSELECT 10 DATA FROM SYS.DUALUNION ALLSELECT 20 DATA FROM SYS.DUAL위 쿼리를 수행하면,UNION은 10과 20으로 2개 데이터만 출력됩니다. 반면, UNION ..
[Spring] @Value Annotation 사용 및 주의사항개발/Spring&JPA / 2024. 11. 14.@Value Annotation 개요Spring Framework에서 제공하는 @Value 어노테이션은 외부 설정 파일(예: application.properties 또는 application.yml)에서 값을 주입하는 데 사용됩니다. 이 외에도 주로 환경 변수, 시스템 속성 등을 주입할 수 있습니다. 일반적으로 SpEL(Spring Expression Language) 표현식이나 스타일 속성 자리표시자를 사용합니다.사용예시import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpublic class MyComponent { @Value("$..