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

APL을 제대로 배우고 싶다면 - 'Mastering Dyalog APL' 무료 교재의 가치

Hacker News 원문 보기

한 줄로 행렬 곱셈을 끝내는 언어, APL

프로그래밍 언어 중에 정말 독특한 친구가 하나 있어요. 바로 APL(A Programming Language)입니다. 1960년대에 IBM의 케네스 아이버슨이 만든 언어인데, 코드를 보면 처음에는 "이게 도대체 뭐지?" 싶을 정도로 낯섭니다. 왜냐하면 +, - 같은 일반 키보드 문자 대신 , , , ∘.× 같은 특수 기호를 잔뜩 쓰거든요.

예를 들어 1부터 10까지의 합을 구한다고 해볼게요. 파이썬이면 sum(range(1, 11))이라고 쓰겠지만, APL에서는 그냥 +/⍳10이에요. 글자 다섯 개로 끝납니다. ⍳10은 "1부터 10까지의 배열을 만들어라"는 뜻이고, +/는 "앞에 있는 연산자(+)로 배열을 줄여라(reduce)"는 뜻이에요. 함수형 프로그래밍의 reduce/fold 개념이 1960년대에 이미 이렇게 한 글자로 표현됐던 거죠.

그런 APL을 제대로 공부하고 싶은 분들을 위해, Dyalog라는 회사가 만든 "Mastering Dyalog APL" 교재가 온라인에서 무료로 공개되어 있습니다. Dyalog는 현재 APL의 사실상 표준 구현체를 만드는 영국 회사인데, 800페이지가 넘는 이 책을 공식 사이트에서 챕터별로 전부 읽을 수 있게 풀어놨어요.

이 책이 다루는 내용

이 교재는 단순한 문법 소개에 그치지 않습니다. APL의 진짜 매력은 "배열을 통째로 다루는 사고방식"인데, 책은 그걸 단계별로 차근차근 가르쳐줍니다. 초반에는 스칼라와 벡터 연산부터 시작해서, 점차 다차원 배열, 랭크(rank) 연산자, 외적(outer product), 내적(inner product) 같은 강력한 도구들로 넘어가요.

중반부터는 함수 정의와 연산자(operator) 이야기가 본격적으로 나오는데, 여기가 진짜 재미있는 부분입니다. APL에서는 함수를 받아서 새로운 함수를 만드는 "연산자"라는 개념이 일급 시민이에요. f/ 처럼 슬래시 하나만 붙여도 어떤 함수든 reduce 연산으로 바뀌고, 처럼 점 두 개를 붙이면 map이 됩니다. 함수형 프로그래밍을 좋아하는 분이라면 "하스켈이 강조하는 고차 함수가 여기선 기호 한 글자로 끝나네?" 하는 충격을 받으실 거예요.

후반부에서는 "trains"와 "tacit programming" 같은 고급 주제도 다룹니다. 이게 뭐냐면, 인자를 명시적으로 쓰지 않고 함수들의 조합만으로 새로운 함수를 정의하는 스타일이에요. 예를 들어 평균을 구하는 함수를 (+/ ÷ ≢) 이렇게 정의할 수 있는데, "합을 개수로 나눈다"는 뜻 그대로 함수들이 줄지어 서 있어요. 변수 이름을 한 번도 안 썼는데 평균 함수가 완성되는 거죠.

왜 지금 APL을 배워야 할까요

솔직히 말하면, APL로 회사 일을 하시는 분은 한국에 거의 없을 거예요. 주로 금융권의 퀀트 분석이나 보험 계리, 일부 통계 분야에서만 쓰이고 있거든요. 그럼에도 APL을 공부하면 좋은 이유가 분명히 있습니다.

첫째, NumPy, Pandas, Julia 같은 도구를 더 잘 쓰게 됩니다. 이 도구들의 핵심은 "벡터화 연산"인데, 그 사고방식의 원조가 바로 APL이에요. 케네스 아이버슨이 APL을 만들면서 정립한 배열 사고는 이후 J, K, Q 같은 후계 언어로 이어졌고, 결국 우리가 쓰는 NumPy의 broadcasting, Pandas의 axis 기반 연산, R의 벡터 연산까지 모두 그 영향을 받았거든요. APL을 한 번 제대로 공부하면 "왜 NumPy에서 for 루프 대신 벡터 연산을 써야 빠른가"를 뼛속까지 이해하게 됩니다.

둘째, 사고방식이 바뀝니다. 우리는 보통 "각 원소를 하나씩 처리한다"는 관점으로 코드를 짜는 데 익숙해요. 그런데 APL은 "배열 전체를 한 번에 변환한다"는 관점을 강제합니다. 이런 식으로 생각하는 훈련을 하면, GPU 프로그래밍이나 SIMD 최적화, 데이터 엔지니어링 작업이 훨씬 자연스럽게 느껴져요.

비슷한 흐름의 언어들과 비교

APL 계열에는 여러 후계자가 있어요. J 언어는 APL의 특수 기호를 ASCII로 바꿔서 일반 키보드로 칠 수 있게 만든 버전이고, K와 Q는 금융권에서 시계열 데이터베이스 kdb+와 함께 엄청난 속도로 유명해진 친구들입니다. 월스트리트의 일부 트레이딩 시스템은 지금도 K/Q로 돌아가요.

최근에는 BQN이나 Uiua 같은 새로운 배열 언어들도 등장하고 있는데, APL의 우아함을 현대적으로 재해석한 시도들이에요. 특히 Uiua는 스택 기반과 배열 프로그래밍을 결합한 독특한 디자인으로 작은 팬덤을 만들고 있습니다.

이런 흐름을 보면 "낡은 언어"라고만 치부하기는 어려워요. 오히려 데이터 처리와 병렬 연산이 중요해질수록 배열 언어의 사고방식이 다시 조명받고 있거든요.

한국 개발자에게 추천하는 학습법

주말에 한두 시간씩 투자해서 이 책의 처음 5~6장 정도만 읽어보세요. APL 인터프리터는 Dyalog가 비상업적 용도로는 무료로 배포하니까 설치도 어렵지 않아요. 특수 기호 입력이 처음엔 어색한데, 백틱 키와 조합한 단축키 시스템이 있어서 며칠만 익숙해지면 괜찮습니다.

마무리

APL은 당장의 취업 시장에서는 쓸모가 적을 수 있지만, 사고의 도구로서는 분명히 값진 언어입니다. 한 줄로 복잡한 데이터 변환을 표현하는 경험은 다른 언어를 쓸 때도 두고두고 도움이 돼요.

여러분은 평소에 안 쓰는 "이상한 언어"를 일부러 공부해보신 적 있나요? 그런 경험이 실제 업무에 어떤 영향을 줬는지 궁금합니다.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

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

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

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

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

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