스텁은 소프트웨어 개발에 쓰이고 다른 프로그래밍 기능을 대리하는 코드이다.
스텁은 기존 코드(예를 들어 원격 머신의 프로시저)를 흉내내거나 아직 개발되지 않은 코드를 임시로 대치하는 역할을 수행한다.
BEGIN
Temperature = ThermometerRead(Outside)
IF Temperature > 40 THEN
PRINT "It's HOT!"
END IF
END
BEGIN ThermometerRead(Source insideOrOutside)
RETURN 28
END ThermometerRead
위의 의사 코드는 온도를 반환하는 함수 ThermometerRead
를 이용한다.
ThermometerRead
는 하드웨어 장치를 읽는 기능을 수행하여야 하지만, 아직 이에 필요한 코드를 포함하고 있지 않다.
따라서 ThermometerRead
는 프로세스를 시뮬레이션하는 것이 아니라 단지 허용 가능한 값을 돌려줌으로써 메인 프로그램을 일부라도 테스트할 수 있게 한다.
Source
라는 매개변수를 통해 실내와 실외 온도 중 무엇을 필요로 하는지 지정할 수 있지만, 호출자로부터 실제 전달된 값(insideOrOutside
의 값)을 사용하지 않는다.
스텁은 자기 자신과 매개변수를 선언하고, 대개의 경우 호출자를 위해 "행복한 시나리오"에서 예상되는 값을 돌려준다.
스텁은 인터페이스가 정의는 되어있으나 아직 구현되지 않았을 때, 인터페이스의 실제 구현 대신으로 주로 사용된다.
스텁은 프로그램과 컴파일되어 링크가 가능한 정도의 코드를 담고 있다. RMI 명명법으로는 스텁은 서버쪽과 스켈레톤(skeleton)으로 통신한다.