Digital Recipe
개발 언어를 이용하여 개발 시 효율적인 데이터 관리를 위해 구조체와 같은 새로운 자료형을 선언하여 사용하게 된다. 하지만 이 자료형을 어떻게 구성하느냐에 따라 성능과 메모리 측면에서 효율성 차이를 가지게 된다. 이 게시글에서는 C언어 구조체를 기준으로 성능과 메모리 측면에서 어떻게 최적화 할 수 있는지 알아보도록 하겠다. 이 두 가지 측면에 접근하기 위해서는 Data Alignment와 Data Structure Padding에 대해서 알아야 한다. Data Alignment는 성능 향상을 위한 효율적인 처리를 위해 데이터를 정렬하는 것에 대한 이야기이다. 그리고 Data Structure Padding은 컴파일러가 정의된 구조체를 어떻게 다루는지에 대한 이야기로 Data Alignment이라는 조건을 ..
PC에 전원이 공급되면 어떻게 하드 디스크에 저장되어 있는 운영체제가 실행될까 궁금한적이 있을 것이다. 이렇게 운영체제가 시작하기 위한 과정을 부트 스트랩(Boot Strap)이라고 하는데 이와 관련된 기술 용어로 BIOS, EFI, UEFI, MBR, GPT 등이 있으며 이 게시글을 통해 부트 스트랩 과정과 더불어 메인보드 펌웨어, 파티션, 파일시스템에 대해서 살펴보도록 한다. PC에 전원이 들어오면 메인보드에 내장된 펌웨어가 가장 먼저 실행된다. 그리고 메인보드 펌웨어 >> 부트로더 >> 운영체제 순으로 부팅을 위한 과정을 거치게 되며 각 단계별 기술과 역할을 살펴보도록 하겠다. 1. 메인보드 펌웨어(Mainboard Firmware) - BIOS, EFI, 그리고 UEFI 컴퓨터에 전원이 공급되면 ..