키콤백신 개발 이야기 - 파이썬의 기본문법 (변수, 숫자, 문자열)

읽기 전에 본 내용은 키콤백신을 개발하면서 고민했던 내용들을 적은 것입니다. 따라서 다분히 개인적인 의견들이므로 보시는 분들에 따라서 이견을 가지실 수 있습니다. 그냥 "이 사람은 이렇게 개발하는구나" 하고 봐 주시면 좋겠습니다. 1. 들어가며 키콤백신 프로젝트는 파이썬으로 진행되고 있다. 파이썬을 처음 접하는...
더 읽기

키콤백신 개발 이야기 - 코딩 스타일 가이드라인

읽기 전에 본 내용은 키콤백신을 개발하면서 고민했던 내용들을 적은 것입니다. 따라서 다분히 개인적인 의견들이므로 보시는 분들에 따라서 이견을 가지실 수 있습니다. 그냥 "이 사람은 이렇게 개발하는구나" 하고 봐 주시면 좋겠습니다. 들어가며 오픈소스로 프로젝트를 진행하게 되면 많은 사람들이 프로젝트에 참여하게 될...
더 읽기

파이썬으로 엑셀 보고서 만들기

Openpyxl1은 엑셀 파일을 손쉽게 생성할 수 있는 파이썬 외부 라이브러리이다. 가끔 프로그래밍을 하다보면 보고서 출력이 필요한 경우가 있다. 그러면 대체로 생각할 수 있는 방법은 엑셀의 COM 오브젝트를 접근하여 문서를 생성하는 것이다. 그러나 이 방법은 해당 시스템에 엑셀이 설치되어 있어야 하는...
더 읽기

OLE 파일 포맷 (6) - Extra Big Block Allocation Table(XBBAT) Depot

지금까지 다루었던 test_ole.hwp 파일은 크기가 작은 파일에 속한다. 하지만, OLE 파일은 덩치가 큰 파일들이 얼마든지 존재할 수 있다. 예를 들어 파워포인트 파일을 생성하여 동영상을 임베딩하게 되면 그 크기는 엄청나게 커진다는 것을 알 수 있을 것이다. 사실 지금까지 다룬 OLE 파일...
더 읽기

OLE 파일 포맷 (5) - Small Block Allocation Table(SBAT)와 SBAT Depot

OLE 파일의 데이터 블록의 대부분이 스트림 데이터로 채워져 있지만, 모든 스트림의 크기가 4096(0x1000) Byte를 넘는 것은 아니다. 즉, 작은 크기의 스트림도 많다는 의미이다. 스트림의 크기가 4096(0x1000) Byte 보다 크면 Big Block Allocation Table(BBAT)를 참조해서 링크 구조를 따라가서 블록을 취합하게 되는데...
더 읽기

OLE 파일 포맷 (4) - 프로퍼티(Property)와 프로퍼티 스토리지(Storage)

OLE 파일 내부에는 폴더(스토리지)와 파일(스트림)이 존재하는데 이들 개개의 정보를 프로퍼티라고 하며, 프로퍼티를 보관하는 곳을 프로퍼티(Property) 스토리지라 한다. 아래는 test_ole.hwp 파일의 내부를 SSViewer를 통해 내부를 들여다 본 모습이다. 아래의 좌측에 존재하는 트리구조의 화면이 바로 test_ole.hwp 파일의 스토리지와 스트림의 구성 모양이다. 프로퍼티의...
더 읽기

OLE 파일 포맷 (3) - Block Allocation Table(BBAT)와 BBAT Depot

Big Block Allocation Table(BBAT)은 OLE 내부의 스트림의 위치 정보를 저장하고 있으며, 이들은 모두 링크 구조로 되어있다. 이 BBAT는 OLE 파일이 커지면 커질수록 크기가 증가하게 된다. 여기서 BBAT Depot은 BBAT가 저장된 저장소를 의미한다. 먼저, BBAT Depot을 알아보자. 헤더에는 Number of Big Block...
더 읽기

OLE 파일 포맷 (2) - 헤더 블록

헤더 블록은 OLE 블록 중 -1 블록에 해당하는 영역이다. 이 영역에는 OLE 파일 전체의 구조를 접근하기 위한 주요 정보들이 존재한다. 자세한 값을 살펴보기 전에 아래의 소스 코드를 입력하여 해당 내용을 비교하면서 보면 좋을 것이다. [소스 코드 : test_ole_block.py] 001 :...
더 읽기