
제목
단순히 '돌아가는 코드'만 짠다면, 당신의 커리어는 3년 내로 끝납니다.
(본문)
솔직히 고백하자면, 저는 꽤 오랫동안 '백엔드 개발자'라는 타이틀 뒤에 숨어 살았습니다. 스타트업에서 "일단 돌아가게 만들어!"라는 구호 아래 구르던 시절, 제게 있어 프론트엔드의 디테일이나 접근성(Accessibility)은 사치였습니다. API 응답 속도, 트랜잭션 정합성, DB 인덱스 설계가 중요했지, 폰트가 깨지든 스크린 리더가 어떻게 읽든 그건 "내 알 바 아니오"라고 생각했죠.
최근 체계 잡힌 대기업으로 이직하고 나서야, 제가 얼마나 오만한 '기능 구현 기계'였는지 뼈저리게 느끼고 있습니다. 오늘 소개할 이야기는 저의 이런 기술적 편협함을 부끄럽게 만든, 어느 집요한 개발자의 '1626년 아일랜드 서체 복원기'에 대한 글입니다.
문제: 레거시를 대하는 우리의 태도
이 글의 원작자는 아일랜드의 고대 서체인 '인설라(Insular) 스크립트'를 웹에 구현하고 싶어 했습니다. 과거 아일랜드어는 특정 자음 뒤에 점(dot)을 찍어 발음을 부드럽게(연음) 표시했는데, 타자기가 보급되면서 기술적 한계로 점 대신 알파벳 'h'를 뒤에 붙이는 방식이 표준이 되었습니다.
백엔드 관점에서 보자면 이건 전형적인 '기술 부채에 의한 데이터 마이그레이션'입니다. 하드웨어(타자기)의 제약 때문에 데이터의 표현 방식이 바뀐 것이죠. 보통의 개발자라면, 아니 과거의 저라면 이렇게 말했을 겁니다. "그냥 표준 폰트 쓰세요. 구글 번역기도 잘 돌아가고, 현대 표준이 'h' 표기법이니 그게 효율적입니다."
하지만 원작자는 타협하지 않았습니다. 그는 고대 서체의 아름다움을 현대 웹 브라우저에 되살리면서도, 데이터의 본질(검색 가능성, 접근성)을 해치지 않는 방법을 집요하게 파고들었습니다.
실패와 극복: 뷰(View)와 데이터(Data)의 우아한 분리
단순히 옛날 폰트 파일을 적용하는 것은 쉽습니다. 하지만 원작자는 여기서 멈추지 않았습니다. 폰트만 바꾸면 스크린 리더나 검색 엔진은 텍스트를 제대로 인식하지 못하기 때문입니다.
그가 찾아낸 해결책은 놀랍도록 '백엔드스러우면서도' 프론트엔드의 끝판왕 같은 방식이었습니다.
- OTF의 Discretionary Ligatures(재량 합자) 활용: 폰트 파일 내부를
FontForge로 뜯어고쳤습니다. '자음+h' 조합이 입력되면, 시각적으로는 '점 찍힌 고대 자음'으로 렌더링되게 만들었습니다. 즉, HTML상의 실제 데이터는 현대적인 표기(h 포함)를 유지하되, 사용자 눈에만 1626년 스타일로 보이는 것이죠. 데이터 무결성과 심미성을 동시에 잡은 겁니다. - 접근성(A11y)에 대한 집착: 여기서 끝이 아닙니다. 그는 비(非)아일랜드어 사용자를 위해
<ruby>태그(주로 일본어 후리가나에 쓰이는)를 해킹 수준으로 활용했습니다. 아일랜드어 위에 영어 번역을 작게 띄우면서도, 스크린 리더가 이를 중복해서 읽거나 엉뚱하게 해석하지 않도록sr-only클래스와aria-hidden속성을 정교하게 조합했습니다.
깨달음: AI 시대, 개발자의 진짜 경쟁력
이 글을 읽으며 머리를 한 대 맞은 기분이었습니다. 저는 그동안 효율이라는 핑계로 얼마나 많은 디테일을 뭉개왔을까요?
요즘 저는 Cursor나 Claude 같은 AI 도구를 끼고 삽니다. 솔직히 간단한 CRUD API나 보일러플레이트 코드는 이제 AI가 저보다 빨리 짭니다. 만약 우리가 단순히 "기능을 구현하는 사람"에 머문다면, 우리는 3년 안에 설 자리를 잃을지도 모릅니다.
하지만 이 아일랜드 서체 프로젝트처럼, '기술적 제약 안에서 문화적 맥락을 보존하고, 소외되는 사용자(스크린 리더 사용자 등)까지 배려하는 설계'는 아직 AI가 스스로 해내기 어렵습니다. 이것은 기술의 영역을 넘어선 '장인 정신'이자 '인문학적 고민'이기 때문입니다.
결론: 디테일이 곧 실력입니다
주니어, 미들급 개발자 여러분. 혹시 "이건 프론트엔드 문제잖아", "이건 기획서에 없었잖아"라며 선을 긋고 계시진 않나요?
물론 일정은 빠듯하고 리소스는 언제나 부족합니다. 저도 압니다. 하지만 가끔은 이 아일랜드 개발자처럼, 단 하나의 디테일을 위해 토끼굴(Rabbit hole)로 들어가는 경험이 필요합니다. 그 과정에서 얻는 FontForge 지식, ARIA 속성에 대한 깊은 이해, 그리고 무엇보다 사용자를 향한 집요함이 여러분을 '코더'가 아닌 대체 불가능한 '엔지니어'로 만들어줄 것입니다.
저도 내일 출근하면, 습관적으로 넘겼던 레거시 코드의 주석 한 줄, API 에러 메시지 한 줄부터 다시 들여다봐야겠습니다. 기술은 차갑지만, 그것을 다루는 우리의 마음은 좀 더 뜨거워도 되니까요.


