[서버] 단일 장애 지점(SPOF)이란?개발/Programming / 2025. 2. 20.단일 장애 지점(SPOF)이란?단일 장애 지점(Single Point of Failure, SPOF) 이란 전체 시스템에서 제대로 동작하지 않는 경우, 전체 시스템이 중단되는 특정 구성 요소를 의미합니다. 서버와 네트워크, 프로그램 등 정보 시스템이 정상적으로 사용할 수 있는 정도를 가용성(Availability) 이라고 합니다. 가용성은 정상적인 사용 시간(Uptime)을 전체 사용 시간(Uptime+Downtime)으로 나누어 구할 수 있습니다. 이때, 가용성이 99.999% 처럼 높은 경우에 고가용성(High Availability, HA) 이라 합니다. 시스템이 고가용성을 만족하기 위해서는 SPOF를 식별하고, 개선하는 작업이 필요합니다.단일 장애점은 시스템구성 요소 중에서, 동작하지 않으면 전체..
[DB] 데이터베이스 시스템의 동시성 제어 (MVCC, Lock-Based)개발/DB&SQL / 2024. 12. 18.대표적인 동시성 제어 방식으로 MVCC(Multi-Version Concurrency Control) 와 Lock-Based Concurrency Control이 있습니다.MVCC(Multi-Version Concurrency Control)MVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식입니다. 각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않습니다.데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있습니다. 트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못합니다.또한 읽기 작업 시 잠금을 사용하지 않아 높은 동시성을 제공합니..
[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("$..
[이펙티브 자바] 생성자 대신 Static Factory Method를 고려하라개발/Java / 2024. 11. 8.Item 1. 생성자 대신 정적 팩토리 메서드를 고려하라정적 팩토리 메서드(Static Factory Method)는 클래스에 정적 메서드를 정의하고, 생성자 대신 객체를 생성할 수 있게 만드는 기법입니다. 간단하게 정리하면 Method 호출 방식으로 객체를 생성하는 것입니다.대표적인 예로 Java의 Wrapper 클래스에서 사용되는 것을 확인할 수 있습니다. 그중 하나인 Boolean은 다음과 같은 API를 제공합니다.public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;} public static void main(String args[]) { Boolean bool1 = new Boolean(true..
[회고] 라이브 코딩 면접 후기글쓰기/회고 / 2024. 2. 14.신선했던 면접 경험 최근 좋은 기회로 라이브 코딩 면접을 보게 되었습니다. 이제까지 코딩 테스트, 기술 면접, 과제 제출 방식은 경험해 봤으나, 라이브 코딩은 처음 접하는 방식이었습니다. 알고 보니 면접관이 보는 앞에서 코드를 직접 작성하며, 문제를 해결하는 테스트였습니다. 이러한 유형은 주로 소통 역량, 문제 해결 방법과 여러모로 회사와 핏이 맞는지 확인하는 목적이 크다고 합니다. (실제로 면접을 진행한 회사도 그러했습니다.) 저는 협업과 코드리뷰를 많이 해봤기 때문에 커뮤니케이션에 자신도 있었고, 평소 하던 대로 하면 되겠다고 생각하여 긴장을 덜하게 되었습니다. 라이브 코딩 주제는 '369 게임 만들기'였습니다. 알고리즘 구현일 거라 생각했지만, 주제 자체는 예상보다는 어렵지 않았습니다. 더 나아가 ..
[프로그래머스/JAVA] Level 2, 땅따먹기개발/DS&Algorithms / 2023. 5. 22.https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 문제의 자세한 내용은 링크를 확인해 주세요. (Nx4) 크기의 이차원 배열에서 마지막 행까지 모두 내려왔을 때 얻을 수 있는 점수의 최댓값 구하기 단, 같은 열을 연속해서 밟을 수 없습니다. 제한사항 행의 개수 N : 100,000 이하의 자연수 열의 개수는 4개이고, 땅(land)은 2원 배열로 주어집니다. 점수 : 100 이하의 자연수 문제 풀이 1. 첫 번째 풀이, 잘못된 접근 (..