
카멜케이스 표기법은 문구 중간에있는 각 단어 또는 약어가 공백이나 구두점없이 대문자로 시작하도록 문장을 작성하는 방법이다. 작성된 모양이 낙타(Camel)의 혹과 비슷하다고 해서 명명되어 졌다. 카멜케이스는 컴퓨터 프로그래밍 세계로 부터 시작된 표기법이다.
컴퓨터 프로그래밍 세계에서 카멜케이스 표기법의 기원은 Smalltalk에서 시작되었다는 이야기도 있고 C programmer와 해커등이 좀더 간단한 표기법을 만들어 냈다는 이야기도 존재하지만 확실한 기원을 찾을 수 없다.
초기 컴퓨터 프로그래밍 환경은 대문자 표기법만을 지원했고 문자열의 갯수를 제한하는 경우도 있었고 디스프레이 화면의 크기는 작았다. 공백은 무시되거나 파일끝 식별자로 사용되었고 특수문자역시 지원하지 않았다. 그래서 여러단어가 들어있는 이름을 지을때 단어간 구별이 어려워 가독성이 떨어졌다.
이후 초기 프로그래밍 언어중 Lisp, COBOL 등은 공백을 하이픈(-)으로 대체하여 문제를 해결하였다. FORTRAN등의 언어처럼 변수 이름에 공백을 사용할 수 있는 언어도 있었지만 변수명을 길게 지을 수 없는 제한이 있어 그다지 유용하지 않았다.

이런 문제들은 1960년대 후반 표준 ASCII character set이 만들어지고 소문자와 특수문자 모두가 사용이 가능해지면서 해결되었다. 특히 C언어는 언더스코어(_)를 구별자로 사용하는 방식을 채택하였다. 그러나 다른 프로그래밍 언어들은 언더스코어(_)와 공백을 혼동하지 않도록 혹은 기타 제한등의 문제등으로 언더스코어가 아닌 카멜케이스 방식을 채택하게 되었다. (당시에는 일부 폰트에서 밑줄이 가독성을 떨어뜨리는 경우와 QWERTY 자판에서 언더스코어키가 불편한 곳에 자리잡고 있는 문제등도 있엇다)
이후 카멜케이스 방식의 표기법은 컴퓨터 세계를 중심으로 퍼져나갔다. 회사이름을 카멜케이스 표기법으로 짓는 곳도 많이 생겨났다(YouTube, NetWare) 그리고 자바등의 많은 현대 프로그래밍 언어에서도 카멜케이스 표기법을 적용해서 사용한다.
카멜케이스의 역사를 살펴보면 결국 이 표기법은 제한된 프로그래밍 환경에서 가독성을 끌어올리려는 시도중에 하나로 시작되었다. 컴퓨터 시스템에서 공백은 예나 지금이나 특별한 의미를 띄고 있다(공백이 들어 있는 파일 이름은 아직도 종종 문제를 일으킨다). 따라서 공백을 대신해서 단어 구별자가 필요했고 초기에는 하이픈을 사용했고 아스키코드가 표준이 된 이후에는 공백과 비슷한 효과를 줄 수 있는 언더스코어를 쓰는 흐름과 카멜케이스를 쓰는 흐름으로 나눠지게 된 것이다.
하지만 카멜케이스 표기법은 어디까지나 컴퓨터 시스템의 한계로 인해 탄생한 방법이다. 실제 생활에서 문장을 카멜케이스 표기법으로 만드는 사람은 없을 것이다. 공백을 제대로 지원하는 환경에서는 그냥 공백을 사용하자. Michael G Schwern 이라는 표기가 MichaelGSchwern 보다는 낫지 않은가?