AI 70+ 연구원
미래를 준비하자! 설 땅이 없다
[AI FONT] : 지능형 서체 합성 및 청정 뼈대(스켈레톤) 추출 최종 출고 교과서 (시리즈8)
[학습 가이드] INTELLIGENT CHARACTER SYNTHESIS & SKELETON MAPPING
자음·모음 구조적 통합과 주변부 파편 소거 마감 공정
구글 코랩 연산 가마에서 분리되어 있던 가로, 세로, 곡선, 사선 획들을 하나의 가상 공간 안에 유기적으로 조립하는 지능형 서체 합성 단계입니다. AI 가마가 자음과 모음의 조형적 균형을 스스로 연산하여 단단한 글자 구조를 만들고, 연산 과정에서 발생한 주변부의 미세한 하얀 먼지 잔상(노이즈)들을 수학적 마스크(Mask) 필터링으로 완벽하게 소거하는 고도화 공정을 실현했습니다.
초기 단계의 안개 같은 회색빛 아지랑이를 한 칼에 베어내고, 오직 글자의 중심축이 되는 단단한 뼈대(스켈레톤)선만 칠흑 같은 공간 속에 또렷하게 남겨 보따리로 패킹하는 감격적인 최종 마감 순간을 실전 코드와 스캔 이미지로 만나보겠습니다.
🗺️ AI 폰트 마스터 학습 로드맵 (Roadmap)
- Step 1. 지능형 획 결합: 낱개로 분리된 다형성 획들을 하나의 유기적 글자 구조로 합성 완료
- Step 2. 지능형 스켈레톤 추출: 형태학적 필터를 활용해 글자의 중심 뼈대선 정밀 스캔 및 고정
- Step 3. 청정 외곽선 필터링: 뼈대 주변부의 지저분한 하얀 파편 먼지를 수학적 마스크로 100% 소거
- Step 4. 마스터피스 종합 스캔: 배경 노이즈가 완벽히 차단된 무결점 청정 뼈대 서체의 최종 검수
- Step 5. 무결점 통합 패킹 및 배송: PNG 파일 변환 및 최종 마스터 ZIP 보따리 실제 PC 다운로드 준비 완료
🟢 STAGE 8 : 지능형 서체 합성 및 청정 뼈대 추출 마스터 파이프라인
코랩 공책 맨 아래에 + 코드 창을 추가하며 최종 고도화 자동화 스위치를 차례대로 온(ON) 해주십시오.
💡 [필수 체크] 구글 드라이브 보안 통문 개방하기
압축 명령을 내릴 때 코랩 화면에 “노트북에서 Google Drive 파일에 액세스하도록 허용하시겠습니까?”라는 승인 팝업창이 뜨면 당황하지 마시고 오른쪽 아래의 [Google Drive에 연결] 버튼을 클릭한 뒤, 이어서 계정 승인 창에서 [허용]을 선택해 주어야 일꾼이 창고 문을 열고 정상적으로 포장을 시작합니다.
1단계. 지능형 획 결합 및 중심 뼈대(스켈레톤) 추출
분리되어 있던 획들을 하나의 구조로 연결하고, 외곽의 펑퍼짐한 살점들을 다이어트하듯 깎아내어 일정한 굵기를 가진 순수 중심축 선을 끄집어내는 매핑 스크립트입니다.
# 지능형 획 합성 및 형태학적 뼈대 스캔 연산
import torch
import torch.nn as nn
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
IMAGE_SIZE = 256
# 가우시안 커널 기반 필터를 3회 반복 적용하여 형태학적 뼈대선 추출
for _ in range(3):
skeleton_line = torch.nn.functional.conv2d(skeleton_line, kernel_2d, padding=padding)
print("🟢 [성공] 지능형 스켈레톤 추출 완료: 구조적 중심 축 확인 완료")
🎬 [AI 시각화 매칭] 뼈대 추출 필터로 인해 초기 노이즈 파편(하얀 먼지)이 함께 증폭되어 나타난 1차 스캔 상태
[여기에 image_68fe5f.png 이미지 삽입 / 글자의 중심축 뼈대는 잡혔으나
배경 안개 잔상이 하얀 점 파편 형태로 사방에 깔려 있는 필터링 전 단계]
2단계. 청정 영역 마스킹 필터링 및 최종 마스터 보따리 출고
원본 글자 행렬을 마스크 지도로 삼아 영역 밖의 하얀 먼지들을 원천 소거하고, 칠흑 같은 청정 배경 위에 명품 뼈대만 남겨 `font_master_perfect_8.zip` 상자로 출고하는 피날레 스크립트입니다.
# 수학적 마스크 영역 연산을 통한 하얀 먼지 파편 소거
clean_mask = torch.where(raw_character > -0.5, torch.tensor(1.0), torch.tensor(0.0))
final_clean_font = clean_skeleton * clean_mask
# 배경 구역은 완전한 검은색(-1.0)으로 완벽 소거 처리
final_clean_font = torch.where(clean_mask == 0, torch.tensor(-1.0), final_clean_font)
print("[최종 완료] 청정 필터링 마감 및 마스터 보따리 'font_master_perfect_8.zip' 출고 완료!")
🎬 [AI 시각화 매칭] 사방의 흙먼지를 완전히 걷어내고 정갈하게 완성된 시리즈 8 마스터피스 청정 뼈대 서체
[여기에 image_690678.png 이미지 삽입 / 하얀 먼지 파편들이 단 1픽셀도 남지 않고
소거되어 칠흑 같은 공간 속에 순수 중심 뼈대만 굳건히 서 있는 최종 완료 상태]
📌 STAGE 8 마스터의 완벽 출고 핵심 포인트
- 유기적 구조 합성: 따로 흩어져 돌던 개별 획들을 하나의 256 연산 가마 안에서 결합하여 완벽한 하나의 ‘글자 조형미’를 정립했습니다.
- 청정 스켈레톤 제어: 가우시안 중심축 필터 and 영역 마스킹을 결합해 초기 연산 먼지를 100% 소거하고 일관된 굵기의 견고한 뼈대를 확보했습니다.
- 📥 최종 창고 확인: 코랩 왼쪽 메뉴판 열쇠(🔑) 아이콘 바로 밑의 ‘파일’ 방에서
font_master_perfect_8.zip보따리의 점 3개(⋮)를 눌러 실제 다운로드하시면 최종 출고가 완료됩니다. (학습자용 이정표)
📚 폰트마스터 시리즈 다시보기 (Navigation)
- 시리즈 1편: Generative AI 폰트 자동화 생성 엔진의 서막
- 시리즈 2편: 나노 단위 폰트 표본 데이터 가마 정제 요령
- 시리즈 3편: 인공지능 레이어(Generator) 설계도 매커니즘
- 시리즈 4편: GPU 고속 가속 장치 가동 및 오류 해결 지름길
- 시리즈 5편: 압축 보따리 로컬 드론 다운로드 파일 공정 성공
- 시리즈 6편: 256 고해상도 고도화 Epoch 및 칼날 선명도 검수 교과서
- 시리즈 7편: 다각화 서체 규칙 주입 및 선명도 임계치 필터링 제어 교과서
- 시리즈 8편: 지능형 서체 합성 및 청정 뼈대(스켈레톤) 추출 교과서 [현재 글]
AI는 내가 만든 한글 스텐실 서체를 이해할 수 있을까?
52개의 원도에서 시작된 한 사람의 도전.
그리고 한 번의 실패를 경험한 뒤, 다시 AI에게 묻는다.
“이번에는 정말 할 수 있겠니?”
프롤로그 — 나는 다시 AI 앞에 앉았다 🤖
“`
이상하게도 새로운 서체를 시작할 때마다 가슴이 설렌다.
하지만 이번에는 설렘만 있는 것이 아니다.
마음 한쪽에는 조심스러운 두려움이 있다.
나는 이미 한 번 경험했다.
AI에게 서체 제작을 맡겨보고, 나름대로 열심히 준비하고,
많은 시간을 투자하고, 수없이 결과를 수정했다.
그런데 결과는 기대와 달랐다.
처음에는 조금만 더 수정하면 될 것 같았다.
한 글자만 고치면 될 것 같았고,
원도를 조금 더 만들면 될 것 같았고,
AI에게 설명을 조금 더 자세하게 하면 될 것 같았다.
그러나 어느 순간 깨달았다.
“내가 지금 앞으로 가고 있는 것인가?
아니면 계속 제자리에서 맴돌고 있는 것인가?”
결국 많은 시간과 노력과 정렬을 소비한 뒤,
나는 다시 원점으로 돌아왔다.
그것은 단순한 실패가 아니었다.
다시 시작하는 데 필요한 용기까지 빼앗아 가는 경험이었다.
그래서 이번 프로젝트를 시작하면서 나는 AI에게 먼저 묻고 싶었다.
“ChatGPT, 너는 정말 할 수 있니?”
“`
01. 이번에 만들려는 것은 평범한 한글 폰트가 아니다
이번 프로젝트의 대상은 일반적인 명조체도 아니고, 고딕체도 아니다.
예쁜 손글씨체도 아니다.
내가 만들고 싶은 것은 한글 스텐실 서체다.
스텐실 글자는 일반적인 폰트와 생각하는 방법부터 다르다.
글자의 모양만 아름답다고 끝나는 것이 아니다.
실제로 글자를 잘라내거나, 뚫어내거나, 페인트로 찍어내야 한다.
그러려면 글자의 어느 부분은 끊어져야 하고,
어느 부분은 반드시 연결되어 있어야 한다.
그런데 연결부를 너무 많이 만들면 글자가 둔해지고,
너무 적게 만들면 글자가 무너진다.
글자의 형태와 스텐실의 물리적 구조 사이에서
끊임없이 균형을 잡아야 한다.
💡 이것이 내가 AI에게 기대하는 것이다
단순히 “스텐실처럼 생긴 글자”를 만들어 달라는 것이 아니다.
내가 만든 설계 원칙을 이해하고,
그 원칙을 유지하면서 새로운 한글을 만들어내기를 바라는 것이다.
02. 처음에는 과거의 흔적부터 찾으려 했다
처음에는 대한민국의 옛 군용 스텐실 자료를 찾아보려 했다.
내가 만들려는 서체가 완전히 허공에서 나온 것이 아니라,
우리나라의 실제 역사 속에서 사용되었던 문자 형태와 연결되기를 바랐기 때문이다.
그래서 옛날 군부대 사진, 군용 차량, 창고, 정비시설,
산업시설, 철도시설, 공공기관의 페인트 글씨까지 찾아보았다.
그러나 현실은 생각보다 냉정했다.
자료가 없다.
정확히 말하면 자료가 전혀 없는 것은 아니다.
하지만 서체를 연구하고 재현할 만큼 체계적으로 남아 있는 자료는 너무 부족했다.
사진은 있어도 글자가 너무 작았다.
글자가 보여도 해상도가 낮았다.
한두 글자는 보이지만 전체적인 규칙을 파악하기 어려웠다.
그렇게 자료를 찾는 시간이 길어지면서
나는 한 가지 사실을 인정할 수밖에 없었다.
⚠️ 자료를 기다리다가는 서체를 만들지 못할 수도 있다
과거의 자료를 찾는 것은 중요하다.
그러나 자료가 충분해질 때까지 기다린다면,
이 프로젝트는 영원히 시작되지 않을 수도 있다.
03. 그래서 나는 방향을 바꾸었다
과거의 자료를 복원하는 데 모든 시간을 쓰는 대신,
내가 직접 만든 원도를 출발점으로 삼기로 했다.
그리고 이 결정은 이번 프로젝트의 가장 중요한 전환점이 되었다.
“자료를 먼저 완성하는 것이 아니라,
제작을 시작하면서 규칙을 발견하자.”
이것이 지금 내가 선택한 방법이다.
완벽한 규칙을 먼저 만들고 글자를 제작하는 것이 아니다.
글자를 하나씩 만들어 보면서 문제가 생기면 그때 규칙을 만든다.
글자를 만든다
문제를 찾는다
방법을 찾는다
원칙을 기록한다
다음 글자에 적용한다
04. 그리고 내 손에는 52개의 원도가 있었다
나는 이미 오랜 시간 동안 기본 글자를 만들고 있었다.
Adobe Illustrator에서 직접 글자를 설계했다.
하나하나의 획을 살피고, 글자의 공간을 살피고,
스텐실 구조를 고려하면서 기본 글자를 만들었다.
그렇게 만들어진 것이 바로 52개의 기본 스텐실 원도다.
이 52자는 단순한 연습용 글자가 아니다.
이 프로젝트의 출발점이자,
앞으로 만들어질 수많은 글자의 기준이 될 가능성이 있는 중요한 자료다.
📁 현재 52개 원도의 상태
- Adobe Illustrator에서 직접 제작
- 이미 스텐실 구조가 적용된 기본 원도
- 총 52자
- PNG 형식
- 한 폴더에 보관
- 바탕색과 명확하게 대비되는 검정색으로 제작
- 현재 PC에 보관 중
- 아직 Google Drive에는 업로드하지 않음
이 원도들을 보면 가슴이 설렌다.
“이것으로 정말 한글 스텐실 폰트를 만들 수 있을까?”
동시에 걱정도 된다.
“혹시 내가 만든 52자를 AI가 제대로 이해하지 못하면?”
05. 원도는 많을수록 AI가 잘 이해할까?
여기에서 또 하나의 고민이 생겼다.
AI에게 스텐실 서체의 규칙을 이해시키려면
원도가 많을수록 좋지 않을까?
초성도 더 많이 보여주고,
중성도 더 많이 보여주고,
종성도 더 많이 보여주면
AI가 공통적인 구조를 발견하기 쉬울 것 같다.
하지만 원도를 하나 더 만드는 데도 시간이 필요하다.
열 개를 더 만들면 열 배의 시간이 걸리는 것은 아니더라도,
분명히 상당한 시간과 노력이 들어간다.
“AI가 더 잘 이해하도록 원도를 더 만들어야 하는가?”
아니면,
“이미 만든 52자만으로 먼저 시험해 봐야 하는가?”
06. 나는 이미 한 번 실패했다
이 질문이 쉽게 결정되지 않는 이유가 있다.
나는 과거에 다른 AI를 이용하여 폰트 제작 실험을 한 적이 있다.
처음에는 기대가 컸다.
AI는 빠르게 무언가를 만들어냈다.
그래서 나도 더 많은 원도를 만들었다.
더 정확하게 설명하고,
더 많은 자료를 준비하고,
더 많은 시간을 투자했다.
하지만 결과는 생각처럼 되지 않았다.
AI가 만들어낸 글자는 얼핏 보면 비슷했다.
하지만 자세히 보면 내가 원하는 구조와 달랐다.
한 글자에서는 맞는 것 같았지만,
다른 글자에서는 규칙이 무너졌다.
다시 설명했다.
다시 수정했다.
다시 원도를 만들었다.
다시 정리했다.
그렇게 많은 시간을 소비했다.
그리고 결국 나는 원점으로 돌아왔다.
그 경험이 이번 프로젝트에서 가장 큰 경계심이 되었다.
🧠 그래서 이번에는 다르게 시작한다
나는 AI에게 무조건 믿고 맡기지 않을 것이다.
먼저 AI가 내 원도를 이해할 수 있는지 시험할 것이다.
내가 만든 스텐실 규칙을 추출할 수 있는지 확인할 것이다.
그리고 새로운 글자를 만들었을 때,
그 결과가 정말 내가 만든 서체의 DNA를 이어받았는지 직접 확인할 것이다.
07. 그래서 ChatGPT에게 직접 물었다
나는 ChatGPT에게 솔직하게 물었다.
“너는 정말 이 일을 해낼 수 있니?”
이것은 단순한 호기심이 아니다.
내가 만든 52개의 원도를 AI에게 보여주면
AI는 그 글자의 모양을 볼 수 있을 것이다.
그러나 보는 것과 이해하는 것은 다르다.
이해하는 것과 재현하는 것도 다르다.
그리고 재현하는 것과
새로운 글자를 같은 원칙으로 만들어내는 것은 또 다른 문제다.
🤖 내가 AI에게 요구하는 진짜 능력
- 내가 만든 스텐실 구조를 이해할 것
- 글자의 공통적인 설계 원칙을 찾아낼 것
- 브리지와 끊김의 원리를 분석할 것
- 초성·중성·종성의 구조적 관계를 파악할 것
- 내가 의도하지 않은 변형을 멋대로 만들지 않을 것
- 새로운 글자를 만들 때 기존 원칙을 유지할 것
- 문제가 발생하면 그 이유를 설명할 것
08. AI는 ‘비슷하게’ 만드는 것과 ‘같은 규칙으로’ 만드는 것이 다르다
이것이 이번 프로젝트에서 가장 중요한 문제다.
AI가 스텐실처럼 보이는 글자를 만드는 것은 어렵지 않을 수도 있다.
하지만 내가 원하는 것은 그것이 아니다.
내가 원하는 것은,
“내가 만든 스텐실 서체의 DNA를 유지하면서
새로운 글자를 만들어내는 것”
이것은 전혀 다른 문제다.
예를 들어 하나의 글자에서는 브리지가 적절하게 보였는데,
다른 글자에서는 같은 규칙을 적용하면 글자의 판독성이 떨어질 수 있다.
그러면 AI는 단순히 “비슷하게 보이도록” 만들 것이 아니라,
왜 그 글자에서는 규칙을 수정해야 하는지 이해해야 한다.
이것이 바로 이번 프로젝트의 핵심 난제다.
09. 그래서 나는 AI를 시험하기로 했다
나는 더 이상 처음부터 수백 개의 원도를 만들고 싶지 않다.
먼저 시험해 보려고 한다.
이미 만들어 놓은 52개의 원도 중에서
스텐실 구조를 대표할 수 있는 몇 개를 선택한다.
그리고 AI에게 묻는다.
🧪 첫 번째 검증 실험
① 대표 원도 5개를 보여준다.
② AI가 글자의 구조를 분석한다.
③ AI가 내가 사용한 스텐실 설계 규칙을 추론한다.
④ AI가 추론한 규칙을 문서화한다.
⑤ 내가 그 규칙을 검토한다.
⑥ AI가 그 규칙을 이용해 새로운 글자를 만들어 본다.
⑦ 내가 결과를 평가한다.
⑧ 부족한 부분을 다시 수정한다.
이 실험의 결과는 세 가지 중 하나가 될 것이다.
중요한 것은 실패해도 좋다는 것이다.
지금 실패하는 것이 낫다.
5개의 원도를 가지고 실패하는 것이
500개의 원도를 만들고 실패하는 것보다 훨씬 낫다.
10. 아직 SVG 변환은 서두르지 않는다
현재 52개의 원도는 PNG다.
최종적으로 폰트를 만들려면 벡터 기반의 글리프 데이터가 필요할 가능성이 높다.
하지만 지금 당장 SVG로 변환할 필요는 없다.
먼저 중요한 것은 원본을 안전하게 보존하는 것이다.
PNG 원도는 그대로 유지한다.
필요하다면 나중에 SVG나 다른 벡터 형식으로 변환한다.
🔒 원본은 절대 서두르지 않는다
52개의 PNG 원도는 이 프로젝트의 출발점이다.
원본을 보존한 상태에서 실험하고,
변환본은 언제든 다시 만들 수 있도록 관리한다.
11. 이번에는 AI에게 프로젝트를 맡기지 않는다
정확히 말하면,
AI에게 모든 것을 맡기지 않는다.
AI는 이 프로젝트의 주인이 아니다.
서체의 최종 판단은 내가 한다.
AI는 나를 대신하는 디자이너가 아니라,
나와 함께 문제를 해결하는 연구 도구가 되어야 한다.
사람의 설계 의도
+
AI의 분석 능력
+
벡터·폰트 제작 기술
나는 이 세 가지를 연결해 보려고 한다.
이것이 성공한다면,
단순히 하나의 스텐실 폰트를 만드는 것 이상의 의미가 있을지도 모른다.
AI를 이용하여 한글 서체를 개발하는
새로운 제작 방법론이 될 수도 있기 때문이다.
12. 아직 나는 답을 모른다
솔직히 말하면,
이 프로젝트가 반드시 성공한다고 장담할 수 없다.
AI가 52개의 원도를 보고 내가 생각하는 것처럼 이해할지도 아직 모른다.
새로운 글자를 만들었을 때
내가 만족할 만큼 정확하게 규칙을 유지할지도 모른다.
그리고 최종적으로 실제 폰트 파일을 만들어
상용 수준으로 사용할 수 있을지도
아직은 실험을 해봐야 한다.
그러나 한 가지는 분명하다.
이번에는 결과만 기록하지 않을 것이다.
실패하는 과정까지 모두 기록할 것이다.
13. 이 웹사이트는 앞으로 하나의 연구 기록이 될 것이다
앞으로 이 프로젝트의 모든 과정은 기록으로 남길 예정이다.
잘된 결과만 보여주지 않을 것이다.
AI가 엉뚱한 결과를 만들면 그것도 기록한다.
원도를 다시 수정하면 그 이유도 기록한다.
규칙이 틀렸다면 왜 틀렸는지 기록한다.
작업을 중단했다가 다시 시작한다면 그 과정도 기록한다.
왜냐하면 이 프로젝트에서 가장 중요한 것은
최종적으로 만들어진 폰트 하나가 아닐 수도 있기 때문이다.
오히려 더 중요한 것은,
“한글 스텐실 서체를 AI와 함께 어떻게 만들어 갈 수 있었는가?”
그 답을 찾는 과정 자체가 하나의 연구가 될 것이다.
14. 그리고 이제, 진짜 실험이 시작된다
지금 내 컴퓨터에는 52개의 PNG 원도가 있다.
아직 Google Drive에도 올리지 않았다.
아직 SVG로 변환하지도 않았다.
아직 최종 폰트 제작 프로그램도 결정하지 않았다.
아직 완성된 규칙집도 없다.
그런데 이상하게도 나는 지금이 가장 설렌다.
이제부터는 진짜로 확인할 수 있기 때문이다.
AI는 정말 내가 만든 스텐실 글자를 이해할 수 있을까?
그리고 더 중요한 질문.
내가 만든 52개의 글자에서
새로운 한글을 만들어낼 수 있을까?
“`
52개의 원도 중 대표 5자를 선택하다
AI는 이 5개의 글자를 보고
연구원님의 스텐실 설계 의도를 이해할 수 있을 것인가?
“`
어쩌면 이 프로젝트는 성공할 수도 있고,
중간에 또 다른 벽을 만날 수도 있다.
“`
그러나 이번에는 한 가지 약속을 했다.
처음부터 끝까지 모든 과정을 기록하겠다.
52개의 원도에서 시작해서,
한 글자씩 만들어 보고,
실패하고,
다시 고치고,
규칙을 발견하고,
AI와 논쟁하고,
결국 하나의 폰트가 탄생하는 순간까지.
이것은 아직 완성된 폰트에 대한 이야기가 아니다.
이제 막 시작된 한글 스텐실 서체 제작의 기록이다.
AI 기반 한글 스텐실 서체 개발 프로젝트
52개의 원도에서 시작하여, 하나의 폰트가 완성될 때까지.
“`