[ 팁 ] 2019 카카오 블라인드 공채 2차 오프라인 - Elevator --- ② 시뮬레이션

金弘均·2021년 10월 15일
0

Tip

목록 보기
2/6
post-thumbnail

# Environment

  • OS : windows 10
  • Terminal : Git Bash (관리자모드로 실행!!!)
  • Language : Python3 (3.9.7)

그런데 elevator.exe 로 서버를 실행시킨 후

python example.py 로 샘플 코드를 한번 실행시킨 뒤
또다시 실행시켜보면 에러가 발생한다


에러 메시지를 보며 한참을 뒤적거리다가...

이 명령어 때문에 에러가 나는것 같은데...
이 명령어는 example.py 에서 처음으로 손님을 태우는 명령어인데...

설마, 서버가 켜질 때 문제 별로 승객이 초기화 되는 것인가?!?
그러면 해당 문제를 다시 풀려면 서버를 껐다 다시 켜야 되는 것인가?!?


그렇다. 그랬던 것이다.
해당 문제를 푼 후 다시 풀려면 서버를 껐다 켜야 했다.
그리고 이러한 작업은 굉장히 귀찮았다.

어떻게 하면 문제를 풀 때마다 새로 서버를 킬 수 있을까 고민하다가
python 이라면 분명 괜찮은 package 가 있을 것이라고 생각했고
구글링을 통해 방법을 알아낼 수 있었다.

  • 서버 켜기
import os

server_path = <path of elevator.exe>
pwd = ow.getcwd()
os.chdir(os.path.dirname(server_path))
os.startfile(server_path)
os.chdir(pwd)

# Warning!

os.startfile(server_path)elevator.exe 실행시
os.chdir(os.path.dirname(server_path))
elevator.exe 가 위치한 디렉토리로 바꾸어주지 않으면
/viewer/main.css/viewer/main.js 를 찾지 못해서
제대로 실행되지 않더라...

그러므로 elevator.exe 실행할 때만 잠깐 해당 디렉토리로 갔다가 되돌아오자

  • 서버 끄기
import psutil

for proc in psutil.process_iter():
    if proc.name() == 'elevator.exe':
        proc.terminate()

/start API 를 호출할 때
위 코드를 적절히 넣어서
서버를 키고 끄는 것을 자동화할 수 있으니
카카오 공채를 준비하시는 많은 분들에게 도움이 되었으면~


그리고 하나더,

연습하다보면 Token 이 너무 많이 쌓여서
http://localhost:8000/viewer 창이 필요없는 토큰 값들로 가득차게 되는데

이때는 아래의 명령어로 logs 폴더의 토근값으로된 이름의 로그 파일들을 지워주시면 됩니다

find $GOPATH/src/2019-blind-2nd-elevator/logs -type f ! -name ".gitkeep" -delete
profile
이런 미친 게임을 봤나! - 옥냥이

0개의 댓글