뚝딱햄 탈출기

[CS] 소프트웨어 : 시스템/프로그래밍/응용 소프트웨어, 소프트웨어 생명주기, 데이터, 트랜지스터, 데이터 단위 본문

CS + OS

[CS] 소프트웨어 : 시스템/프로그래밍/응용 소프트웨어, 소프트웨어 생명주기, 데이터, 트랜지스터, 데이터 단위

hyrmzz1 2023. 7. 25. 02:07
엘리스트랙 - <알아두면 쓸데 있는 컴퓨터 사이언스> 강의 내용 정리

1. 소프트웨어

사용자는 요구사항을 가지고 있고, 생산자인 프로그래머의 의무는 사용자에게 그에 맞는 서비스를 제공하는 것.

소프트웨어는 하드웨어와 사용자 사이의 중개자. 프로그래머는 요구사항에 맞는 소프트웨어를 구축하는 일을 함.

1-1. 소프트웨어

소프트웨어는 하드웨어가 특정 동작을 하도록 하드웨어에 동작 방법을 지시하는 명령어의 집합.

컴퓨터 프로그램 및 그와 관련된 문서를 총칭함.

소프트웨어는 원하는 작업을 하기 위해 순서대로 작성된 명령어(코드)들의 집합.

1-2. 소프트웨어의 종류

시스템 소프트웨어

  • 사용자가 직접적으로 실행시킬 수 없으며, 직접 이용할 수 없음.
  • 컴퓨터와 스마트폰의 자원을 관리하는 OS와, 마우스와 키보드 등 모든 장치들을 제어하기 위한 디바이스 드라이브가 시스템 소프트웨어에 속함.

프로그래밍 소프트웨어

  • 프로그래머가 새로운 소프트웨어를 만들기 위해 사용. 코딩할 때 사용하는 소프트웨어.
  • 특정 목적을 가진 명령어 집합을 설계하고 개발하기 위해 사용.
  • 프로그래머는 인간이 이해할 수 있는 언어(→ 프로그래밍 언어)를 사용해 소프트웨어를 만드는데, 하드웨어가 명령을 이해하려면 프로그래밍 언어가 기계어로 변환되어야 함.
    이를 변환해주는 번역기인 컴파일러가 프로그래밍 소프트웨어에 내장되어 있는 셈.
  • 개발자가 만들고자 하는 서비스의 유형에 따라 다른 프로그래밍 소프트웨어 사용.
  • ex) VSC, XCode(iOS 어플 개발시 사용), 안드로이드 스튜디오(안드로이드 어플 개발시 사용) 등

응용 소프트웨어

  • 사용자 목적에 맞게 수행.
  • 각각의 앱(= 애플리케이션 소프트웨어)들은 다른 명령어들의 집합이라 다른 기능을 수행함.
  • ex) 인스타그램, 웹 브라우저, 문서작성 툴, 시계 앱 등
  • 응용 소프트웨어가 동작하기 위해선 시스템 소프트웨어가 필요.

사용자와 가까울수록 상위 소프트웨어로 분류되며, 응용 - 프로그래밍 - 시스템 소프트웨어 순으로 상위 소프트웨어.

 

2023.07.24 - [CS] - [CS] 컴퓨터 시스템 구조 참고

1-3. 소프트웨어 생명주기(SDLC) - 정보처리기사 실기 이론 토대로 작성함.

소프트웨어 생명주기는 시스템의 전 공정을 체계화한 절차로, 시스템이 개발될 때 부터 생애를 마칠 때까지 어떠한 순서를 밟는지에 대한 작업 프로세스를 모델화 한 것.

소프트웨어 생명주기 모델 프로세스

요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수

요구사항 분석

  • 다양한 이해관계자의 상충할 수 있는 요구사항을 고려해 새로운 제품이나 변경된 제춤에 부합하는 요구와 조건을 결정하는 단계.
  • 개발할 소프트웨어의 기능과 제약 조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의하는 단계.
  • 소프트웨어가 어떠한 기능을 제공해야 하는지 결정하는 단계.
  • 입출력이 무엇인지에 대한 검토.
  • 활동 : 기능 요구사항, 비기능 요구사항

설계

  • 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법 논리적으로 결정하는 단계.
  • 요구사항 분석 단계에서 결정된 사항에 대한 구체적 설계가 이루어지는 단계.
  • 활동 : 시스템 구조 설계, 프로그램 설계, UI 설계

구현

  • 목적에 맞는 프로그래밍 언어를 사용해 코딩하는 단계.
  • 프로그래밍 언어 선택, 기법, 스타일, 순서 등을 결정하는 단계.
  • 설계 단계에서 논리적으로 결정한 문제 해결 방법을 특정 프로그래밍 언어를 사용해 실제 프로그램을 작성하는 단계.
  • 활동 : 인터페이스 개발, 자료구조 개발, 오류 처리

테스트

  • 인터페이스에서 구현한 기능이 잘 작동하는지 확인하는 단계.
  • 시스템의 정해진 요구 만족 여부, 예상과 실제 결과의 차이를 검사하고 평가하는 단계.
  • 활동 : 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트

유지보수

  • 시스템이 인수되고 설치된 후 일어나는 모든 활동.

2. 데이터 형태와 처리

컴퓨터 동작 방식(input 받아들임 → 저장 → 처리 → output 처리)에서 모두 데이터를 다룸.

 

컴퓨터가 효율적이고 에러없이 정보를 받아들이기 위해 데이터 타입이 나눠져 있어야 함.

데이터 종류: 숫자, 문자, 이미지, 비디오 (이미지가 여러장 모인 것), 사운드 등이 있음.

 

모든 데이터는 컴퓨터에 0과 1로 저장됨. => 모든 것은 이진법으로 이루어져 있다.

2-1. 트랜지스터

  • 컴퓨터를 구성하는 하드웨어.
  • 연산에 사용됨.
  • 컴퓨터의 이진법 연산을 가능하게 함.
  • 전류의 흐름에 따라 0과 1 구분. 1 : 전류 흐름 / 0 : 전류 흐르지 않음.
  • 하나의 트랜지스터는 두개의 신호(0,1)만을 표현할 수 있음.
  • 최근 출시되는 CPU에는 50억개 이상의 트랜지스터가 내장되어 있음.

2-2. 데이터 단위

비트는 0과 1로 이루어져 있음.

 

Bit < Byte < KB < MB < GB < TB

8 Bits = 1Byte

1 KB = 2^10 Bytes

1 MB = 2^10 KB = 2^20 Bytes

1 GB = 2^10 MB

1 TB = 2^10GB

 

즉, 텍스트, 이미지, 비디오, 사운드 등 컴퓨터가 처리하는 모든 정보는 모두 이진수로 맵핑되어 아주 많은 수의 0과 1로 컴퓨터에 저장되고, 이를 복원해 output이 출력된다.

Comments