수강신청을 프로그램으로 하기!.... 고민중입니당

twince의 이미지

HTML 파서를 이용해서 어떻게 처리를 할 수 있을것도 같은데... 어떻게 해야될까요? ㅋㅋㅋㅋㅋ

사실 전 손이 좀 빠른편이라 제껀 제가 하는데 주변에서 저한테 많은 부탁이 들어오거든요... 그래서 한번 생각해보게 되었는데 뭔가 어떻게 될 것도 같은데 잘 모르겠네요... 아이디어좀 주실 분 있나요? ㅠㅜ

그리고 혹시나 Active X나 Java, Flash 쓰는 곳이 있다면... 거긴 무리겠죠? ㅋㅋ

앗참, 제가 Perl과 Python을 선호하는 터에 가능하면 두 언어로 된 아이디어였으면 좋겠습니당 (_ _) 꾸벅

세벌의 이미지

걸리지 않게 잘 하시라고 밖에 드릴 말씀이...

twince의 이미지

함부로 그런거 만들면 안되나?..ㅋㅋㅋㅋ 윽..

newbie server programmer

dontdieych의 이미지

구현이 불가능하지는 않겠지만 개발 도중에 시험해볼 수 없다는 게 가장 큰 걸림돌이 아닌가 싶습니다.

twince의 이미지

HTML로 대강 원하는 페이지를 만들어놓고 프로그램으로 돌려볼 수도 있다고 생각해서... ㅋㅋ; 저도 뭔가 불가능할것같진 않은데 어디서부터 시작해야될지를 잘 모르겠네요 ㅜ

newbie server programmer

twince의 이미지

아 왜 여러개가...1

newbie server programmer

twince의 이미지

아 왜 여러개가....2

newbie server programmer

raymundo의 이미지

telnet 으로 접속하던 시절에는 훨씬 수월했는데 말이죠. :)

Perl의 경우 WWW::Mechanize 를 쓰면 웹페이지를 가져오고 폼의 특정 필드에 값을 채워 submit 하는 걸 자동으로 하게 할 수 있습니다.

Javascript 등이 끼어있으면 좀 더 힘들지만, WWW::Mechanize::Firefox 모듈을 쓰면 아예 현재 실행 중인 firefox 창을 조작해서 특정 페이지에 들어가고 로딩을 시키고 버튼을 누르고 등의 일을 할 수 있는데,

아니면 autohotkey 같은 걸 써서 마우스를 특정 위치에 가져가서 클릭하고 만일 "정원이 찼음" 이런 메시지가 뜨면 확인 버튼을 클릭하고 재시도... 이런 걸 시킬 수도 있겠지만,

어쨌거나 위에 다른 분 말씀처럼 미리 테스트해볼 수가 없다는 게 제일 문제겠네요.

좋은 하루 되세요!

twince의 이미지

ㅎㅎ 아이디어 감사합니다~~ 혹시 JSP로 만들어진 페이지는 어떻게 처리하는지 아시나요?

newbie server programmer

mirheekl의 이미지

http://www.hynews.ac.kr/news/articleView.html?idxno=4458

기사를 읽어보면, 해당 프로그램 사용을 교칙위반으로 간주하는 학교가 최소한 한 곳 이상 된다는 걸 알 수 있습니다. 그리고 적발할 수 있는 방법이 없는 것도 아니고요.

(일단 저것도 벌써 4년전 기사이니 지금쯤은 이런 저런 방법으로 쉽게 막을 법도 한데.. 수강신청이란걸 해본지가 워낙 오래된지라 잘 모르겠네요.)

프로그램을 완성한다 해도 구조상 신청 성공을 보장할 도리도 없고 서버가 뻗는다든지 다른 매크로 사용자들에게 밀려나는 등의 이유로 끝내 수강신청 실패 후 사용자들에게서 원망을 들을 수 있는 건 애교로 넘어가더라도,

애초에 본인이 쓸 목적도 아니고 타인을 위해 개발했다가 적발되어 그사람들이 수강신청 내역을 날리고 징계를 받으며 개발자에 대한 정보가 학교측에 넘어가기라도 한다면 더욱 큰 문제가 될 수 있습니다.

저라면 하지 않을 것 같네요.

프로그램 개발보다는 학교측에 서버증설이나 수강신청 절차개선 등을 요구하는 게 맞는 방법이라 생각합니다. 요샌 이런 얘기 하면 X선비질 한다고 욕먹는다고는 하지만..

--

klenui의 이미지

와.. 요즘 무섭네요...제 경우는 전공필수는 쿼터가 보장되고 교양은 사람 없는 과목만 골라 들어서 별로 문제를 못느꼈는데.. 프로그램을 이용한 경쟁 우위로 학점 따겠다는 발상도 무섭고..그걸 시스템 개선이 아니라 처벌로 잡겠다는 것도 무섭고...

세상이 평화로우면 사람들이 사소한 거에 목숨건다더니... 저같이 널널한 인간은 점점 살기 힘들어지는군요..

mirheekl의 이미지


딱히 시스템 개선으로 해결할 수 있는 문제가 아닌 것이 문제입니다. 근본적인 문제는 학생들이 학점과 널럴함에 목숨을 걸 수밖에 없는 상황인데 이런 걸 일개 학교에서 개선할 수가 없으니 말이죠.

좀 더 공평하게 할 수 있는 방안이라곤 교수님 이름을 가려놓고 수강신청을 무제한 받은다음에 외부 강사를 초빙해 복수 개의 강의를 개설하고 뺑뺑이 돌리는 것 정도인데..

이런 식으로 하면 피씨방에 대기한다든지 매크로를 돌린다든지 하는 수고는 들일 필요가 없어지겠지만, 원하는 과목에서 원하는 교수님의 수업을 자기 맘대로 들을 수 없다는 학생들의 불만을 근본적으로 해결할 수는 없을 겁니다.

결국 완벽 해결은 어려운데 개선하는 데에는 돈과 수고가 든다면 그냥 현행처럼 유지하는 게 합리적인 선택이 될 수도 있는 것입니다. (이미 학생들도 다 그런가보다 하고 있고 말이죠..)

그리고 가치관 차이일지는 모르겠습니다만 의도치 않은 방식으로 서비스 이용시 처벌이 들어가는 것은 당연하다고 봅니다. 해당 방법을 사용하지 않는 사람에게 피해를 주니까요.

시스템 개선으로 해결할 수 있다면야 좋겠지만, 어차피 어떤 방식을 사용하더라도 사람이 만드는 서비스인 이상 악용할 방법은 존재할수밖에 없고, 그렇다면 포괄적으로 교칙위반이라는 원칙을 세워두는 것이 맞겠죠.

물론 시스템 개선 의지가 없는 것 자체도 문제이겠지만, 그렇다고 해서 그게 처벌을 하지 말아야 하는 이유는 되지 못한다는 겁니다. 두 가지는 별개라는 얘기.

--

twince의 이미지

저도 솔직히 전필같은건 거의 그냥 고정이고 교양이나 전선만 적당히 고르면 되서 딱히 필요성을 못느꼈는데... 제가 아는 지인이 다니는 학교의 서버가... 그냥, 딱 만약에 18시부터 신청이라고 한다면 17시 59분 30초부터 패킷이 워낙 몰려서 응답이 아예 없고 18시 4분즈음에 응답이 오는데, 이미 인기과목들은 오버! 게다가 총 인원이 30명인데 신청인원이 32명이고 막... 어떻게 동시에 여러명이 받아져서 처리가 제대로 안되었는지, 허허... 겨우 800명이 한번에 접속했는데 서버가 뻗을정도라니;; 이게 재작년에도 그랬었는데(이 학교 다니던 사람이) 올해도 그럴정도면 =_=... 참

newbie server programmer

neocoin의 이미지

동시 접속이 문제인겁니다.
평소에 그 동시 접속을 커버하도록 서버를 운용하면 비용이 상당합니다.

twince의 이미지

그게 어느정도인진 정확히 가늠하기 어려우니 잘 모르겠지만 고수님이 그러시다니깐... :O

newbie server programmer

mirheekl의 이미지

그 문제를 해결한다 해도 딱히 더 공평해지지는 않는 게 문제라 봅니다. 어찌됐든 수강신청 인원은 제한되어 있으므로 서버가 먹통이 되지 않더라도 원하는 교양강의를 신청하기 어려운 것은 매한가지니까요. 만약 지금 상태에선 수강신청 시작후 5분정도 먹통이 됐다가 회복되고 나면 원하는 강의의 인원이 다 차있다면, 시스템이 개선된 이후에는 그냥 시작하자마자 인원이 다 차버리겠죠. 그냥 그걸 확인하는 데에 걸리는 시간만 줄어드는 겁니다. 그래서 더 시스템 보강을 하지 않는 것일지도 모릅니다. 결과적으론 달라지는 게 없고 돈만 더 들기 때문에..

이런 쏠림현상을 해결하려면 학생들이 학점에 목숨걸지 않아도 되는 상황을 만들거나, 아니면 어떤 교양강의를 듣는다 해도 널럴함의 차이가 없어야 되겠지만 이건 애초에 불가능한 얘기입니다. 수강신청 인원이 늘어나면 새 강의를 오픈해주는 방식으로 해결할 수도 있으나 그렇게 생겨난 강의가 본강의와 동일한 퀄리티를 가진다는 보장이 없으므로 결국 본강의를 듣기 위해 똑같은 경쟁이 일어나겠지요. (다만 이 경우 학점이나 널럴함때문이 아니라 정말 그 과목을 배우고 싶어서 신청한 학생들에게는 도움이 되겠네요. 그 수가 얼마나 될지는 모르지만..)

수강신청을 원하는 사람을 모두 받아주고 추첨으로 선발하는게 현재의 조건하에서 서버 부하를 피하면서도 공평하게 수강신청 기회를 보장하는 유일한 방법이 아닐까 생각합니다. 다만 이건 말 그대로 수강신청 기회에만 해당되는 얘기라 학생들 입장에선 추첨 탈락시 시간표 구상이 틀어지게 되니 이역시 받아들이기 어렵겠지요. 오히려 추첨결과(?)가 바로 얻어지는 현행 방식이 시간표를 짜기 위해선 더 나을 수도 있습니다. 이러나 저러나 랜덤인건 마찬가지니까요. 지난학기 학점이나 평균평점으로 수강신청 기회를 제한할 수도 없고 말이죠.

이렇게 이런저런 이유를 감안하고 나면 현행 수강신청 방식이 왜 유지되는지 어느정도 이해가 될것 같기도 합니다.

--

twince의 이미지

하~ 참. 뭐 그래도 저는 곧 대학생 끝나니깐 신경 끌래요. ㅋㅋㅋㅋㅋㅋㅋㅋ

newbie server programmer

익명 사용자의 이미지

수강 신청도 웹을 통해 이루어지기 때문에 특정 패킷을 주고 받습니다.
이 패킷을 분석하여 프로그램으로 재조합 할 경우 웹에 접속할 필요도 없이 빠르게 시도가 가능합니다.
패킷 분석 툴은 여러가지가 있으니 아무거나 사용하셔도 되고 html 패킷만 분석해 주는 툴이 웹 분석에는 좀 더 용이합니다.

다만 문제는 illegal한 부분은 둘째치더라도 위에 분들이 지적해주신대로 특정 기간이 아니면 테스트가 불가능하여 패킷 분석하기가 용이하지 않다는 점이겠네요.

twince의 이미지

좋은 답변 감사드립니다 (__)

newbie server programmer

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.