|

방송대학교 컴퓨터과학과

· 테크· Java
Kotlin

학습내용을 축약 정리한 내용으로 모든 교과목의 내용을 다루지 않습니다. (저작권 고려)
대신 추가적으로 조사한 내용이 주로 작성되어 교과목 흐름 외 상세 내용은 상이할 수 있습니다.

클라우드 컴퓨팅

클라우드 컴퓨팅이란 1996년 등장한 개념으로 형태와 성질을 쉽게 바꿀 수 있는 구름의 의미와 컴퓨터의 다양한 처리 기능의 의미가 결합되어 두 개의 특성을 모두 제공하는 형태의 컴퓨팅을 말합니다.
기존에 온프레미스 방식에서 구축 비용을 절감과 유휴 서버를 활용으로 효율성을 높일 수 있는 대안으로 보급되게 되었습니다. 그리고 클라우드 컴퓨팅 기술에 대한 개인, 기업, 정부 주도의 정책 등이 맞물려 꾸준히 성장하고 있습니다.

  • 온프레미스 On-Premise
    • 정보 서비스 제공에 요구되는 데이터 센터를 자체적으로 보유하고 운용하는 방식
    • 클라우드 컴퓨팅으로 기존에 온프레미스 자본지출에서 운영지출 방식으로 전환되게 되었습니다.

SLA (Service Level Agreement)

IT 리소스를 대여하는 클라우드 서비스 제공자가 사용자에게 제공하는 서비스의 수준을 정량화하여 명확하게 제시하고 미달하는 경우 손해 배상하도록 하는 서비스 품질 보장 계약

클라우드 컴퓨팅 이용방식

IaaS는 인프라를 직접 제어하고자 하는 사용자나 조직에게 적합하며, PaaS는 애플리케이션 개발에 집중하고자 하는 사용자나 조직에게 적합합니다.

IaaS

  • 인프라를 제공하는 서비스로, 가상 서버, 스토리지, 네트워크 등을 제공합니다.
  • 대표적인 예로는 AWS EC2, Microsoft Azure 등이 있습니다.

PaaS

  • 플랫폼을 제공하는 서비스로, 애플리케이션 개발 및 배포를 위한 환경을 제공합니다.
  • 대표적인 예로는 Heroku, Google App Engine, 카페24 등이 있습니다.

SaaS

  • 소프트웨어를 제공하는 서비스로, 웹 브라우저를 통해 소프트웨어를 사용할 수 있습니다.
  • 대표적인 예로는 구글 드라이브, 드롭박스 등이 있습니다.

클라우드 컴퓨팅 배포모델

퍼블릭 / 프라이빗 / 하이브리드 / 멀티 / 커뮤니티 클라우드

하이브리드 클라우드와 멀티 클라우드는 뭐가 다른건가?
하이브리드 클라우드는 자사 데이터 센터와 공개 클라우드를 함께 사용하는 것이며, 멀티 클라우드는 여러 클라우드 제공 업체의 서비스를 사용하는 것입니다.
하이브리드 클라우드는 자사 데이터 센터에서 민감한 데이터를 보호하면서, 공개 클라우드에서는 비용을 절감하기 위해 하이브리드 클라우드를 사용합니다. 이렇게 하면 기업 A는 민감한 데이터를 안전하게 보호하면서도, 공개 클라우드에서 더욱 유연한 인프라를 사용할 수 있습니다.
멀티 클라우드는 AWS와 Azure 등 여러 클라우드 제공 업체의 서비스를 사용하여 멀티 클라우드를 구축합니다. 이렇게 하면 기업 B는 각각의 클라우드 제공 업체가 제공하는 장점을 활용하여 높은 가용성과 성능을 제공할 수 있습니다. 예를 들어, AWS에서는 기계 학습을 위한 서비스를 제공하고, Azure에서는 Windows 애플리케이션을 위한 서비스를 제공합니다. 이렇게 각각의 클라우드 제공 업체가 제공하는 서비스를 활용하면, 기업 B는 다양한 기능과 기술을 활용할 수 있습니다.

클라우드 컴퓨팅 기술

클러스트링 기술 / 그리드 컴퓨팅 기술 / 가상화 기술 / 서버리스 컴퓨팅 기술

  • 그리드 컴퓨팅 기술
    • 여러 대의 분산된 컴퓨터를 하나의 가상 슈퍼컴퓨터처럼 사용하는 기술입니다.
    • 컴퓨팅 리소스가 플랫폼 상에서 논리적 리소스 풀로 등록되어 풀에 포함된 리소스가 집합적으로 고성능의 컴퓨팅 환경을 제공하는 기술
    • 리소스 결합성이 매우 작고, 서로 다른 기종의 리소스들이 물리적으로 분산되어 있습니다.
      • 단일 시스템처럼 작동하는 클러스터링 기술과의 차이
  • 서버리스 컴퓨팅 기술
    • 서버를 직접 구축하거나 관리하는 대신, 클라우드 서비스 제공 업체가 서버를 관리하고 사용한 만큼 비용을 지불하는 기술입니다. 즉 서버가 없다는 뜻은 아닙니다.

넷플릭스 클라우드 컴퓨팅 적용사례

수업시간에 말해주셔서 넷플릭스 테크 블로그를 우연히 보게 됐는데 재밌는 내용이 많아서 정리해서 나중에 포스팅해야 겠습니다. :)

스트리밍

  • 넷플릭스는 AWS (Amazon Web Services)와 계약하여 전 세계적으로 수많은 사용자들에게 안정적인 스트리밍 서비스를 제공하고 있습니다. AWS는 넷플릭스에 필요한 인프라를 제공하며, 이를 통해 넷플릭스는 사용자들에게 높은 수준의 가용성과 성능을 제공할 수 있습니다.

개인화 추천

  • 넷플릭스는 AWS에서 호스팅되는 맞춤형 추천 알고리즘을 사용하여 사용자들에게 맞춤형 콘텐츠 추천을 제공합니다. 이를 통해 사용자들은 자신이 좋아할 만한 새로운 프로그램과 영화를 더 쉽게 찾을 수 있습니다.

대규모 데이터 처리

  • 넷플릭스는 AWS의 다양한 데이터 처리 도구를 사용하여 대규모 데이터 처리를 수행합니다. 이를 통해 넷플릭스는 새로운 프로그램과 영화를 더 빠르게 출시할 수 있으며, 사용자들이 더 많은 선택지를 가질 수 있습니다.



컴파일러 구성

컴파일러 구성 기초 개념

어셈블러

  • 어셈블리어로 작성된 프로그램을 기계어로 번역하는 번역기입니다. 기본적으로 저급언어를 기계어로 변환하는 역할을 합니다.

컴파일러

  • 고급 언어(BASIC, JAVA, C, C++ 등)로 작성된 프로그램을 저급언어(어셈블리어나 기계어)로 번역해주는 번역기입니다. 컴파일러는 번역 후에 실행을 하기 때문에 실행 속도가 빠르지만, 큰 기억장소가 필요합니다.

프리프로세서

  • 프로그래밍 언어에 유용한 기능을 추가하여 언어를 확장하는 역할을 합니다. 원시언어와 목적언어 모두 고급언어로 구성됩니다.

인터프리터

  • 고급언어를 입력받아 번역과 동시에 실행한 후 결과를 출력합니다. 대화형 언어를 구현할 때 주로 사용되며, 실행 시간이 길지만 유연하게 사용자와의 대화가 가능합니다.

프로그램 언어 처리 과정

  • 어휘분석: 연산자, 식별자, 예약어, 구분자, 상수 등을 인식하여 토큰으로 분리합니다.
  • 구문분석: 분석 결과를 파스트리로 출력하며, 구문 트리를 생성합니다.
  • 의미분석: 혼합형 연산을 하는 경우 정수를 실수로 바꾸어 줍니다. 파스트리에 의미를 부여하고, 실행 전 사전작업을 통해 중간코드를 생성합니다. 이후 최적화 과정을 거칩니다.
  • 목적코드 생성: 최종적인 코드를 생성합니다.

유한 오토마타

특정 알파벳으로 만들어진 문자열의 특별한 것들을 받아들이는 시스템의 수학적 모델입니다. 주요 유형으로는 NFA(비결정적 유한 오토마타)와 DFA(결정적 유한 오토마타)가 있습니다.

촘스키 계층구조

생성규칙의 형태에 따라 형식문법을 4종류로 나눈 것입니다. Type 0부터 Type 3까지의 문법이 있으며, 각 타입은 특정 제약을 가지는 문법을 나타냅니다.

Comments

No comments yet. Be the first!

    318 posts in 테크

    15 / 318