[컴][파이썬] 일정시간동안만 동작하게 하기 소스코드 로직 설명


흔히 네트워크쪽에서 많이 쓰는 기법인데, 일정시간만 원하는 동작을 하도록 하는 것이다. 예를 들면 특정한 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 이다. 참고하도록 하자.


References

  1. http://docs.python.org/2/library/signal.html#example

댓글 없음:

댓글 쓰기