Skip to content

Commit 52a5231

Browse files
committed
KorCham README.md 작성
1 parent 1a0935d commit 52a5231

File tree

3 files changed

+179
-4
lines changed

3 files changed

+179
-4
lines changed
1.16 KB
Binary file not shown.

KorChamConf.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
"urlList": [
77
{
88
"url": "http://license.korcham.net/ex/dailyExamPlaceConf.do?selectJmcd=202099AKK1&selectDkcd=1&selectAreaCd=01&selectPcode=1103",
9-
"date": "2020. 04. 07"
9+
"date": "2020. 04. 21"
1010
},
1111
{
1212
"url": "http://license.korcham.net/ex/dailyExamPlaceConf.do?selectJmcd=202099AKK1&selectDkcd=1&selectAreaCd=01&selectPcode=1104",
13-
"date": "2020. 04. 07"
13+
"date": "2020. 04. 21"
1414
},
1515
{
1616
"url": "http://license.korcham.net/ex/dailyExamPlaceConf.do?selectJmcd=202099AKK1&selectDkcd=1&selectAreaCd=01&selectPcode=1105",
17-
"date": "2020. 04. 07"
17+
"date": "2020. 04. 21"
1818
}
1919
]
2020
}

README.md

Lines changed: 176 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,177 @@
1-
# KorCham
1+
# **KorCham**
22
컴퓨터활용능력 자격증 자리확인 매크로
3+
4+
<p align="center">
5+
<img src="https://user-images.githubusercontent.com/50317129/78545141-3de1d980-7836-11ea-81f4-08cdeb1f2c92.png" alt="Main" title="Main">
6+
</p>
7+
8+
2월 끝자락에 공부를 마무리하고 시험을 보려고 했으나, COVID-19의 여파로 시험이 14일까지 중지되는 바람에 가뜩이나 없는 자리가 몰려서 자리를 구할 수가 없게됐다.
9+
<br />
10+
회사에서 하루 종일 자격증 자리만 쳐다볼 수도 없는 노릇이고, 일일히 들어가기도 귀찮은데다, 까먹는 일도 더러 있어서 자리 잡기가 난감했다.
11+
<br />
12+
이미 다 끝낸 공부임에도 지속적으로 기억하기 위해 계속 붙잡고 있는게 너무 싫어서 최대한 빨리 자리를 잡을 필요가 있었다.
13+
<br />
14+
이 프로그램은 그러한 취지에서 개발됐다.
15+
16+
## KorCham 2.4 RELEASE (Latest)
17+
18+
+ 간단한 프로그램 구동을 위한 cmd, sh, bash 파일 추가
19+
20+
+ 시간이 1000ms를 넘어갈 시 단위가 s로 변경되도록 개선
21+
22+
## KorCham 2.3 RELEASE
23+
24+
+ 설정 파일에 지정된 사운드 경로에 사운드 파일이 없을 경우 사용자의 선택에 따라 사운드 파일을 다운로드 받을 수 있도록 개선
25+
26+
## KorCham 2.2 RELEASE
27+
28+
+ URL연결 시간 및 데이터 처리 시간 출력기능 추가
29+
30+
+ KorChamConf.json 파일이 없을 경우 자동으로 기본 설정값을 가진 json파일이 생성되도록 개선
31+
32+
## KorCham 2.1 RELEASE
33+
34+
+ 좌석 발생 시 사운드 출력 기능 추가
35+
36+
+ 설정 파일에서 관련 설정이 가능하도록 개선
37+
38+
## KorCham 2.0 RELEASE
39+
40+
+ KorChamConf.json을 통한 URL, 날짜 지정기능 추가
41+
42+
## KorCham 1.0 RELEASE
43+
44+
+ 컴퓨터 활용능력 1급 서울 상공회의소 제 3 ~ 5시험장의 3월 18일까지의 좌석 수 출력
45+
46+
# **INFO**
47+
48+
개발언어 : `JAVA`
49+
50+
#### **지원 OS**
51+
+ Microsoft **Windows10**
52+
+ AIX
53+
+ CentOS
54+
+ 기타 JVM 구동 가능한 디바이스
55+
56+
#### **JAVA VERSION**
57+
+ **JDK 1.8**
58+
59+
---
60+
### **사용 방법**
61+
컴파일 결과물은 **.jar**파일이며, 해당 파일을 실행하면 자동으로 설정파일의 내용대로 지정된 날짜까지의 좌석을 탐지하고 출력한다.
62+
<br />
63+
좌석이 없을 경우 별도의 내용이 출력되지 않으며, 좌석이 하나 이상 있을 경우 URL의 순번과 날짜, 시간, 좌석 수를 출력한다.
64+
<br />
65+
66+
프로그램 시작 방법은 기본적인 JAVA 명령어를 사용하거나, Shell 파일을 실행해서 구동할 수 있다.
67+
<br />
68+
<br />
69+
70+
**JAVA 명령어 실행** : cmd 혹은 PowerShell을 키고 KorCham.jar가 위치한 폴더로 이동해서 `java -jar KorCham.jar` 명령어를 실행한다.
71+
<br />
72+
73+
**start.cmd** : Windows OS용 Shell 프로그램으로, 해당 Shell을 실행하면 자동으로 프로그램이 실행된다.
74+
<br />
75+
76+
**start.sh** : sh계열 Terminal용 Shell 프로그램으로, 해당 Shell을 실행하면 자동으로 프로그램이 실행된다. CLI 환경에서의 실행방법은 `./start.sh` 명령어를 입력하면 된다.
77+
<br />
78+
79+
**start.bash** : bash계열 Terminal용 Shell 프로그램으로, 해당 Shell을 실행하면 자동으로 프로그램이 실행된다. CLI 환경에서의 실행방법은 `./start.bash` 명령어를 입력하면 된다.
80+
<br />
81+
82+
**KorChamConf.json** 설정파일을 통해 프로그램의 세부 사항을 지정할 수 있다. 좌석을 검사할 대상의 URL은 JSON Array을 통해 여러개의 URL을 지정할 수 있으며, URL별로 날짜 또한 개별적으로 지정할 수 있다.
83+
<br />
84+
그 밖에도 로그의 경로나 사운드파일의 경로, 기능 사용 여부를 지정할 수 있다.
85+
<br />
86+
87+
자세한 설정파일 사용 방법은 아래의 **설정방법** 문단을 확인한다.
88+
89+
---
90+
### **설정방법**
91+
92+
KorCham이 실행되면 KorCham.jar 위치에 설정파일이 존재하는지 여부를 확인하고, 없을 경우 KorChamConf.json을 생성한다.
93+
<br />
94+
95+
<p align="center">
96+
<img src="https://user-images.githubusercontent.com/50317129/78545134-3c181600-7836-11ea-8261-88e19f69e923.png" alt="Main" title="Main">
97+
</p>
98+
99+
KorChamConf.json의 형태는 위 사진과 같으며, 설정방법은 아래와 같다.
100+
<br />
101+
<br />
102+
103+
**logPath** : 로그파일 저장 경로 (기본값: %KorCham.jar위치%\\logs\\yyyy-MM-dd hh-mm-ss.log)
104+
<br />
105+
106+
**soundFile** : .wav파일 경로 (기본값: %KorCham.jar위치%\\sound\\alert.wav)
107+
<br />
108+
109+
**logActive** : 로그기능 사용 여부 (기본값 : true)
110+
<br />
111+
true : 로그 기능 사용
112+
<br />
113+
false: 로그 기능 미사용
114+
<br />
115+
116+
**soundActive** : 사운드 기능 사용 여부 (기본값 : true)
117+
<br />
118+
true : 사운드 기능 사용
119+
<br />
120+
false : 사운드 기능 미사용
121+
<br />
122+
123+
**urlList** : 좌석을 감시할 URL 배열
124+
<br />
125+
**url** : URL (기본값 : 컴퓨터 활용능력 1급 서울 상공회의소(남대문) 제 3 ~ 5시험장)
126+
<br />
127+
128+
**date** : 좌석을 검사할 가장 마지막 날짜 (기본값 : 최초로 KorChamConf.json 생성일자의 15일 이후)
129+
<br />
130+
[yyyy. mm. dd]의 형태로 입력하면, 해당 날짜 전 까지만 검사한다.
131+
<br />
132+
133+
urlList의 경우, 배열형태로 이루어져 있어 여러 URL을 등록해서 감시할 수 있다.
134+
<br />
135+
물론 URL의 개수가 많아질 수록 프로그램의 루틴이 점점 길어진다.
136+
<br />
137+
<br />
138+
139+
**\\를 이용한 경로는 반드시 \\\\처럼 두번 입력해야 인식이 가능하니 주의**
140+
141+
---
142+
### **주의사항**
143+
144+
실행 시 JDK가 1.8 이상인지 확인할 것.
145+
<br />
146+
Windows OS의 경우 경로가 (\\, 역슬래쉬)로 표시되는데, json 파일에서 이러한 역슬래쉬를 표시하려면 \\를 두번 입력해야 정상적으로 json에서 표시할 수 있다.
147+
<br />
148+
즉, 실제 경로가 `C:\Program Files`라면, json 파일에는 `C:\\Program Files`라고 입력해야 정상적으로 인식이 가능하다.
149+
<br />
150+
이는 프로그래밍에서 \\가 다른 알파벳과 결합하여 ASCII와 같은 특수문자를 매칭해 표현하는데 사용되기 때문으로, 프로그래밍 상의 한계라 어쩔 수 없다.
151+
152+
---
153+
### **주의사항**
154+
155+
해당 프로그램을 사용하여 꽤나 타이트한 자리싸움에서 가장 빠른 3월 15일에 신청을 성공했다.
156+
<br />
157+
...는 COVID-19의 무지막지한 기승으로 밀리게 되고, 다시 가장 빠른 23일에 신청했다.
158+
<br />
159+
....는 또 밀려서 다시금 가장 빠른 4월 5일에 신청에 성공했고, 무사히 시험을 볼 수 있었다.
160+
<br />
161+
162+
무려 두 번이나 밀렸음에도 악착같이 가장 빠른 시간대에 잡았던 것으로 보아 확실히 무작정 들어가는 것 보단 확실히 낫다.
163+
<br />
164+
<br />
165+
166+
어찌보면 자리 싸움에서 우위를 차지하는 부정행위라는 생각도 해봤는데, 공연 티켓팅 프로그램마냥 자동적으로 자리를 잡아주는 것도 아니고, 단순히 자리의 갯수만을 보여주는데서 그친다.
167+
<br />
168+
즉, 프로그램이 암만 알려줘도 실제로 자리를 차지하는 건 손싸움. 실제로도 괜찮은 자리를 놓쳤던 경험이 몇 번 있었다.
169+
<br />
170+
<br />
171+
172+
개발 당시 3월 15일 시험이 아직 밀리지 않았었고, 이미 프로토타입 구동 시에 원하는 자리를 잡은 덕택에 사용 시간보다 개발 시간이 더 많았을 뻔 했으나, COVID-19의 영향으로 지속적으로 밀리면서 제 성능을 발휘한 프로그램
173+
<br />
174+
175+
어차피 며칠만 쓸 프로그램이라 설정 파일의 내용들은 원래 하드코딩되어 있었으나, 지속적인 일정 연기와 회사의 단축근무로 인해 여유가 많아져 프로그램의 많은 부분들을 개선할 수 있었다.
176+
<br />
177+
어찌보면 COVID-19는 이 프로그램이 발전할 수 있었던 원동력(?)이 된 셈이다.

0 commit comments

Comments
 (0)