본문 바로가기
Programing/Knowledge

[CS] Stub

by 꾸압 2022. 12. 9.

 

<설명>

  - 더 긴 Program을 대체하는 작은 Program Routine. 나중에 Load 되거나 원격으로 위치 가능.

  - Code가 상호작용해야 하는 다른 System을 Simulate 하는 작은 Code 조각.

  - 예상되는 Signature(i.e. name & accepted arguments)를 갖지만 불완전 구현체(Implementation)인 Function

  - 아주 단순한 개념으론 Interface 확인과 Testing 을 위한 Fake Implementation.

 

 - 호출된 Function이 완전히 작성되기 전에, Function을 호출하는 Code를 Test 할 수 있도록 Stub Function을 배치.

 

  - 종속 System 없이도 Code를 실행하고 Test 가능.

  - Semi-Inelligent 일 수 있으며, Input에 따라 다양한 Response를 가질 수 있음.

  - Stub은 각자의 자리가 있기에 맞지 않은 용도로 부적절한 사용될 수 있으며, 실제 Backend처럼 응답하지 않으므로 Performance Test에 사용 불가.

 

  - Stub 과 Mock 은 Test Environment 라 많은 개발자가 서로 같다고 생각하는데, Test Result 확인 방법에 차이가 있으므로 다른거임. (Martin Powler & Mock 개발자 피셜)

 


 

[예시_1, Stub Function 구조]

function balanceBudget(int year) {
    /* TBD */
}

 


 

[예시_2]

  - Remoted Procedure Call 을 사용하는 Program은 Stub으로 Compile 됨.

    ==> 위 Stub은 '요청된 Procedure를 제공하는 Program을 대체'.

 


 

[예시_3]

  - 재무 세부 정보 집합을 계산하기 위해 Mainframe으로 가야하지만 아직 구축되지 않은 Website에서 작업하는 경우, Stub은 마치 거기에 있는 것 처럼 사용 가능한 '유효 세부 정보 집합' 으로 Hard Coding 됨.

 


 

<참조 1> https://www.techtarget.com/whatis/definition/stub

<참조 2> https://www.quora.com/What-does-stub-mean-in-programming

<참조 3> https://martinfowler.com/articles/mocksArentStubs.html 

<참조 4> https://stackoverflow.com/questions/9777822/what-does-to-stub-mean-in-programming

<참조 5>

 

 

'Programing > Knowledge' 카테고리의 다른 글

[Knowledge] Map (맵) 이란 무엇인가?  (0) 2023.04.09
[CS] Batch File 동작 원리(Operating Principle)  (0) 2022.12.10
[CS] Remote Procedure Call (RPC)  (0) 2022.12.08
[CS] Mount  (0) 2022.12.07

댓글