본문 바로가기

Log

20200804 종목분석기 개발일지 - 자동화 2차 시도.

https://nemowork.com/entry/20200803-%EC%A2%85%EB%AA%A9%EB%B6%84%EC%84%9D%EA%B8%B0-%EA%B0%9C%EB%B0%9C%EC%9D%BC%EC%A7%80-%EC%9E%90%EB%8F%99%ED%99%94%ED%95%98%EB%8B%A4

 

20200803 종목분석기 개발일지 - 자동화하다.

 사실 우리집에 둘째가 태어난지 이제 100일이 다되어 간다. 생후 80일쯤 되어가는데, 둘째에게 100일의 기적은 올 마음이 없고... ㅜㅜ 종목분석기를 매일 저녁 6시에 수동으로 돌리는 잠깐의 시��

nemowork.com

 어제의 작업 이후, 별 문제 없이 종목분석기 크롤러가 돌겠거니.. 라고 생각했는데, 메인보드의 바이오스 RTC를 이용한 시간 설정에 의해 자동으로 PC가 켜지고 windows 작업 스케줄러에 의해 작업 호출까진 재대로 이루어 졌으나, 작업관리자를 통해 확인해보니 종목분석기 프로그램이 호출이 된 것까진 좋았으나, 프로그램 내에서 대신증권 cybos api를 이용하기 위해 ncStarter를 호출하면 ncStarter의 프로세스만 뜨고 api 연결은 계속 행이 걸리는 현상이 발생하고 있었다. 

 원래부터 cybos api를 사용하기 위해서는 관리자 권한을 이용해 실행을 했어야 하기 때문에, windows 작업 스케줄러 또한 가장 높은 권한으로 실행하도록 설정해주었는데, 이 현상은 권한문제와는 상관없는 다른 문제로 구동에 실패한듯 했다. cybos api 실행시에 GUI 창이 뜨는게 있는데, 이게 작업 스케줄러로는 호출을 할수 없는 시스템 콜이 있다던가... 이런 문제가 아닐까 싶다. 아니면 나의 지식이 짧아서라던가..  

정말 온갖 설정을 바꿔가며 시도해보았으나...

 그래서 어제 작성한 포스팅의 작업내역중 3번 작업스케줄러 등록을 '시작프로그램 등록' 이라는 방법으로 우회해보았다. windows 10 기준으로 시작프로그램 등록방법은 간단하다. win + R 키를 눌러 실행창이 뜨면 여기서 'shell:startup' 을 입력한다. 그러면 시작프로그램을 등록할수 있는 폴더 경로로 윈도우 탐색기가 뜨는데...

이걸 치면...
이런 탐색기 폴더가 뜬다. 나는 로그 확인용 baretail과 종목분석기 실행 batch 파일을 복사해 넣었다.

  여기까지하면 윈도우 부팅시마다 시작프로그램 폴더에 넣은 프로그램들은 자동으로 실행된다. 다만 나같은 경우에는 시작프로그램에 등록된 프로그램중 catapult.bat가 관리자 권한으로 실행이 되야만 하는데, 이부분을 해결하는 방법은 windows의 관리도구를 이용해야 한다. (이게 이 포스팅에서 제일 중요하다!!)

'Windows 관리 도구 --> 로컬 보안 정책 --> 로컬 정책 --> 보안 옵션 --> 사용자 계정 컨트롤: 관리 승인모드에서 모든 관리자 실행' 항목을 기본값 '사용'에서 '사용안함'으로 변경한 후 재부팅을 해야한다. 이렇게 되면 windows내의 모든 실행 프로그램이 관리자 권한으로 실행이 되긴 하지만, 종목분석기 자동 실행이 가능하다. (그리고 오히려 이게 더 평소 윈도 사용에도 편한거 아닌가?)

이게 제일 중요하다.

 이제 진짜 자동화 끝!!