본문 바로가기

전체 글89

아이폰 사진을 PC로 옮겼더니 옆으로 눕습니다, 파일 안에서 달라진 건 1바이트였습니다 여기 사진 파일이 두 개 있습니다. 크기는 둘 다 60,607바이트로 같고, 그림 데이터만 뽑아 지문(SHA-256)을 찍어 보면 그 값도 똑같습니다. 그런데 하나는 화면에서 옆으로 눕고, 하나는 똑바로 섭니다.폰에서는 멀쩡하던 세로 사진이 컴퓨터로 옮기자마자 눕는 일이 자주 생깁니다. 파일이 옮기다 상한 걸까 싶지만, 두 파일을 바이트 단위로 맞춰 보니 다른 자리는 딱 한 군데였습니다. 그 한 바이트가 무엇인지 직접 만들어 확인했습니다. 사진에는 방향을 적어 두는 칸이 따로 있습니다스마트폰 카메라의 센서는 폰을 어떻게 들고 있든 늘 같은 방향으로 빛을 받습니다. 세로로 들고 찍어도 파일에 저장되는 픽셀은 가로로 누운 상태 그대로입니다.대신 카메라는 사진 정보(EXIF) 안에 Orientation이라는.. 2026. 8. 30.
내려받은 폰트가 한글을 지원하는지, 설치하기 전에 코드로 확인하는 법 해외 폰트 사이트에서 마음에 드는 서체를 내려받았는데,정작 적용해 보면 한글 부분만 시스템 기본 폰트로 뭉개져 나오는 경우가 있습니다.미리보기 이미지는 영어로만 되어 있어서, 한글을 지원하는지 설치하기 전에는 알기가 애매합니다. 사실 폰트 파일 안에는 "이 폰트가 어떤 글자를 담고 있는지"를 정리한 목록이 그대로 들어 있습니다.그 목록을 직접 읽어서, 실제로 설치된 폰트들이 한글을 얼마나 담고 있는지 확인해 봤습니다. cmap이라는 이름의 색인표폰트 파일에는 cmap이라는 테이블이 있습니다. "유니코드로 이 번호의 글자가 오면, 몇 번 글리프(글자 그림)를 보여줘라"는 대응표입니다. 이 표에 없는 글자는 애초에 그릴 그림이 없다는 뜻이라, 화면에서는 다른 폰트가 대신 그려 주거나 빈 네모(□)로 표시됩니.. 2026. 8. 29.
폰트를 설치했는데 프로그램 목록에 안 보일 때, 원인을 구분하는 법 폰트 파일을 더블클릭해서 "설치" 버튼까지 눌렀는데, 파워포인트나포토샵의 글꼴 목록에는 이름이 안 뜨는 상황이 있습니다. 다시 설치해도 마찬가지고,재부팅까지 해야 하나 싶어집니다. 이 증상은 원인이 한 가지가 아닙니다. 윈도우가 폰트를 등록하는 위치를 직접 조작해 보면서 어느 경우에 무엇이 안 보이는지 실제로 재현해 봤습니다. 윈도우는 폰트를 두 장부에 나눠 적습니다폰트를 설치하면 윈도우는 파일을 폰트 폴더에 두는 동시에, 레지스트리라는 시스템 설정 저장소에 "이 이름의 폰트가 여기 있다"는 목록을 남깁니다. 이 목록이 두 군데로 나뉜다는 점이 핵심입니다.구분레지스트리 위치적용 범위모든 사용자용 설치HKEY_LOCAL_MACHINE\...\Fonts이 PC를 쓰는 모든 계정, 관리자 권한 필요나만 설치H.. 2026. 8. 28.
엑셀에 긴 카드번호나 코드를 붙여넣었더니 뒷자리가 이상해졌다면, 서식 문제가 아닙니다 주문번호, 카드번호, 일련번호처럼 자릿수가 긴 값을 엑셀에 붙여넣었는데 1.23457E+18 같은 지수 표기로 바뀌고, 서식을 텍스트로 고쳐도 뒷자리 몇 개가 0으로 뭉개져 있는 걸 본 적 있으실 겁니다. "서식만 텍스트로 바꾸면 되겠지"라고 시도했다가 이미 늦었다는 걸 알게 되는 경우가 많습니다.실제로 19자리 숫자를 파이썬 openpyxl로 엑셀 파일에 저장해 보고, 그 값이 파일 안에 정확히 어떻게 남는지 xlsx 내부 XML을 직접 열어 확인해 봤습니다. 서식은 겉모습만 바꿉니다, 저장된 값 자체는 못 건드립니다1234567890123456789라는 19자리 값을 셀에 그대로 넣고 저장한 뒤,xlsx 압축을 풀어 시트 XML을 들여다봤습니다.1.234567890123457e+18지수 표기는 화면.. 2026. 8. 27.
엑셀 조건부 서식 규칙이 수백 개로 쪼개지는 이유, 200번 복사 붙여넣기를 직접 재현 후기 [홈] 탭의 [조건부 서식] → [규칙 관리]를 눌렀다가 화면 가득 늘어선 규칙 목록을 보고 놀란 적 있으신가요. 셀 몇 개에만 색을 입힌 기억밖에 없는데, 목록에는 비슷한 규칙이 수십, 수백 개씩 쌓여 있는 경우가 흔합니다.엑셀 용량이 갑자기 무거워지는 원인을 진단했던 글의 FAQ에서 이 질문에 짧게만 답한 적이 있는데, 이번엔 그 부분만 따로 떼어 실제로 확인해 봤습니다. 범인은 대개 복사 붙여넣기입니다. 규칙 하나를 다른 범위에 복사해 붙일 때마다, 엑셀은 기존 규칙을 넓히는 대신 새 규칙을 하나 더 만드는 방식으로 처리합니다. 이게 실제로 파일에 어떤 흔적을 남기는지, 같은 서식을 200번 나눠 붙인 상황을 직접 만들어 확인해 봤습니다. 같은 조건, 규칙 개수만 다르게 만들어 봤습니다2,000행 .. 2026. 8. 26.
엑셀 파일이 안 열릴 때, 손상된 건지 확장자만 다른 건지 구조로 구분하기 거래처에서 받은 xlsx 파일을 열었더니 "파일이 손상되어 열 수 없습니다" 창이 뜨는 상황, 다들 한 번쯤 겪어 보셨을 겁니다. 그런데 이 메시지가 뜨는 이유는 하나가 아닙니다. 진짜로 파일이 깨진 경우도 있고, 애초에 확장자만 xlsx일 뿐 안에 든 건 다른 문서인 경우도 있습니다.확장자를 바꾼다고 파일 내용까지 바뀌는 게 아니라는 이야기는 예전에 다룬 적이 있는데, 이번엔 그 반대 상황, 그러니까 확장자만 xlsx인 척하는 파일이 실제로 어떻게 걸러지는지를 봅니다. 두 경우를 실제로 만들어서, 각각 어떤 흔적을 남기는지 파이썬으로 직접 열어 비교해 봤습니다. 케이스 1. 진짜로 손상된 파일정상 xlsx 파일 하나를 만든 뒤, 파일 끝부분 500바이트를 잘라내 일부러 망가뜨렸습니다. zip은 파일 맨.. 2026. 8. 25.
가변 폰트(Variable Font)란, 파일 하나로 굵기가 바뀌는 원리를 열어서 확인했습니다 폰트를 내려받다 보면 이름 뒤에 "Variable"이 붙은 파일을 마주칠 때가 있습니다. Thin, Light, Regular, Bold처럼 굵기별로 파일이 따로 있는 게 아니라 딱 하나뿐인데, 정작 적용해 보면 슬라이더로 굵기를 자유롭게 조절할 수 있어 신기하게 느껴집니다.실제로 윈도우에 이미 들어 있는 가변 폰트와, 국내에서 많이 쓰는 오픈소스 가변 폰트를 열어 그 안의 구조를 직접 읽어 봤습니다. fvar이라는 이름의 조절판가변 폰트에는 fvar이라는 테이블이 있고, 여기에 "이 폰트가 어떤 축을 따라 얼마나 변할 수 있는지"가 적혀 있습니다. 대표적인 축이 굵기(wght)이고, 폭(wdth)이나 기울기(slnt) 같은 축을 함께 가진 폰트도 있습니다. fontTools 4.63.0으로 윈도우에 기.. 2026. 8. 24.
엑셀에는 15%로 보이는데, 파이썬으로 읽으면 왜 0.15가 나올까 엑셀 파일을 파이썬으로 불러와 처리하는 스크립트를 짜다 보면, 분명 화면에서는 "15%"라고 보이던 셀이 코드에서는 0.15로 찍히는 순간을 마주치게 됩니다. 처음 보면 데이터가 잘못 읽힌 줄 알고 당황하기 쉽습니다.결론부터 말씀드리면 버그가 아닙니다. 퍼센트나 통화 기호, 날짜처럼 "보기 좋게 꾸며진 값"은 셀 안에 그렇게 저장되어 있지 않습니다. 실제로 어떻게 저장되는지 xlsx 내부를 열어 확인해 봤습니다. 세 가지 서식으로 직접 저장해 봤습니다퍼센트, 통화, 날짜 서식을 각각 지정한 셀을 openpyxl 3.1.5로 만들어 저장한 뒤, 압축을 풀어 xlsx 내부 XML을 직접 읽었습니다. 세 셀 모두 태그 안에는 순수한 숫자만 있습니다."%"도, "원"도, "-"도 파일 어디에도 문자로 적.. 2026. 8. 23.
한컴 없이 hwp 열기, 확장자 바꾸기가 안 통하는 이유와 실제로 되는 방법 hwp 파일을 받았는데 열리지 않을 때 확장자를 doc로 바꿔 보라는 조언을 자주 만납니다.그런데 막상 해 보면 워드가 파일을 집어 드는 것 같다가 깨진 글자만 잔뜩 뱉거나 아예 거부합니다. 왜 될 듯 말 듯 하다가 안 되는지 궁금해서, hwp 파일 하나를 골라 안을 직접 열어 봤습니다.공공데이터포털에서 배포하는 활용가이드 문서였고 크기는 163,840바이트였습니다. 겉봉투는 같은데 속에 든 서류가 다릅니다파일 종류는 확장자가 아니라 파일 맨 앞의 몇 바이트로 판별됩니다. 이 hwp의 앞 8바이트를 찍어 보니 이렇게 나왔습니다.d0 cf 11 e0 a1 b1 1a e1이 서명은 OLE 복합 파일이라는 뜻입니다.예전 워드의 doc, 예전 엑셀의 xls와 글자 하나 다르지 않게 같은 서명입니다. 확장자를.. 2026. 8. 15.
한글 폰트 하나가 13MB, 잘못 받은 게 아니라 글자 수 때문입니다 폰트를 하나 내려받았는데 파일 크기가 13MB로 찍히면 손이 멈칫하게 됩니다.글자 모양 하나 담은 파일이 사진 수십 장 분량이니 뭔가 잘못 받았나 싶어집니다. 윈도우에 이미 깔려 있는 폰트들을 직접 열어 재 봤습니다.결론부터 말씀드리면 고장도, 잘못 받은 것도 아닙니다. 다만 "한글 폰트라서 크다"는 설명도 절반만 맞았습니다.숫자부터 보겠습니다폰트 파일 안에는 글자 하나하나의 모양이 글리프라는 이름으로 들어 있습니다.쉽게 말해 글자별 그림 한 장씩입니다. 이 개수를 같이 놓고 보면 크기 차이가 단번에 설명됩니다. 폰트파일 크기글리프 수한글 음절라틴 문자맑은 고딕13,459,196 B28,21511,172215나눔고딕4,343,844 B20,13811,172191Arial1,045,720 B4,651052.. 2026. 8. 14.
사진 옮겼더니 찍은 날짜가 전부 오늘, 촬영일이 진짜 사라지는 지점은 따로 있습니다 여행 사진 수백 장을 폰에서 컴퓨터로 옮겨 놓고 날짜순으로 정렬했더니,몇 년에 걸쳐 찍은 사진이 전부 같은 날 찍힌 것처럼 줄을 섭니다.파일 목록에 뜬 날짜는 하나같이 오늘입니다. 먼저 안심하셔도 되는 사실부터 말씀드립니다.그 상태에서도 촬영일은 대부분 사진 안에 그대로 살아 있습니다.실제로 처리 방식을 바꿔 가며 재 보니,촬영일이 정말 없어지는 지점은 따로 있었습니다.. 사진 한 장에 날짜가 두 개 들어 있습니다혼란의 출발점은 여기입니다. 우리가 흔히 보는 "수정한 날짜"는 운영체제가 파일에 붙여 두는 속성이고,카메라가 기록한 "찍은 날짜"는 사진 파일 안쪽 EXIF라는 영역에 따로 저장됩니다. 저장되는 자리가 아예 다릅니다.EXIF는 사진을 찍을 때 카메라가 남기는 메모입니다. 이번 실측에 쓴 J.. 2026. 8. 11.
용량 제한에 걸린 큰 파일, 조각으로 나눠 보내고 받은 쪽에서 합치는 법 큰 영상을 보내려다 용량 제한에 막히면 대개 분할 압축을 떠올리게 됩니다.그런데 막상 하려고 보면 궁금한 게 생깁니다. 나눠서 보내면 총 용량도 줄어드는 걸까요.조각을 하나 잃어버리면 나머지라도 건질 수 있을까요. 두 질문 모두 실제로 나누고 합쳐 보면 답이 분명해집니다.60MB 파일을 20MB씩 잘라 보내고 다시 합치는 과정을 처음부터 끝까지 재현해 봤습니다. 나눈다고 총 용량이 줄지는 않습니다먼저 첫 번째 질문부터 정리하겠습니다. 분할은 파일을 작게 만들지 않습니다.하나짜리 덩어리를 여러 개로 썰어 놓을 뿐입니다. 실측에서 조각 4개의 크기를 더하니 압축 파일과 1바이트도 다르지 않았습니다. 압축 쪽은 어떨까요. 영상처럼 이미 압축된 데이터를 대신한 파일은 7z로 묶었더니오히려 3,278바이트 늘.. 2026. 8. 10.
행은 3천 개뿐인데 엑셀 파일이 3.4MB, 용량을 먹는 범인을 파일 안에서 찾아내기 엑셀 파일이 무거워지면 대개 데이터가 많아서라고 생각하게 됩니다. 하지만 실제로는 데이터 양과 파일 용량이 따로 노는 경우가 훨씬 흔합니다.3,000행짜리 주문 내역을 실제로 만들어 저장해 보니 130.1KB였습니다. 그런데 같은 데이터에 무엇을 얹느냐에 따라 이 파일은 1MB가 되기도 하고 3.4MB가 되기도 했습니다. 데이터는 한 줄도 늘지 않았는데 말입니다. 먼저, 엑셀 파일은 사실 압축 폴더입니다xlsx 파일은 하나의 덩어리가 아니라 여러 개의 파일을 ZIP으로 묶어 놓은 꾸러미입니다.시트의 셀 내용, 서식 정의, 삽입된 사진이 각각 다른 파일로 들어 있습니다. 그래서 지금 당장, 프로그램을 하나도 설치하지 않고 내 파일의 범인을 확인할 수 있습니다. 문제의 파일을 복사한 뒤 복사본의 확장자를 .. 2026. 8. 9.
움짤(GIF) 용량이 유독 커요, 프레임과 색상 수로 줄이는 법 사진 몇 장을 이어 붙여 움짤을 만들었는데, 정지 사진 하나보다 용량이 몇 배나 커진 경험 있으신가요. 카카오톡으로 보내려니 전송이 느리고, 커뮤니티에 올리려니 용량 제한에 걸리기도 합니다.결론부터 말씀드리면 GIF 용량은 화질 손실 압축인 JPG와 계산 방식이 다릅니다. 프레임 수와 색상 수, 이 두 가지가 용량을 사실상 결정합니다. 같은 3초짜리 애니메이션을 설정만 바꿔 실제로 저장해 봤습니다.실제로 만들어서 재 봤습니다움직이는 도형이 담긴 300x300 크기의 3초짜리 애니메이션을 파이썬 Pillow로 직접 생성해, 프레임 수와 색상 수만 바꿔가며 GIF로 저장하고 용량을 쟀습니다. 측정 환경은 윈도우 11, 파이썬 3.14.3, Pillow 12.2.0입니다.설정파일 용량10프레임, 256색181.. 2026. 8. 8.
여러 개의 PDF를 하나로 합치고, 필요한 페이지만 빼내는 법 계약서, 영수증, 신분증 사본을 따로따로 스캔해 두었다가 한 파일로 제출해야 할 때가 있습니다. 반대로 여러 장짜리 PDF에서 딱 두 장만 보내야 할 때도 있고요.PDF는 워드처럼 열어서 이어 붙이기가 쉽지 않아 막막하게 느껴집니다. 그래서 합치기와 페이지 빼내기를 실제로 해 보고, 그 과정에서 용량과 페이지 수가 어떻게 변하는지 함께 재 봤습니다. PDF 3개를 실제로 합쳐 봤습니다3페이지짜리 계약서, 2페이지 영수증, 1페이지 신분증 사본을 준비했습니다. 세 파일을 더하면 6페이지, 용량은 약 838KB입니다.이 셋을 하나로 병합한 결과입니다. 측정 환경은 윈도우 11, 파이썬 3.12.10, pypdf 6.14.2입니다.파일페이지용량계약서.pdf3418.5 KB영수증.pdf2279.9 KB신분증... 2026. 8. 7.