본문 바로가기

전체 글

발표 자료가 6MB가 됐습니다, 슬라이드를 지워도 안 줄어드는 이유는 따로 있습니다 발표 자료를 메일로 보내려는데 용량이 걸려 슬라이드를 몇 장 덜어낸 경험이 있으실 겁니다. 그런데 장수를 줄여도 파일이 별로 가벼워지지 않는 경우가 많습니다.파워포인트 파일의 용량이 무엇으로 정해지는지 조건을 바꿔 가며 저장하고 재 봤습니다. 결론부터 말하면 슬라이드 수는 거의 상관이 없었습니다. 텍스트 10장은 41KB, 사진 한 장은 683KB먼저 기준을 잡았습니다. 글자만 있는 슬라이드 10장짜리 파일은 41.1KB였습니다. 여기에 사진 한 장을 슬라이드 가득 채워 넣은 파일은 683.1KB가 됐습니다.사진 한 장이 글자 슬라이드 160장 남짓한 무게를 가진 셈입니다. 발표 자료에서 장수를 세는 것이 왜 의미가 없는지가 여기서 갈립니다. 중요한 것은 몇 장이냐가 아니라 이미지가 몇 개나 들어 있느냐.. 더보기
아이폰 사진을 PC로 옮겼더니 옆으로 눕습니다, 파일 안에서 달라진 건 1바이트였습니다 여기 사진 파일이 두 개 있습니다. 크기는 둘 다 60,607바이트로 같고, 그림 데이터만 뽑아 지문(SHA-256)을 찍어 보면 그 값도 똑같습니다. 그런데 하나는 화면에서 옆으로 눕고, 하나는 똑바로 섭니다.폰에서는 멀쩡하던 세로 사진이 컴퓨터로 옮기자마자 눕는 일이 자주 생깁니다. 파일이 옮기다 상한 걸까 싶지만, 두 파일을 바이트 단위로 맞춰 보니 다른 자리는 딱 한 군데였습니다. 그 한 바이트가 무엇인지 직접 만들어 확인했습니다. 사진에는 방향을 적어 두는 칸이 따로 있습니다스마트폰 카메라의 센서는 폰을 어떻게 들고 있든 늘 같은 방향으로 빛을 받습니다. 세로로 들고 찍어도 파일에 저장되는 픽셀은 가로로 누운 상태 그대로입니다.대신 카메라는 사진 정보(EXIF) 안에 Orientation이라는.. 더보기
내려받은 폰트가 한글을 지원하는지, 설치하기 전에 코드로 확인하는 법 해외 폰트 사이트에서 마음에 드는 서체를 내려받았는데,정작 적용해 보면 한글 부분만 시스템 기본 폰트로 뭉개져 나오는 경우가 있습니다.미리보기 이미지는 영어로만 되어 있어서, 한글을 지원하는지 설치하기 전에는 알기가 애매합니다. 사실 폰트 파일 안에는 "이 폰트가 어떤 글자를 담고 있는지"를 정리한 목록이 그대로 들어 있습니다.그 목록을 직접 읽어서, 실제로 설치된 폰트들이 한글을 얼마나 담고 있는지 확인해 봤습니다. cmap이라는 이름의 색인표폰트 파일에는 cmap이라는 테이블이 있습니다. "유니코드로 이 번호의 글자가 오면, 몇 번 글리프(글자 그림)를 보여줘라"는 대응표입니다. 이 표에 없는 글자는 애초에 그릴 그림이 없다는 뜻이라, 화면에서는 다른 폰트가 대신 그려 주거나 빈 네모(□)로 표시됩니.. 더보기
폰트를 설치했는데 프로그램 목록에 안 보일 때, 원인을 구분하는 법 폰트 파일을 더블클릭해서 "설치" 버튼까지 눌렀는데, 파워포인트나포토샵의 글꼴 목록에는 이름이 안 뜨는 상황이 있습니다. 다시 설치해도 마찬가지고,재부팅까지 해야 하나 싶어집니다. 이 증상은 원인이 한 가지가 아닙니다. 윈도우가 폰트를 등록하는 위치를 직접 조작해 보면서 어느 경우에 무엇이 안 보이는지 실제로 재현해 봤습니다. 윈도우는 폰트를 두 장부에 나눠 적습니다폰트를 설치하면 윈도우는 파일을 폰트 폴더에 두는 동시에, 레지스트리라는 시스템 설정 저장소에 "이 이름의 폰트가 여기 있다"는 목록을 남깁니다. 이 목록이 두 군데로 나뉜다는 점이 핵심입니다.구분레지스트리 위치적용 범위모든 사용자용 설치HKEY_LOCAL_MACHINE\...\Fonts이 PC를 쓰는 모든 계정, 관리자 권한 필요나만 설치H.. 더보기
엑셀에 긴 카드번호나 코드를 붙여넣었더니 뒷자리가 이상해졌다면, 서식 문제가 아닙니다 주문번호, 카드번호, 일련번호처럼 자릿수가 긴 값을 엑셀에 붙여넣었는데 1.23457E+18 같은 지수 표기로 바뀌고, 서식을 텍스트로 고쳐도 뒷자리 몇 개가 0으로 뭉개져 있는 걸 본 적 있으실 겁니다. "서식만 텍스트로 바꾸면 되겠지"라고 시도했다가 이미 늦었다는 걸 알게 되는 경우가 많습니다.실제로 19자리 숫자를 파이썬 openpyxl로 엑셀 파일에 저장해 보고, 그 값이 파일 안에 정확히 어떻게 남는지 xlsx 내부 XML을 직접 열어 확인해 봤습니다. 서식은 겉모습만 바꿉니다, 저장된 값 자체는 못 건드립니다1234567890123456789라는 19자리 값을 셀에 그대로 넣고 저장한 뒤,xlsx 압축을 풀어 시트 XML을 들여다봤습니다.1.234567890123457e+18지수 표기는 화면.. 더보기
엑셀 조건부 서식 규칙이 수백 개로 쪼개지는 이유, 200번 복사 붙여넣기를 직접 재현 후기 [홈] 탭의 [조건부 서식] → [규칙 관리]를 눌렀다가 화면 가득 늘어선 규칙 목록을 보고 놀란 적 있으신가요. 셀 몇 개에만 색을 입힌 기억밖에 없는데, 목록에는 비슷한 규칙이 수십, 수백 개씩 쌓여 있는 경우가 흔합니다.엑셀 용량이 갑자기 무거워지는 원인을 진단했던 글의 FAQ에서 이 질문에 짧게만 답한 적이 있는데, 이번엔 그 부분만 따로 떼어 실제로 확인해 봤습니다. 범인은 대개 복사 붙여넣기입니다. 규칙 하나를 다른 범위에 복사해 붙일 때마다, 엑셀은 기존 규칙을 넓히는 대신 새 규칙을 하나 더 만드는 방식으로 처리합니다. 이게 실제로 파일에 어떤 흔적을 남기는지, 같은 서식을 200번 나눠 붙인 상황을 직접 만들어 확인해 봤습니다. 같은 조건, 규칙 개수만 다르게 만들어 봤습니다2,000행 .. 더보기
엑셀 파일이 안 열릴 때, 손상된 건지 확장자만 다른 건지 구조로 구분하기 거래처에서 받은 xlsx 파일을 열었더니 "파일이 손상되어 열 수 없습니다" 창이 뜨는 상황, 다들 한 번쯤 겪어 보셨을 겁니다. 그런데 이 메시지가 뜨는 이유는 하나가 아닙니다. 진짜로 파일이 깨진 경우도 있고, 애초에 확장자만 xlsx일 뿐 안에 든 건 다른 문서인 경우도 있습니다.확장자를 바꾼다고 파일 내용까지 바뀌는 게 아니라는 이야기는 예전에 다룬 적이 있는데, 이번엔 그 반대 상황, 그러니까 확장자만 xlsx인 척하는 파일이 실제로 어떻게 걸러지는지를 봅니다. 두 경우를 실제로 만들어서, 각각 어떤 흔적을 남기는지 파이썬으로 직접 열어 비교해 봤습니다. 케이스 1. 진짜로 손상된 파일정상 xlsx 파일 하나를 만든 뒤, 파일 끝부분 500바이트를 잘라내 일부러 망가뜨렸습니다. zip은 파일 맨.. 더보기
가변 폰트(Variable Font)란, 파일 하나로 굵기가 바뀌는 원리를 열어서 확인했습니다 폰트를 내려받다 보면 이름 뒤에 "Variable"이 붙은 파일을 마주칠 때가 있습니다. Thin, Light, Regular, Bold처럼 굵기별로 파일이 따로 있는 게 아니라 딱 하나뿐인데, 정작 적용해 보면 슬라이더로 굵기를 자유롭게 조절할 수 있어 신기하게 느껴집니다.실제로 윈도우에 이미 들어 있는 가변 폰트와, 국내에서 많이 쓰는 오픈소스 가변 폰트를 열어 그 안의 구조를 직접 읽어 봤습니다. fvar이라는 이름의 조절판가변 폰트에는 fvar이라는 테이블이 있고, 여기에 "이 폰트가 어떤 축을 따라 얼마나 변할 수 있는지"가 적혀 있습니다. 대표적인 축이 굵기(wght)이고, 폭(wdth)이나 기울기(slnt) 같은 축을 함께 가진 폰트도 있습니다. fontTools 4.63.0으로 윈도우에 기.. 더보기