본문 바로가기

DEV

JAVA 오토 타이핑 프로그렘 만들기

CTS성경타자통독

URL : https://bible.ctm.kr/

10년전 즈음 병원에 입원한적이 있었다.

멋있는 친구를 잃고 정말 말 그대로 몸도 마음도 아팠다. 병원에 입원해서 하루 하루 성경을 읽다가 타이핑 속도도 높혀볼 생각으로 CTM성경타자통독 사이트에 가입해서 열심히 타이핑을 쳤다.

정말 열심히 했다. 세벽같이 일어나서 저녁 12시까지 몸이 허락하는시간에 쉬지않고 타이핑을 쳤다.

그리고 ... 뿌듯한 마음음으로 기대하는 마음으로 당연하리란 생각으로 순위를 확인해 보았다.

켑쳐는 생략하겠다 ... 당시 켑쳐가 있을리도 없고 ... 지금 순위는 무의미하고 ...


일일 순위도 1등에 미치지 못했다. 주간 순위도 1등에 미치지 못했다. 납득할 수가 없었다.

이제 어느정도 회복이 되어간다. 신체는 놀랍다 삶에 목표가 생기자 정말 다 낳았다. 이제 마음도 몸도 아프지 않았다. 정말 열심히 쳤다.

이것이 신앙의 힘인가 ? 다음날은 정말 열심히 정말 미친듯이 죈종일 쳤다. 병원에 입원해서 병원 침대위에서 식판놓으라고 만들어놓은 식탁에 노트북을 올려놓고

정말 기도하며 쳤다.

...

그렇지만 결과는 역시나 1등이 아니였다.

천국과 지옥은 정말 종이한장 차이다.

선과악을 오가는 것은 정말 손바닥 뒤집기처럼 간단하다.

정말 선한 마음으로 시작했는데


10등 안에만 들었어도 오토프로그렘 만들리라 생각지 않았으리라


퇴원해서 나는 MFC 프로그렘 으로 단 2주만에 오토프로그렘을 만들었다.

그리고 그 후 쭈욱 1등 ...

당시엔 몇달돌안 일등했었는데 이번처럼 전화오는일은 없었다.

내가 타락한건지 사이트가 타락한건지 ...


그렇지만 1등 하면 무엇하리 ? 아무두 ... 알아주지 않는것을 ㅎㅎㅎ

처음부터 누구와 함께 한것도 교회에서 시킨것도 아닌 그냥 나혼자 사이트를 찾아서 가입하고 타이핑을 쳤던것이다.

ㅎㅎㅎ


그렇게 시간이 지나서 나는 당시기억을 나 자신만의 추억으로 간직하고 있었다.


당시 만들었던 MFC 프로그렘은 소스가 유실되어 이제 찾아볼 수가 없다. (언젠가 다시 찾게 되면 올리리라) 해서 다시 만들었다.

추억의 오토를 이번엔 JAVA로 다시 만들어 보리라 ㅎㅎ




서론이 길었다. 시작하자.


목표 : CTS성경타자통독 사이트 오토프로그렘 만들기


1. 브라우져는 어떠한 것을 사용할 것인가?

익스프로러나 크롬, 파이어폭스 등에서 사이트에 접속 한 후에 오토타이핑 하게 하는것은 브라우저 환경을 고려해야하기 때문에 곤란하다.

그래서 ... 내가 찾은 방법은 브라우져를 직접 만드는것이다. 헐! 브라우져라니 하고 놀랄 수도 있지만 정말 별거 아니다.

그리고 직접 한땀 한땀 만들 것이 아니라 최대한 인터넷 검색으로 내가 원하는 기능을 재공하는 소스를 찾아 작업할 것이다.

웹 브라우져 구동 소스 출처 :  http://www.programkr.com/blog/MkTN3ADMwYTy.html




주석이 좀 약간 이상하게 느껴지는 것이 외국 사이트에 있는 소스를 가져다 놓고 외국어로 되어있는 주석을 번역기 돌린 그런 느낌이다.

원본이 있다면 원본 URL 를 재공해 주셨으면 더 좋았을 것을 하는 아쉬움이 남는다.


SWT 프로젝트생성도 편하게 하는 방법이 있다.

http://mainia.tistory.com/627


요약해서 eclipse(에디터) 를 설치한다. java 를 설치한다. 위 링크를 따라 swt 용 프로젝트를 생성하기 위한 작업을 해준다.


2. 오토 타이핑은 어떻게 할것인가 ?

MFC로 만들때에는  키보드와 마우스이벤트를 이용해서 커서를 가져다 놓으면 해당 위치부터 시작해서 타이핑을 시작하도록 만들었었다.

당시 필자는 HTML 도 몰랐고 JavaScript 도 jQuery 의 존재도 몰랐다. 당연히 크롬도 몰랐고 익스플로러도 몰랐다.

익스플로러만 사용하는 것은 정말 마이크로소프트사가 원망스러울 정말 실망스러운 브라우져이다.

우리나라는 OS로 윈도우를 쓴다. 아 쉣! 좀더 다양한 OS를 쓰자 좀 ... 

마이크로소프트사가 우리나라를 지원해 주었을거다 그래서 윈도우라는 OS를 쓰게 되었고 결과적으로 전국민이 윈도우에 얽매여있게 된 것이다.

정말 감사하지만 다른 한편으로 크롬에 대한 존재를 몰랐다는 이런 사실은 정말억울하기 까지 하다. 익스플로러가 브라우져의 전부인양 ... 아휴 ...

글이 또 딴길로 가고 있다. 그래! 브라우져를 만들었다. 위 사이트도 접속이 된다. 그렇다면 이제 어떻게 타이핑 하게 할 것인가 ?


당연해서 분석해서 html 을 읽도록 만들자

일전에 mfc 에서는 실제 키보드의 key event 를 발생시켜 입력했지만

이번에는 브라우져의 개발자 모드 consol 마냥 브라우져상에 명령어를 입력하여 이벤트발생시키도록 하자.

이것이 가능해지면 작성한 프로그렘을 띄우고도 다른 작업이 가능해 진다.




다음으로 넘어가기 위한 중간 정리

오토 타이핑 프로그렘을 만들것인데 나만의 브라우져를 만들고 그 안에서 스크립트를 이용해 오토를 돌릴 것이다.


스크립트 ?? 란 이런것이다.

설명을 위해 크롬브라우져를 이용 해 아래 사이트에 접속하자

CTS성경타자통독 URL : https://bible.ctm.kr/

접속 되었다면 F12를 눌러서 개발자 모드를 open 한다.

parent.ctmhome.document.getElementsByName('id')[0].parentNode.innerHTML = "<input type='TEXT' size='6' maxlength='15' name='id' value='USER_ID'>"

위의 스크립트를 그대로 복 붙 후 엔터

위 이미지와 같이 아이디 란에 USER_ID 가 박혔음을 확인할 수 있다.

위와 같은 방식으로 페스워드 또한 입력할 수 있으리라.


1
2
3
4
5
6
7
executeScript("parent.ctmhome.document.getElementsByName('id')[0].parentNode.innerHTML = \"<input type='TEXT' size='6' maxlength='15' name='id' value='USER_ID'>\"");
 
executeScript("parent.ctmhome.document.getElementsByName('pwd')[0].parentNode.innerHTML = \"<input value='USER_PASSWORD' type='password' size='7' maxlength='15' name='pwd'>\"");
 
executeScript("window.top.ctmhome.document.getElementsByTagName('input')[5].click()");
cs


로그인은 위 소스로 가능하다.

노파심에 언급하지만 value='USER_ID' , value='USER_PASSWORD' 부분에는 본인 ID 와 PW 를 넣는부분인 것이다.


여기까지만 작성하고 바로 전체 소스를 공개 한다.




실행시키면 하단에 login, find, start, end 버튼 4개가 있을 것이다.

login 은 위에서 언급한 스크립트 상 value 에  id 와  password 를 입력해 놓으면 한번 클릭으로 바로 로그인 될 수 있겠다.

find 는 완료가 아닌 통독해야할 성경을 찾아 클릭이벤트를 발생시키는 건데, 한장 한장 클릭하며 확인 후 다음 성경으로 넘어가는 방식이여서 사용하지 않길 바란다.

수정해야하는데 귀찮이즘으로 안했다...


다음 start 는 타이핑해야할 화면 

위와같은 상태에서 start 버튼을 누르면 쳐야할 구절을 카피해서 아래 input 에 붙여 넣는다.

그러면서 쭉쭉 넘어간다.


자세한 사항은 소스를 분석해 보기 바란다.

불필요한 소스도 있고 ... 그렇지만 타이핑하나 기똥차게 치고 넘어간다.


이상 끝


추신 : 부디 많은 사람들이 사이트를 위와같은 오토를 돌려 번갈아 가며 1위를 했으면 하는 바람이다. 소스상 sleep 를 최대한 크게 주어서 장시간 돌려주자.

개인적으로 몇일 1등 먹었더니 전화가 왔다... 매크로 돌리느냐고 ;; 난 왜 진짜 전화번호를 걸어놨을까;

1차 실망 - 성경을 타이핑하시면서 통독하시는 분들이 등수에 연연하시다니 ... 

2차 실망 - 위 사이트이다. 거진 10년이 넘도록 변한게 없다.

HTML 까보면 이건 아니지 싶다. 이렇게 TABLE 안에 다시 TABLE 안에 ... 거기에 ID 도 거의 안달려있고 ... 

3차 실망 - 전체적으로 광고가 좀 많아졌다. 후원링크라던지 후원전화라던지 불법은 아닌지 모르겠다.


기독교와 전쟁선포하는 그런거 아니다.  나도 주말이면 교회가는 교인이다. 

부디 각성하고 초심으로 돌아가 나같은 허접한사람이 감히 메크로 돌릴 수 없는 그런 사이트로 발전하길 바라는 마음이 더 크다.


전화까지 한거 보니 ... 내 개인정보 입력해놓은것은 다 털린거나 마찬가지다. ㅎㅎㅎ 나도 참 순진하지.

만약 사이트 개정이 막히거나 하면 ... 후후 ... 다음 글 연재 되는거다. ㅎ


아... 차라리 EXE 를 만들어 배포할까? 그편이 더 낳을것 같다는 생각을 하며 ... 글을 마친다.