흔히 네트워크쪽에서 많이 쓰는 기법인데, 일정시간만 원하는 동작을 하도록 하는 것이다. 예를 들면 특정한 site에 접속을 시도하는데, 하루종일 시도할 수는 없으니, 1분동안만 시도하게 만드는 것이다.
이런 동작의 구현은 대부분 [ref. 1] 에 있는 source code 처럼 이루어진다. 이 포스트에서는 단순히 코드에 대한 이해를 위해 이 소스코드를 만들어가는 과정을 설명한다면 이렇다.
일정시간동안 사람에게 무슨 일을 끝내라고 지시한다는 것의 대표적인 예는 영화에 자주 나온다. 시한폭탄을 장착해 놓고 폭탄이 터지기 전에 특정일을 하도록 만드는 것이다. 이 코드에서 사용하는 logic 도 비슷하다.
먼저 일정시간 후에 터지는 폭탄을 만들자. 그러기 위해서는 우리는 폭탄에 장착될 timer 가 필요하다. 이것을 Pseudo code로 아래처럼 작성하자.
timer.on(time) # time 이라는 시간 후에 터진다. timer.off() # timer 를 끈다.
이 timer 가 폭탄을 터뜨리는 방아쇠(trigger) 를 하게 된다. 그럼 이제 폭탄도 있어야 할 것이다. 그래야 어떤 일을 하도록 강제할 수 있으니까 ^^
그럼 이제 폭탄을 만들어보자. 그럼 아래처럼 코드가 완성될 것이다.
def bomb(): blowing() timer.on(time, bomb) timer.off()
이제 우리는 10초 짜리 시한폭탄을 장착하고, 이 시간 안에 특정 동작(doSomething()) 을 하도록 하자.
def bomb(): blowing() timer.on(time, bomb) doSomething() timer.off()
이게 [ref. 1] 에 있는 소스코드의 logic 이다. 참고하도록 하자.
댓글 없음:
댓글 쓰기