m1ndy5's coding blog

컴퓨팅 기본 개념 본문

클라우드 with AWS/AWS

컴퓨팅 기본 개념

정민됴 2023. 2. 16. 18:41

컴퓨터 프로그램이란?

  • 특정 작업을 수행하기 위해 컴퓨터에서 실행되는 일련의 명령
  • 프로그래밍 언어를 사용해 코드로 작성됨
  • 일반적으로 소프트웨어라고 불림

    애플리케이션 유형

  • 웹 애플리케이션 : 웹 서버 또는 애플리케이션 서버에 실행되며 웹 브라우저에서 접근
  • 모바일 앱 : 모바일 기기에서 접근
  • 데스크톱 애플리케이션 : 데스크톱 컴퓨터에서 실행 및 접근
  • IoT 애플리케이션 : 어플라이언스 또는 인터넷이 연결된 기기에서 실행 및 접근

    컴퓨터 내 구성요소

    하드웨어

  • Main Board : 하드웨어의 모든 핵심 구성 요소를 연결시켜주는 보드
  • CPU(중앙 처리 장치) : 컴퓨터의 두뇌, 소프트웨어에서 받은 연산을 실행, 코어가 많을 수록 성능 업!!, 프로세서라고도 불림
  • RAM : CPU가 실행할 명령 및 데이터 저장, but 휘발성(전원 끄면 날라감), 신속 액세스 가능
  • Storage Drive : HDD, SSD가 이에 해당, 영구적 저장, 파일, 앱 데이터, 문서 저장
  • Network Card : 네트워크 연결 담당, 유선 무선 연결 기능, 네트워크 어댑터라고도 불림

    소프트웨어

  • OS(운영체제) : 하드웨어 및 소프트웨어 관리 ex) Windows, Linux, maxOS, iOS, Android
  • Application : 운영체제를 제외한 나머지 소프트웨어/프로그램, 응용 프로그램이라고도 불림

    서버란?

  • 다른 컴퓨터에 데이터 또는 서비스를 제공하는 하나의 컴퓨터
  • 클라이언트로부터 받은 요청에 대한 응답을 네트워크를 통해 전달
  • 일반 데스크톱 하드웨어보다 더 많은 메모리와 CPU, 이중 전원 공급 장치 및 네트워크 인터페이스 가지고 있음
  • 이중 전원 공급 장치는 전원이 꺼져서 서버가 멈추는 것을 방지하기 위함
  • ex) 웹 서버, 데이터베이스 서버, 메일 서버

    웹의 3요소

  • HTTP : 인터넷 통신망에서 리소스를 요청하고 응답할 때 사용되는 통신규약(프로토콜)
  • URI(url/urn) : 웹 상에 존재하는 리소스에 접근하기 위한 주소(다른 리소스와 겹치면 안됨)
  • HTML : 연결 가능한 텍스트 링크를 통해 웹 상의 모든 리소스를 표기

    데이터 센터

  • 컴퓨터 및 네트워크 장비 전체를 관리
  • 서버, 스토리지 장치, 네트워크 장치, 냉각 장비, 무정전 전원 공급 장치가 있음

    온프레미스 vs 클라우드

    온프레미스

  • 온프레미스는 사용자가 데이터 센터를 자체적으로 소유하는 것
  • 자체 시설 내의 모든 하드웨어, 소프트웨어를 직접 구입, 설치, 구성 및 관리
  • 유지 보수할 직원도 있어야 함
  • 자체적 데이터 센터 리소스 사용

    클라우드

  • 클라우드 서비스 공급자(CSP)가 데이터 센터 보유
  • CSP가 하드웨어, 소프트웨어 구입, 설치, 구성 및 관리
  • CSP가 유지 보수
  • 사용자는 리소스를 사용하기 위해 CSP한테 비용을 지불

    가상 머신이란?

  • 가상 머신은 소프트웨어 기반의 컴퓨터
  • 물리적인 컴퓨터는 Host라고 불림
  • 물리적인 컴퓨터의 리소스(CPU, 메모리, 디스크, 네트워크)에 대한 엑세스를 VM에 제공하는 하이퍼바이저가 필요함
  • VM은 자체 OS를 실행(ex. 내 로컬 컴퓨터 윈도우 but VM OS linux)
  • 하나의 host에 다수 VM 구축 가능
  • 하이퍼바이저 위에 설치 된 VM의 OS를 Guest Os라고 한다.
  • VM은 클라우드 내 컴퓨팅의 기본 단위

    VM의 장점

  • 비용 절감 : 하나의 물리적 장치에서 다수의 VM을 생성가능함으로 새 컴퓨터 구입할 돈 아낌
  • 효율성 : 다수의 vm을 사용할 수 있어 활용도가 좋음
  • 재사용성 및 휴대성 : 물리적 host에서 vm이미지를 복사하거나 이동시켜 컴퓨터 환경 복제 가능

    VM vs Container

    VM

  • Host OS가 있고 하나의 VM은 각자의 Guest OS를 가짐
  • 그렇기 때문에 컨테이너보다 무거움

    Container

  • OS는 기존 Host OS를 사용
  • 컨테이너를 가상화 시켜주는 소프트웨어 사용(ex. docker)
  • 서비스가 작동하기에 필요한 설정들을 container에 올려서 실행
  • 자원 격리 기술을 이용하여 개발환경에 대한 걱정없이 배포 가능
  • Os를 따로 갖지 않기 때문에 VM보단 가벼움

    소프트웨어 개발 과정

    1. 계획

  • 프로젝트 목표 수립 및 파악 -> 프로젝트 계획서가 만들어짐
  • 프로젝트 구현의 경제적, 운영적, 기술적 측면 등 다양한 요소들을 고려

    2. 분석

  • 제품의 요구 사항 명확하게 정의해 문서로 작성

    3. 설계

  • 자세한 기능 설명과 사용자 인터페이스 설명과 같은 정보를 포함한 설계 사양서를 보고 여러가지 방법을 수립 및 제안

    4. 개발

  • 실제 코드 작성
  • 코드에 관한 간단한 테스트 실행

    5. 테스트

  • 개발된 코드의 전체적인 테스트를 진행함
  • 대표적으로 단위 테스트, 통합 테스트, 보안 테스트, 성능 테스트 가 있음

    6. 구현

  • 배포와 같은 말
  • 애플리케이션이 출시되고 사용됨

    7. 유지 관리

  • 지속적으로 모니터링
  • 결함 및 오류 파악, 환경 변화, 요구사항 변경, 오류 발생 방지 등등 여러가지 관리를 함

    개발 팀 구성

    프로젝트 관리자(PM)

  • 프로젝트 계획 수립 담당
  • 팀을 이끌며 관리, 팀원들에게 업무 할당

    애널리스트(BA)

  • 각 프로젝트의 요구 사항 수집 및 정의 그리고 정리

    품질 보증(QA)

  • 테스트 목록 작성 및 관리 그리고 테스트 실행
  • 문제를 복제하는 단계를 문서화

    소프트웨어 개발자

  • 애널리스트가 제공하는 사양서에 따라 코드 작성
  • 초기 테스트 실행
  • 코드의 유지보수

    데이터베이스 관리자(DBA)

  • 데이터 유지 관리, 보안, 성능, 최적화 담당
  • 데이터 백업!!! 아주 중요

'클라우드 with AWS > AWS' 카테고리의 다른 글

AWS 대표 서비스  (0) 2023.02.20
AWS 인프라(매우 중요!!)  (1) 2023.02.19
AWS(Amazon Web Service)에 대해 & AWS 요금제  (0) 2023.02.19
클라우드 컴퓨팅 장점  (0) 2023.02.19
클라우드 컴퓨팅  (0) 2023.02.18