Post

2025-05-19-TIL

Today I Learned

주말간의 바쁜 시간들을 보내고 드디어 다시 평일이 되었다. 공부를 하고자하는 의지가 강할때 하필이면 더 바쁜 상황이 생기는 것 같다. 아니면 반대로 바쁘고 공부하기 어려운 환경이라서 더욱 의지가 생기는 것일수도 있다.

Today I Interview

단일 장애 지점(SPOF)이란 무엇인가요?

단일 장애 지점(Single Point of Failure, SPOF) 이란 전체 시스템에서 제대로 동작하지 않는 경우, 전체 시스템이 중단되는 특정 구성 요소를 의미합니다. 서버와 네트워크, 프로그램 등 정보 시스템이 정상적으로 사용할 수 있는 정도를 가용성(Availability) 이라고 합니다. 가용성은 정상적인 사용 시간(Uptime)을 전체 사용 시간(Uptime+Downtime)으로 나누어 구할 수 있습니다. 이때, 가용성이 99.999% 처럼 높은 경우에 고가용성(High Availability, HA) 이라 합니다. 시스템이 고가용성을 만족하기 위해서는 SPOF를 식별하고, 개선하는 작업이 필요합니다.

다음과 같은 상황에서 SPOF를 식별하고 개선해 주세요.

  1. API Server 1대를 운용합니다.
  2. DB는 Master Replica 구성을 사용합니다.
  3. Master DB는 1대이며, 3대의 Replica DB를 사용하고 있습니다. (Failover는 지원됩니다.)

현재 서버는 단일 서버로 구성되어 있습니다. OOM(Out Of Memory), 네트워크 장애, 자원 고갈, 하드웨어 장애와 같은 문제가 발생할 경우 서버의 고장이 전체 시스템의 고장으로 이어질 수 있습니다.

이 문제를 개선하기 위해서 서버를 이중화하고, 로드 밸런서를 사용할 수 있습니다. 이중화는 동일한 애플리케이션을 여러 서버에 배포하여 한 서버가 다운되더라도 다른 서버가 서비스를 제공할 수 있도록 합니다. 로드 밸런서는 서버에 들어오는 트래픽을 여러 서버로 분산시켜주는 역할을 합니다. 만약, 특정 서버가 고장나는 경우에는 로드 밸런서에서 해당 서버로 향하는 요청을 다른 정상 서버로 전달합니다.

서버를 이중화할 때 점검해야 하는 부분들은 무엇인가요?

서버를 이중화할 때 점검해야할 지점들은 애플리케이션 특성에 따라 상이합니다. 대표적으로 점검해야할 부분들은 동시성 문제, 세션 불일치 문제, 로그 및 메트릭 수집, 로드 밸런싱 알고리즘, 배포 등이 있습니다.

  • 애플리케이션 내부에서 동시성 문제를 해결하기 위한 코드가 이중화 환경에서도 안전하게 작동하는지 점검해볼 필요성이 있습니다. 예를 들어, 단일 서버인 경우에는 자바의 synchronized, ReentrantLock을 사용하여 멀티 스레드 환경에서 동시성 문제를 해결 할 수 있었습니다. 하지만, 이중화된 환경에서는 해당 방법들이 제대로 동작하지 않을 가능성이 매우 높습니다. 이 경우, 분산 잠금이나 DB 잠금(-> DB는 보통 단일 구성이므로)을 사용하는 것이 적절할 수 있습니다.
  • 만약 서버에서 세션 기반 인증을 사용하고 있다면, 세션 불일치 문제를 겪을 수 있습니다. 이 경우, 세션 클러스터링이나 스티키 세션, 토큰 기반 인증, 외부 세션 저장소 등을 고려해야합니다.
  • 서버에서 생성되는 로그와 메트릭 데이터가 여러 서버에 걸쳐서 쌓이게 됩니다. 해당 데이터를 시각화하여 한눈에 확인하기 위해서는 각 서버에서 발생되는 데이터를 수집 및 통합하여 관리할 필요성이 생깁니다.
  • 적절한 로드 밸런싱 알고리즘을 선택해야할 필요성이 있습니다. 비효율적인 로드 밸런싱 알고리즘을 사용한다면, 한 서버에만 요청이 몰려서 이중화와 로드 밸런싱을 적용한 의미가 퇴색될 수 있습니다.
  • 서버 배포에 대해서 고민해볼 필요성이 있습니다. 서버가 늘어날 수록, 동일한 서비스의 다양한 버전이 운영될 수 있으며, 배포 시간이 증가하거나 배포 중 장애에 대한 대응이 복잡해질 수 있습니다.

추가 학습 자료를 공유합니다.

Today I Read

📰 ‘일 잘한다’ 칭찬 받는 사람들의 공통점

구분내용
✍️ 요약 
💡 배운 점 
🔍 더 알아보고 싶은 것 
🧠 내 생각 
✅ 실천 아이디어 

📖 살인자의 쇼핑몰 1 / 강지영

구분내용
📅 읽은 기간2025. 4. 24
✍️ 한 줄 요약 
💬 인상 깊은 문장 
💡 배운 점 / 느낀 점책이 짧고 쉽게 읽혀서 가볍게 즐길 수 있었다.
⭐️ 별점 (1~5)⭐️⭐️⭐️⭐️⭐️
🔁 다시 읽고 싶은가?간만에 도서관에서 예전에 읽었던 책들의 제목들을 보는데, 신기하게도 내용이 완벽히 기억나지 않는것도 많았다. 그때쯤에 이 책도 다시 한 번 읽어보고싶다.
This post is licensed under CC BY 4.0 by the author.