용어
소스 프로그램(또는 소스파일)
0 또는 1로 표시되는 bit(비트)들의 연속, byte(바이트)라는 8bit 단위로 구성. 여기서 각 byte는 프로그램의 텍스트 문자를 나타냄
ASCII(아스키) 표준
- acronym for : American Standard Code for Information Interchange, 미국 정보 교환 표준 부호
- 컴퓨터 시스템에서 텍스트 문자를 사용하여 표시하기 위한 문자표준
- 각 문자를 바이트 길이의 정수값으로 나타냄

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