반응형

2025/03 101

Brotli 압축 알고리즘

Brotli 압축 알고리즘Brotli는 구글에서 개발한 오픈 소스 압축 알고리즘으로, 특히 웹 환경에서 높은 압축률과 빠른 압축/해제 속도를 제공하는 것으로 알려져 있습니다. 이 알고리즘은 웹 성능 최적화를 위해 WOFF2 폰트 포맷과 HTTP 콘텐츠 인코딩에서 널리 사용됩니다.Brotli의 특징1. 높은 압축률Brotli는 LZ77 기반의 압축 기법과 허프만 코딩을 결합하여 높은 압축률을 제공합니다. 이는 gzip보다 더 나은 압축 성능을 보이며, 특히 텍스트 기반 파일(HTML, CSS, JavaScript)에서 효과적입니다.2. 빠른 압축 및 해제 속도Brotli는 다양한 압축 수준을 제공하며, 높은 수준에서는 압축률이 극대화되지만 속도가 느려질 수 있습니다. 일반적으로 웹 환경에서는 중간 수준의 ..

Android의 전체 아키텍처 개요

Android의 전체 아키텍처 개요Android는 개방형 모바일 운영체제로, 다양한 하드웨어에서 동작할 수 있도록 여러 계층으로 구성되어 있습니다. 본 포스팅에서는 Android의 전체 아키텍처를 Linux Kernel, HAL(Hardware Abstraction Layer), Native Libraries, Framework, Application Layer로 나누어 설명합니다. 또한, 각 계층의 역할과 AOSP(Android Open Source Project) 코드 일부를 예시로 들어 설명하겠습니다.1. Android 아키텍처 개요Android 아키텍처는 크게 다음과 같은 계층으로 구성됩니다:Linux Kernel: 하드웨어와 직접 상호작용하며 Android 시스템의 기반이 되는 계층HAL (Ha..

Android/Framework 2025.03.15

Embedded Linux에서 Root Filesystem 생성하기

Embedded Linux에서 Root Filesystem 생성하기임베디드 시스템에서 Linux Kernel을 구동하려면 Root Filesystem(이하 Rootfs)이 반드시 필요합니다. Rootfs는 커널이 부팅한 후 시스템 동작에 필요한 기본 파일, 라이브러리, 그리고 실행 파일 등을 포함합니다. 이 글에서는 Rootfs 생성 방법과 최적화, 커스터마이징 방법을 Rockchip RK3399 플랫폼을 기준으로 설명합니다.1. Root Filesystem의 개념Rootfs는 다음과 같은 요소들로 구성됩니다:기본 디렉토리 구조: /bin, /lib, /etc, /dev, /usr, /var 등.필수 파일 및 라이브러리: init 파일, C 표준 라이브러리 등.필수 디바이스 파일: /dev 디렉토리 내의..

Linux/Kernel Driver 2025.03.15

Bzip2 압축 알고리즘

Bzip2 압축 알고리즘1. 개요Bzip2는 무손실 데이터 압축 알고리즘으로, Burrows-Wheeler 변환(BWT)과 무브 투 프론트 변환(MTF) 등의 기법을 활용하여 높은 압축률을 제공합니다. 이 알고리즘은 gzip보다 높은 압축률을 제공하며, 텍스트 파일과 같은 반복 패턴이 많은 데이터에서 특히 효과적입니다.2. Bzip2의 동작 원리Bzip2는 여러 단계의 변환을 거쳐 데이터를 압축합니다. 주요 단계는 다음과 같습니다.2.1 Burrows-Wheeler 변환 (BWT)Burrows-Wheeler 변환은 입력 문자열의 모든 회전(rotation)을 생성한 후 이를 사전 순으로 정렬하고 마지막 열을 추출하는 방식으로 동작합니다. 이 변환을 통해 데이터의 연속적인 패턴이 강조되어 후속 압축 단계에..

Embedded Linux Kernel 설정 - Kernel Configuration

Embedded Linux Kernel 설정: Kernel ConfigurationEmbedded Linux를 개발할 때 가장 중요한 작업 중 하나는 Kernel Configuration입니다. 이 과정은 시스템의 요구사항에 맞는 기능과 드라이버를 선택하여 Kernel 설정 파일(.config)을 작성하고 조정하는 작업을 포함합니다. 이번 포스팅에서는 Rockchip RK3399 플랫폼을 예제로, Embedded 환경에 적합한 Kernel 설정 과정을 설명합니다.Kernel Configuration 기본 개념Kernel Configuration은 Linux 커널이 특정 시스템에 최적화되도록 설정을 조정하는 단계입니다. .config 파일은 이러한 설정의 결과물로, 컴파일 시 커널이 어떤 기능을 포함할지를..

Linux/Kernel Driver 2025.03.14

Deflate 알고리즘 (Gzip, zlib)

Deflate 알고리즘 (Gzip, zlib)1. 개요데이터 압축은 저장 공간 절약과 네트워크 전송 속도 향상을 위해 필수적인 기술입니다. Deflate 알고리즘은 이러한 목적을 위해 설계된 대표적인 압축 알고리즘 중 하나로, Gzip과 zlib 같은 다양한 압축 포맷에서 사용됩니다. 본 글에서는 Deflate 알고리즘의 개념과 Gzip 및 zlib과의 관계를 설명하고, Java와 C를 이용한 구현 예제를 소개하겠습니다.2. Deflate 알고리즘이란?Deflate는 1993년 Phil Katz에 의해 개발된 압축 알고리즘으로, 다음 두 가지 주요 기술을 조합하여 높은 압축률과 빠른 처리 속도를 제공합니다.LZ77(Lempel-Ziv 1977) 압축: 중복된 문자열을 참조하여 데이터를 효율적으로 저장합니..

Android의 역사와 발전 과정

Android의 역사와 발전 과정1. 서론Android는 현재 전 세계에서 가장 널리 사용되는 모바일 운영체제입니다. 2003년 Android Inc.에서 시작된 이 프로젝트는 2005년 Google이 인수하면서 본격적인 개발이 이루어졌으며, 2008년 최초의 상용 버전이 출시되었습니다. 이후 꾸준한 발전을 거쳐 스마트폰뿐만 아니라 태블릿, 스마트 TV, 웨어러블 기기, 자동차 등 다양한 분야로 확장되었습니다. 본 글에서는 Android의 역사와 주요 발전 과정을 AOSP 코드와 함께 살펴보고자 합니다.2. Android의 탄생과 초기 개발 (2003 - 2008)2.1 Android Inc.의 설립2003년, Andy Rubin, Rich Miner, Nick Sears, Chris White는 모바일..

Android/Framework 2025.03.14

Embedded Linux Kernel: Bootloader 설정 및 커스터마이징

Embedded Linux Kernel: Bootloader 설정 및 커스터마이징임베디드 시스템 개발에서 부트로더(Bootloader)는 시스템의 초기화를 담당하며, 커널과 사용자 애플리케이션으로의 전이를 관리하는 중요한 역할을 합니다. 이번 포스팅에서는 Rockchip RK3399 플랫폼을 기준으로 부트로더인 U-Boot을 포팅하고, 설정 및 환경 변수를 조정하는 방법을 알아보겠습니다.1. Bootloader란 무엇인가?Bootloader는 하드웨어 초기화와 운영체제 로딩을 위한 프로그램입니다. 부트로더는 주로 다음과 같은 단계로 동작합니다:1단계 부트로더: CPU 및 메모리 초기화.2단계 부트로더: 운영체제 커널 로드.U-Boot은 임베디드 시스템에서 가장 널리 사용되는 오픈소스 부트로더 중 하나입니..

Linux/Kernel Driver 2025.03.13

MP3 (오디오 압축)

MP3 (오디오 압축)1. MP3란?MP3(MPEG-1 Audio Layer 3)는 오디오 데이터를 효율적으로 압축하는 손실 압축 방식의 포맷입니다. 1993년 MPEG(Moving Picture Experts Group)에서 개발하였으며, 높은 압축률과 비교적 우수한 음질로 인해 널리 사용되고 있습니다. MP3는 인간의 청각 특성을 활용하여 들을 수 없는 소리를 제거하거나, 인지하기 어려운 주파수 대역을 줄여 파일 크기를 줄이는 방식으로 동작합니다.2. 손실 압축의 품질과 압축률 조정손실 압축에서는 품질과 압축률을 조절할 수 있습니다. MP3에서는 주로 비트레이트(Bit Rate)를 설정하여 이를 조정하며, 비트레이트가 높을수록 음질이 좋아지고 파일 크기도 커집니다.2.1. 비트레이트(Bit Rate)..

CAN 데이터를 활용한 머신러닝 기반 예측 시스템(실전 프로젝트)

CAN 데이터를 활용한 머신러닝 기반 예측 시스템(실전 프로젝트)1. 개요자동차와 산업용 기기에서 사용되는 CAN(Controller Area Network) 통신은 다양한 센서 및 제어 데이터를 실시간으로 전송하는 중요한 네트워크입니다. 이 데이터를 활용하면 차량의 상태를 분석하고, 머신러닝 및 딥러닝 기술을 통해 고장 예측 및 유지보수 자동화 시스템을 구축할 수 있습니다.이번 포스팅에서는 CAN 데이터를 기반으로 머신러닝 및 딥러닝을 활용한 고장 예측 모델을 개발하는 방법을 설명합니다. 또한, 실제 자동차 유지보수를 위해 AI 기반 분석 시스템을 구축하는 절차를 소개합니다.2. CAN 데이터를 활용한 고장 예측 모델 개발2.1 데이터 수집 및 전처리머신러닝 기반 고장 예측 모델을 구축하려면 먼저 CA..

CAN 통신 2025.03.13
728x90
반응형