기출 distributed system transparancy

agnusdei·2025년 5월 26일

Database

목록 보기
53/76

🔍 문제

분산 시스템에서는 사용자가 시스템이 분산되어 있다는 사실을 인식하지 못하도록 해야 한다. 이를 위해 여러 형태의 **“투명성 (Transparency)”**이 필요하다. 각 투명성의 개념과 역할을 설명하라.


✅ 결론 요약

분산 시스템은 여러 대의 컴퓨터가 하나처럼 동작하게 해야 하므로, 위치, 접근, 이주, 복제, 병행, 고장, 성능, 확장총 8가지 투명성을 제공해야 한다. 이를 통해 사용자와 개발자는 시스템이 분산되어 있다는 사실을 인식하지 않아도 된다.


✅ 1. 개념: 분산 시스템과 투명성

✅ 분산 시스템(Distributed System)

  • 네트워크로 연결된 여러 컴퓨터가 하나의 시스템처럼 동작하는 구조
  • 사용자는 하나의 일관된 시스템처럼 느껴야 함

✅ 투명성(Transparency)

  • **"보이지 않게 만든다"**는 의미
  • 시스템이 분산되어 있어도, 사용자에게는 마치 단일 시스템처럼 보이게 하기 위한 기능

✅ 2. 분산 시스템의 8가지 투명성 종류

종류이름 (한글)설명예시
1접근 투명성 (Access Transparency)리소스에 접근하는 방법이 동일하게 보이도록 함 (로컬이든 원격이든 상관없음)local 파일 read()와 remote 파일 read()가 같은 인터페이스
2위치 투명성 (Location Transparency)리소스가 어디에 있는지 사용자가 알 필요 없도록프린터가 어디에 있어도 //printer/1으로 출력
3이주 투명성 (Migration Transparency)리소스나 프로세스가 다른 위치로 옮겨져도 사용자에겐 영향 없음프로세스가 서버 간 이동해도 중단 없이 서비스됨
4복제 투명성 (Replication Transparency)복제된 리소스 중 어느 것을 사용하든 사용자는 구분하지 못함웹 서버가 여러 대 있어도 www.example.com 하나로 접속
5병행 투명성 (Concurrency Transparency)여러 사용자가 동시에 같은 리소스를 사용해도 충돌 없이 동작함여러 사용자가 동시에 데이터베이스에 접근해도 오류 없음
6고장 투명성 (Failure Transparency)일부 시스템이 실패해도 전체 서비스는 계속 동작함서버 하나가 죽어도 로드밸런서가 자동으로 다른 서버로 연결
7성능 투명성 (Performance Transparency)시스템 부하에 따라 성능 조절이 자동으로 이루어짐부하가 많을 때 서버를 자동으로 더 투입 (Auto Scaling)
8확장 투명성 (Scalability Transparency)시스템에 새로운 자원을 추가해도 사용자에겐 영향 없음노드를 10개에서 100개로 늘려도 서비스 방식은 동일

✅ 3. 구조도: 투명성의 위치 관계

[사용자]
   ↓
[응용 프로그램 인터페이스]
   ↓    ← 접근, 위치, 복제, 병행 투명성
[미들웨어/운영체제]
   ↓    ← 이주, 고장, 성능, 확장 투명성
[물리적 리소스]

✅ 4. 역할과 목적

목적설명
사용자 편의성 제공복잡한 분산 구조를 숨겨 사용자에게 단일 시스템처럼 보이게 함
시스템의 신뢰성 향상장애에 강하고 성능 유연한 구조 제공
개발 생산성 향상프로그래머가 위치, 접근 방식 등을 신경 쓰지 않고 개발 가능
유지보수/확장성 확보시스템 구조 변경에도 서비스 일관성 유지 가능

✅ 5. 어린이 버전 요약 🌱

“분산 시스템은 컴퓨터 여러 대가 같이 일하는데, 사람들은 그걸 하나처럼 느껴야 해요!
그래서 컴퓨터가 어디 있든, 몇 대든, 옮기든, 고장 나든 티 안 나게 만들어주는 걸 ‘투명성’이라고 해요!”


✅ 결론 정리

  • 분산 시스템의 핵심은 “여러 대의 컴퓨터를 하나처럼 보이게” 하는 것
  • 이를 위해 **8가지 투명성(Access, Location, Migration, Replication, Concurrency, Failure, Performance, Scalability)**을 구현해야 함
  • 사용자와 개발자 모두 분산 구조를 의식하지 않도록 만드는 것이 목적

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글