최근 수정 시각 : 2024-10-25 12:15:31

foo

1. 개요2. 유사 단어3. 유래4. 사용 예5. 관련 문서

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
/* C code */

#include <stdio.h>

int main()
{
const char *foo = "Hello";
const char *bar = "World!";
fprintf(stdout, "%s %s\n", foo, bar);
return 0;
}
}}}
  • 자바스크립트
    {{{#!syntax javascript
/* Javascript */

function foo(bar,baz) {
return bar + baz;
}

alert(foo(bar,baz));
}}}

5. 관련 문서



[1] 상기 Foe와 함께 ~oe로 끝나는 어감이 있음. [2] 프로그래밍 용례의 상황과 어감상 맞지는 않는다.