실시간 시스템


  1. 엄격한 마감시간이 요구되는 특수한 분야를 위해 발전시킨 기술
  2. 2가지 분류
    • 경성 실시간성(hard real-time)
      • 지정한 응답 시간을 정확히 지키는 시스템
      • 데드라인 위반사건 발생시 재앙적 사건이 발생 - 항공기/미사일 제어, 원자력 발전소
      • 데드라인을 100% 준수한다는 것을 증명해야 함
      • 운영체제의 크기가 아주 작다 - 증명을 위해
    • 연성 실시간성(soft real-time)
      • 지정한 응답 시간을 최대한 지키지만 융통성이 어느 정도 허용된 시스템
      • 데드라인 위반 시 재앙까지는 야기하지 않음 - 동영상 처리
      • 데드라인 만족 여부는 보통 확률로 제시
      • 실시간 작업과 일반 작업 간의 우선순위 제어로 해결
    • WCET(Worst Case Execution Time)
      • 데드라인 이전에 반드시 수행 시켜야 할 작업을 수행하는데 걸리는 최대 소요시간
  • 시분할 시스템과의 차이
    • 실시간 시스템의 경우 아래 사진에서처럼 마감시간이 b라면, 아무리 늦더라도 Program1이 c시점엔 스케줄링이 마무리 되어야 하고, 그에 따라 Program2가 스케줄링 당해야 실행되지 않는다.
    • 시분할 시스템의 경우 타임 슬라이스가 끝날 때 마다 스케줄링을 실행하고, c 시점에 우선순위에 따라 프로그램이 실행된다.

      Untitled


클라우드 컴퓨팅


  1. 하드웨어적 컴퓨팅 환경 통합(그리드 컴퓨팅) + 소프트웨어적 컴퓨팅 환경 통합(SaaS)
  2. IT를 구매하는 대신 임대하는 방식
  • 장점
    • 서버 구매 시 고려해야 할 전력, 위치, 확장성 고민x
    • 서버 세팅과 관련하여 신경쓰지 않고 서비스 운영에 집중 가능
    • 사용한 만큼 비용 지불하기 때문에 서비스 운영에 있어 효율성 증대
  • 제공 형태
    • 퍼블릭 클라우드
      • 특정 기업이나 사용자를 위한 서비스가 아닌 인터넷에 접속 가능한 모든 사용자를 위한 클라우드 서비스 모델
      • 클라우드 서비스 제공자(CSP)가 관리
      • 사용자 별로 권한 관리 가능, 서비스 사용자 간의 간섭 없음
    • 프라이빗 클라우드
      • 제한된 네트워크 상에서 특정 기업이나 특정 사용자만을 대상으로 하는 클라우드
      • 서비스의 자원과 데이터 기업 내부에 저장
      • 자원 제어권 기업 소유
      • 보안성 우수, 클라우드 기능 커스텀마이징 가능
    • 하이브리드 클라우드
      • 퍼블릭 클라우드 + 프라이빗 클라우드 병행
      • 클라우드(가상서버) + 온프레미스(물리서버) 결합 형태로 보기도 함
      • 두 클라우드의 장점을 함께 취할 수 있음
  • 서비스 유형
    1. IaaS
      • 서비스로서의 인프라
      • 사용자가 관리할 수 있는 범위가 가장 넓은 클라우드 컴퓨팅 서비스
      • 사용자가 서버OS, 미들웨어, 런타임, 데이터, 애플리케이션 직접 구성, 관리 가능
      • CSP가 서버 운영에 필요한 모든 것을 책임지고 관리

      ex. AWS의 EC2, Google의 Compute Engine(GCE), 가비아의 g클라우드

    2. PaaS
      • 서비스로서의 플랫폼
      • IaaS 형태의 가상화된 클라우드 위에 사전에 사용자가 원하는 서비스의 개발환경 구축을 통해 서비스 형태로 제공
      • 운영체제, 미들웨어, 런타임 미리 구축 상태로 자유도는 IaaS에 비해 낮음
      • 서비스 외적인 부분 신경 덜 쓰고, 애플리케이션 개발과 비즈니스에 집중 가능

      ex. 세일즈포스닷컴의 Heroku, Redhat의 OpenShift

    3. SaaS
      • 서비스로서의 소프트웨어
      • 가장 완성된 형태의 클라우드 서비스
      • 클라우드 인프라 위에 소프트웨어 탑재된 상태를 제공
      • 자원, 소프트웨어 및 업데이트, 버그 개선 등을 모두 업체가 책임짐
      • 인프라 구축, 개발 환경 세팅 및 소프트웨어 개발에 소요되는 비용 절약 가능

      ex. 슬랙(Slack), 마이크로소프트365, 드롭박스(Dropbox)


API와 SDK


  • 공통점
    • 이미 만들어진 기능을 다른 개발에 활용할 수 있음
  • 차이점
    • API는 완성품을 사용할 수 있도록 도와주는 인터페이스
    • SDK는 완성품을 원하는대로 만들 수 있도록 도와주는 개발 도구
    • SDK안에 API가 포함된 개념, 더 상위 개념
  • 예시
    • 페이스북 “좋아요” 기능을 만들고 연동해서 사용하게 하는 것은 API
    • 페이스북 “좋아요” 기능을 만들기 위해 필요한 도구들을 다 제공할테니 원하는 대로 만들게 하는 것은 SDK

Tags:

Categories:

Date:

Leave a comment