1. 개요
프로그래밍 코드 설멸 및 예제에서 임시로 변수이름을 지정해줘야 할 때 주로 쓰이는 변수 이름이다. foo 외에 bar, baz, Fie, Foe, Fee 및 붙여서 foobar 등도 함께 쓰이곤 한다.주로 쓰는 이유는 아래와 같다.
- 프로그래밍 언어의 문법상 맞지만, 원래 이름을 가리고 싶을 때
- (질문자가 원하는 것이) 다른 클래스나 변수가 아닌 'foo'에 대한 내용임을 강조할 때
- 코드 스니펫이나 코드 예제 등에서 '당신이 원하는 실제 이름으로 바꿔야 하는 칸' 임을 표시할 때 (place holder)
스택 오버플로에서 흔히 볼 수 있다.
2. 유사 단어
- 사람이름의 대표예시인 홍길동, (김+)철수/영희
- 계약서나 법률문서의 갑/을/병 (영어에서는 John Doe와 Richard Roe[1])
- Lorem Ipsum 등은 디자인 분야에서 쓰며, 프로토타이핑 시 세세한 내용에 집중되지 않도록 그럴싸하나 의미없는 문구로 쓰인다.
3. 유래
- 세계 2차대전 당시 미 육군에서 쓰이던 여러 줄임말 중, 알아보지 못할 정도로 개판이 됐다는 뜻인 FUBAR(Fucked Up Beyond All Recognition)에서 Foo와 Bar가 유래했다는 설이 있다[2].
- 위 설의 변형으로 FUBAR가 사실은 Fucked Up Beyond All Repair (고치지도 못할 정도로 奀됐다.) 의 줄임말이라는 말이 있다.
- For Once Only의 줄임말 이라는 설이 있다. 다른 설들에 비해서 너무 단순하고 근거가 부족해서 인기있는 설 축엔 끼진 못하지만 이것 만큼 딱 떨어지는 뜻을 가진 설도 없는 듯하다.
- 일부 의견으로 중국계 미국 이민자들 사이에서 자주 글귀로 쓰여지던 "福"자의 구어 발음이나 중영병기 각인을 미국인들이 읽거나 흉내내던 어감에서, 알 수 없는 외국어 마법주문 문구로써 사용된 사례가 있다고 한다.
- 컴퓨터 랭귀지 분야에서 최초 사용예는 초기 MIT팀에서 발견되며 Foo switches 등 바보(fool) 기능으로 구현되었고, 이후 FORTRAN으로 짜여진 텍스트 어드벤쳐 게임에서 변수명으로 발견되기도 한 뒤 UNIX등 POSIX계의 예제 코드에서 나오기 시작한다.
4. 사용 예
-
C언어
{{{#!syntax cpp
#include <stdio.h>
int main()
{
const char *foo = "Hello";
const char *bar = "World!";
fprintf(stdout, "%s %s\n", foo, bar);
const char *bar = "World!";
fprintf(stdout, "%s %s\n", foo, bar);
return 0;
}}}}
-
자바스크립트
{{{#!syntax javascript
function foo(bar,baz) {
return bar + baz;
}alert(foo(bar,baz));
}}}