1.1 정보는 비트와 컨텍스트로 이루어진다 (ASCII, Text/non-Text file, Context)

2025. 3. 17. 14:53·CS:APP

용어

소스 프로그램(또는 소스파일)

0 또는 1로 표시되는 bit(비트)들의 연속, byte(바이트)라는 8bit 단위로 구성. 여기서 각 byte는 프로그램의 텍스트 문자를 나타냄

ASCII(아스키) 표준

  • acronym for : American Standard Code for Information Interchange, 미국 정보 교환 표준 부호
  • 컴퓨터 시스템에서 텍스트 문자를 사용하여 표시하기 위한 문자표준
  • 각 문자를 바이트 길이의 정수값으로 나타냄

ASCII 코드 표

Text file(텍스트 파일)과 Binary file or non-Text file(바이너리 파일)

  • 텍스트 파일 : ASCII 문자로만 이루어진 파일
    • ex. txt, csv, html, json 등
    • 사람이 읽기 쉽고 수정하기 간편하지만, 인코딩(UTF-8, ASCII 등)에 따라 호환성 이슈가 발생할 수 있음
  • 바이너리 파일(non-text file) : 그 외의 파일
    • 일반 텍스트로 나타내지 않는 일련의 비트로 이루어진 데이터를 포함하는 파일
    • 사용자에게 하나의 연속된 데이터 블록으로 나타남
    • 용도 : 이미지, 사운드, 실행 가능한 프로그램, 압축된 데이터
      • 이미지(jpg, png, gif), 오디오(mp3, wav), 비디오(mp4, avi), 실행(exe, bin), 압축(zip, rar)
      • 대부분 많은 파일은 특정 하드웨어 및 소프트웨어 시스템에 종속됨. 이에 따라 이식성(타 HW, SW와 함께 사용) 및 장기적인 접근성과 관련하여 문제가 발생됨
        • 구조가 파일 포맷에 따라 다르기 때문에, 특정 애플리케이션이나 라이브러리를 사용해 수정
      • 사람이 읽을 수 없기 때문에, 파일을 수정하거나 개선하기에 어려울 수 있음
    • 이러한 특성으로 유닉스 철학_(Unix philosophy)_에서 중요한 원칙은 데이터와 프로그램을 가능한 한 바이너리 파일에 저장하지 않는 것
      • Binary file definition by The Linux Information Project (LINFO)
      • 텍스트 파일은 수정과 디버깅이 용이하고, 버전 관리 시스템에서 변경 내역 추적이 용이함

 

Context(컨텍스트)

  • 서비스 기반 애플리케이션 또는 서비스가 내장된 물리적, 사회적 상황을 의미 (개념적 요소)
  • 사람, 장소, 물리적 또는 계산 대상 등 개체의 상황을 특성화 하는 데 사용할 수 있는 모든 정보로 정의되며, 이는 정보의 본질적인 속성보다는 해석에 사용되는 방식 때문임.
    • Context — S-Cube - European Network of Excellence
  • 환경, 상태, 확장자
  • 이벤트가 일어나는 조건, 환경
    • A라는 사람이 온라인을 통해 송금을 하려고 할 때
      • 은행이 A의 돈을 송금하기 위해선 A의 이름, 계좌번호, 송금할 금액, 다른사람의 계좌번호(필수 Context)가 필요
      • 이때 추가적으로 계좌이체 알림 등의 메세지를 남기게되면, 이는 돈을 송금하는 주요 목적을 달성하는데 필수가 아니고 선택적인 정보임(선택 Context)
  • 함께 학습하기 : Context / Contextual Information

내용

  • 대부분의 컴퓨터 시스템은 텍스트 문자를 ASCII 표준을 사용하여 표시한다.
  • 프로그램은 연속된 바이트들로 파일에 저장된다
#include <stidio.h> 

int main()
{ 
printf("hello, world\n); 
return 0; 
}

hello 프로그램

#   i   n   c   l   u   d   e   SP  <   s   t   d   i   o   .
35  105 110 99  108 117 110 101 32  60  115 116 100 105 111 46

h   >   \n  \n  i   n   t   SP  m   a   i   n   (   )   \n  {
104 62  10  10  105 110 116 32  109 97  105 110 40  41  10  123

\n  SP  SP  SP  SP  p   r   i   n   t   f   (   "   h   e   l
10  32  32  32  32  112 114 105 110 116 102 40  34  104 101 108

l   o   ,   SP  w   o   r   l   d   \   n   "   )   ;   \n  SP
108 111 44  32  119 111 114 108 100 92  110 34  41  59  10  32

SP  SP  SP  r   e   t   u   r   n   SP  0   ;   \n  }   \n
32  32  32  114 101 116 117 114 110 32  48  59  10  125 10

hello.c의 ASCII 텍스트 표시

  • 컨텍스트에 따라 다양하게 해석(기계어명령)으로 표현될 수 있음
    • 이는 컴퓨터 내의 숫자들의 표현은 예상하지 못하는 방식으로 움직일 수 있는 유한한 근사값임을 인식
728x90

'CS:APP' 카테고리의 다른 글

GCC는 C를 어떻게 기계어로 짜깁기할까? - CS:APP 3.2 요약과 인사이트  (0) 2025.04.07
암달의 법칙 (Amdahl's law)  (0) 2025.04.07
캐시와 저장장치의 상관관계  (0) 2025.03.21
1.4 프로세서는 메모리에 저장된 인스트럭션을 읽고 해석한다  (0) 2025.03.20
1.2 프로그램은 다른 프로그램에 의해 다른 형태로 번역된다  (0) 2025.03.20
'CS:APP' 카테고리의 다른 글
  • 암달의 법칙 (Amdahl's law)
  • 캐시와 저장장치의 상관관계
  • 1.4 프로세서는 메모리에 저장된 인스트럭션을 읽고 해석한다
  • 1.2 프로그램은 다른 프로그램에 의해 다른 형태로 번역된다
ahpicl64
ahpicl64
in the clouds
  • ahpicl64
    구름
    ahpicl64
  • 전체
    오늘
    어제
    • 분류 전체보기 (95)
      • WIL (4)
      • Jungle (36)
      • AWS (2)
      • SQL (2)
      • CS:APP (17)
      • Algorithm (10)
      • K8s (7)
      • 자료 구조 (10)
      • Spring (4)
      • React (0)
      • 운영체제 (1)
      • 기타등등 (2)
      • 이야기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    AWS
    Spring boot
    CloudFront
    github actions
    queue
    CSAPP
    DB
    IAM
    부하테스트
    python
    EC2
    자료구조
    k8s
    트러블슈팅
    DevOps
    컴퓨터시스템
    S3
    Spring
    어셈블리
  • 02-22 04:48
  • hELLO· Designed By정상우.v4.10.3
ahpicl64
1.1 정보는 비트와 컨텍스트로 이루어진다 (ASCII, Text/non-Text file, Context)
상단으로

티스토리툴바