분산 환경과 서비스

Technology

여러 서버에 걸쳐 동작하는 웹 애플리케이션 개발 시 고려사항

분산 환경 고려사항

  1. 성능과 확장성

    • 로드 밸런서를 통한 트래픽 분산
    • 필요 시 서버 수평 확장 (Scale-out) 설계
  2. 데이터 일관성과 동기화

    • 데이터베이스 동기화, 캐싱 전략
    • 분산 트랜잭션 → 2PC
  3. 보안과 인증

  4. 네트워크 지연과 대역폭

    • CDN 활용으로 정적 리소스 빠른 제공
    • 최적화된 프로토콜 선택
  5. 분산 시스템 아키텍처

  6. 모니터링과 로깅

    • 서버 상태, 트래픽, 오류 로그 모니터링
    • DevOps 참조
  7. 클라우드 서비스 활용

    • AWS, Azure, Google Cloud

SOA (서비스 지향 아키텍처)

비즈니스 애플리케이션을 독립적인 서비스 단위로 구성하는 소프트웨어 개발 방식

주요 이점

  • 출시 기간 단축: 서비스 재사용으로 빠른 어셈블
  • 효율적인 유지 보수: 개별 서비스 수정이 전체에 영향 없음
  • 더 뛰어난 적응성: 기술 변화에 유연한 대응

기본 원칙

원칙 설명
상호 운용성 플랫폼/언어와 무관한 서비스 간 상호작용
느슨한 결합 서비스 간 강한 의존성 없이 독립적으로 동작
추상화 클라이언트가 내부 구현을 몰라도 서비스 사용 가능
세분화 각 서비스는 하나의 개별 비즈니스 기능만 수행

웹 서비스

네트워크 상에서 서로 다른 종류의 컴퓨터들 간의 상호작용을 위한 소프트웨어 시스템

  • 주요 표준: SOAP, WSDL, UDDI
  • 느슨한 연결(loose coupling), XML 기반 메시징
  • 최근에는 REST 스타일 웹 서비스가 주류
  • 웹 서비스 조합으로 애플리케이션 구축 → 매시업(Mashup)

관련 노트