본문 바로가기

분류 전체보기

(31)
카테고리 없음
JPEG 파일 구조 JPEG (Joint Photographic Experts Group)는 손실 압축 방식을 사용하는 대표적인 이미지 파일 형식입니다. JPEG 파일은 이미지 데이터를 효율적으로 저장하기 위해 복잡한 구조를 가지고 있으며, 여러 개의 마커(Marker)를 사용하여 이미지 정보를 구성합니다.1. JPEG 파일의 기본 구조:JPEG 파일은 다음과 같은 기본적인 구조를 가집니다.[SOI (Start of Image) 마커] [APPn 마커 (선택 사항)] [SOFn (Start of Frame) 마커] [DHT (Define Huffman Table) 마커] [DQT (Define Quantization Table) 마커] [SOS (Start of Scan) 마커] [압축된 이미지 데이터] [EOI (End .. 2025.04.08
카테고리 없음
파일 형식 식별에 사용되는 정보 "파일 형식 식별"에 사용되는 정보 (매직 넘버)의 주소와 길이, 그리고 해당 파일 형식의 핵심 정보가 담긴 주요 데이터 구조체의 주소와 길이에 대한 정보파일 형식매직 넘버 주소매직 넘버 길이 (바이트)주요 데이터 구조체 (예시)주소 (파일 시작 기준)길이 (바이트)비고JPEG0x004SOF0 (Start of Frame) 마커0x02 ~ (SOI 마커 이후)SOF0 마커의 Length 필드 값 (2바이트)SOF0 마커에는 이미지 폭, 높이, 색상 구성 요소 등의 정보가 담겨 있음PNG0x008IHDR 청크0x08(IHDR 청크 데이터 길이 13) + 청크 유형 (4) + 길이 (4) + CRC (4) = 25IHDR 청크에는 이미지 폭, 높이, 색상 유형, 비트 깊이 등의 정보가 담겨 있음GIF0x00.. 2025.04.08
카테고리 없음
매직 넘버와 IHDR 청크의 위치 (주소)를 찾는 방법 1. 매직 넘버 주소:매직 넘버는 일반적으로 파일의 가장 처음 (offset 0) 에 위치합니다. 예외적인 경우가 있을 수 있지만, 대부분의 파일 형식은 파일 시작 부분에 매직 넘버를 배치하여 파일 형식을 빠르게 식별할 수 있도록 합니다.2. IHDR 청크 주소 (PNG 파일):PNG 파일에서 IHDR 청크는 매직 넘버 바로 뒤에 위치합니다. PNG 파일 구조는 다음과 같습니다.[PNG 매직 넘버 (8 bytes)] [IHDR 청크 (13 + 4 + 4 = 21 bytes 이상)] [다른 청크들...]따라서 IHDR 청크의 주소는 다음과 같이 계산할 수 있습니다.IHDR 청크 시작 주소: PNG 매직 넘버의 길이 (8 바이트)예시:PNG 파일을 예시로 들어 설명하겠습니다.PNG 매직 넘버 (8 bytes.. 2025.04.08
카테고리 없음
IHDR 청크의 "매직 넘버"? 이미지 속성에 숨겨진 고정 값들 IHDR 청크 자체는 매직 넘버처럼 파일 전체의 형식을 식별하는 역할은 하지 않지만, IHDR 청크 내부에 고정된 값들이 존재하여, 해당 청크가 올바른 IHDR 청크임을 검증하는 데 도움을 줄 수 있습니다. 이러한 고정 값들을 "IHDR 청크의 매직 넘버"라고 부르기는 어렵지만, 유사한 역할을 수행한다고 볼 수 있습니다.IHDR 청크의 "매직 넘버" 예시:필드값 (Hex)설명Chunk Type49 48 44 52항상 "IHDR" 문자열로 고정됩니다. 이 값은 해당 청크가 IHDR 청크임을 나타내는 핵심적인 지표입니다.Length00 00 00 0DIHDR 청크의 데이터 필드 길이는 항상 13바이트로 고정됩니다. 다른 길이를 가진다면 잘못된 IHDR 청크입니다.Compression Method00현재 PN.. 2025.04.08
카테고리 없음
매직 넘버: 파일 형식의 숨겨진 신호와 PNG 이미지의 핵심, IHDR 청크 파헤치기 매직 넘버: 파일 형식의 숨겨진 신호와 PNG 이미지의 핵심, IHDR 청크 파헤치기컴퓨터에서 파일을 다루다 보면 다양한 종류의 파일들을 만나게 됩니다. 이미지 파일인 JPEG, PNG, GIF부터 압축 파일인 ZIP, 음악 파일인 MP3까지 그 종류는 무궁무진하죠. 그런데 컴퓨터는 어떻게 이 파일들이 어떤 종류인지 정확히 알고, 올바르게 처리할 수 있을까요? 그 비밀은 바로 "매직 넘버(Magic Number)"에 숨어 있습니다.1. 매직 넘버란 무엇일까요? 파일 형식 식별의 마법매직 넘버는 파일의 시작 부분에 위치한 특정 바이트 시퀀스로, 파일 형식을 식별하는 데 사용되는 고유한 식별자입니다. 마치 파일의 신분증과 같은 역할을 하는 것이죠. 운영체제나 응용 프로그램은 파일을 열 때 매직 넘버를 확인하.. 2025.04.08
자바스크립트
JavaScript에서 "저수준 인터페이스" JavaScript에서 "저수준 인터페이스"라는 용어가 명확하게 정의되어 있지는 않지만, 일반적으로 바이너리 데이터 처리, 메모리 조작, 성능 최적화, 하드웨어 접근 등과 관련된 기능들을 가리킵니다. 이러한 관점에서 주요 저수준 인터페이스 20가지를 제시하겠습니다.핵심ArrayBuffer 및 관련 도구: 바이너리 데이터 버퍼를 다루는 핵심 요소WebAssembly: 다른 언어로 작성된 고성능 코드를 JS 환경에서 실행Fetch API와 Streams API: 네트워크 요청 및 응답을 효율적으로 처리Canvas API 및 WebGL: 그래픽 렌더링 및 이미지 조작Web Crypto API: 암호화 관련 기능 제공SharedArrayBuffer 및 Atomics: 스레드 간 데이터 공유 및 동기화 (고급)J.. 2025.04.07