처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.17 27

왜 옛날 컴퓨터는 변수 이름이 6자였을까? 'Six Characters'가 들려주는 코어 메모리의 비밀

Hacker News 원문 보기
왜 옛날 컴퓨터는 변수 이름이 6자였을까? 'Six Characters'가 들려주는 코어 메모리의 비밀

왜 하필 6글자였을까

옛날 프로그래밍 언어들, 특히 포트란(FORTRAN) 같은 언어를 만져본 분들은 한 번쯤 의아했을 거예요. 변수 이름이 왜 딱 6글자까지만 허용됐을까? 7글자도 아니고 8글자도 아니고, 왜 6일까. 그냥 우연인지, 아니면 무슨 깊은 이유가 있는지.

Ajit Em이라는 개발자가 자기 블로그에 "Iron Core, Part 2: Six Characters"라는 글을 올렸는데, 이 질문에 대한 명쾌한 답이 담겨 있어요. 결론부터 말하면, 6이라는 숫자는 그 시절 하드웨어가 강제한 결과였어요. 우리가 지금 너무나 당연하게 쓰는 "한 글자 = 8비트(1바이트)"라는 규칙이 정착되기 전, 다른 세상이 있었다는 이야기죠.

코어 메모리가 뭐예요?

글의 배경을 이해하려면 "코어 메모리(core memory)"라는 옛날 메모리 기술부터 알아야 해요. 이게 뭐냐면, 1950~70년대에 쓰였던 메모리인데, 작은 도넛 모양 자석 고리(코어)에 전선을 가로세로로 통과시켜서 자기장의 방향으로 0과 1을 저장하던 방식이에요. 지금의 D램은 전기를 끊으면 데이터가 사라지지만, 코어 메모리는 자기장이라 전원이 꺼져도 정보가 남았어요. 일종의 원시적인 비휘발성 메모리였던 거죠.

문제는 이게 너무 비싸고 컸다는 거예요. 1KB 만들려면 손바닥만 한 보드에 코어 수천 개를 손으로 일일이 꿰어야 했거든요. 그래서 한 글자(character)에 몇 비트를 쓸지가 정말 중요한 설계 결정이었어요. 비트 하나가 곧 돈이고 공간이었으니까요.

6글자의 비밀, 그리고 36비트의 세계

저자가 짚어주는 핵심은 이거예요. 그 시절 IBM 7090이나 DEC PDP-10 같은 메인프레임 컴퓨터들은 한 워드(word)가 36비트였어요. 지금 우리는 32비트, 64비트가 익숙하지만, 당시엔 36비트가 표준 중 하나였죠. 그리고 그 시절 한 글자는 6비트(BCD나 SIXBIT 인코딩)로 표현됐어요. 6비트면 64개 문자(영문 대문자, 숫자, 기호 일부)를 표현할 수 있어서 그럭저럭 충분했거든요.

자, 그럼 36비트 워드 하나에 6비트 글자를 몇 개 넣을 수 있을까요? 36 ÷ 6 = 6. 정확히 6글자가 들어가요. 이게 바로 변수 이름이 6글자였던 이유예요. 컴파일러가 변수 이름을 심볼 테이블에 저장할 때, 한 워드에 딱 들어가게 만들면 메모리도 절약되고 처리도 빠르거든요. 7글자 변수를 허용하려면 워드 하나가 더 필요하니까, 그 시절엔 엄청난 낭비였던 거죠.

ASCII와 8비트는 어떻게 천하통일했나

그러다 1960년대 후반에 ASCII(7비트)와 IBM의 EBCDIC(8비트)가 등장하면서 판도가 바뀌어요. 7비트면 128개 문자, 8비트면 256개 문자를 표현할 수 있으니까 대소문자 구분, 더 다양한 기호, 제어 문자까지 다 들어가게 됐죠. 결국 인텔이 8비트 = 1바이트로 굳혀버린 8080, 8086 시리즈가 PC 시대를 열면서 "한 글자는 8비트"가 전 세계 표준이 됐어요.

그러면서 자연스럽게 워드 크기도 8의 배수로 정착돼요. 16비트, 32비트, 64비트. 변수 이름 길이 제한도 점점 사라져서, 요즘은 256자든 1024자든 마음껏 길게 쓸 수 있게 됐고요. 자바스크립트로 getUserAuthenticationTokenFromRedisCacheWithFallback 같은 변수명을 쓰면서도 메모리 걱정을 안 하잖아요. 이게 다 하드웨어 발전의 선물인 거예요.

비슷한 "하드웨어가 코드 스타일을 결정한" 사례들

사실 이런 "하드웨어 제약이 코딩 관습을 만든" 사례는 꽤 많아요. C 언어의 int가 왜 주로 32비트인지도 결국 1980~90년대 CPU 워드 크기의 잔재고요. 줄 길이 80자 제한도 천공카드 한 장이 80칸이었던 데서 왔죠. 2자리 연도 표기로 Y2K 사태가 터진 것도 메모리 절약 때문에 "19"를 생략했던 관습이 발목을 잡은 거예요.

저자의 글은 이런 패턴 중 하나로 "6글자 변수명"을 보여주는 건데요, "코드의 스타일은 그 시대 하드웨어의 사진"이라는 통찰을 던져요. 우리가 지금 쓰는 관습들 중에도 미래 개발자들이 "왜 이렇게 했지?" 하고 의아해할 것들이 분명 있을 거고요.

한국 개발자에게 주는 시사점

실무에서 코어 메모리나 36비트 워드를 다룰 일은 거의 없어요. 그런데 이런 컴퓨터 역사를 알아두면 레거시 시스템을 만났을 때 당황하지 않을 수 있어요. 한국에서도 금융권, 공공기관에는 여전히 COBOL, 포트란으로 짠 코드가 돌아가고 있고, 한국전력이나 은행 메인프레임에는 EBCDIC 인코딩 데이터가 살아 숨 쉬어요. "왜 컬럼명이 6자야?"라는 의문이 들 때, 이 글에서 본 배경지식이 "아, 이거 코어 메모리 시절 잔재구나" 하는 통찰로 이어질 수 있죠.

또 한 가지 큰 시사점은 현재의 "당연함"을 의심하는 습관이에요. 우리가 지금 쓰는 UTF-8, 64비트 정수, 4KB 페이지 같은 것들도 다 누군가의 결정이고, 미래에는 바뀔 수 있어요. 그 결정의 배경을 이해하는 사람이 진짜 시스템을 설계할 수 있는 엔지니어가 되는 거고요.

마무리

핵심은 이거예요. 6글자 변수명은 우연이 아니라, 36비트 워드와 6비트 문자라는 하드웨어 제약의 흔적이라는 것. 코딩 관습 하나하나에 시대가 새겨져 있어요.

여러분이 일하면서 "왜 이렇게 만들어졌지?" 하고 궁금해했던 옛날 코드 관습이나 제약이 있나요? 그 답을 찾아본 경험이 있다면 댓글로 공유해주세요.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.