ALPS 1월 내부대회 후기


1월 내부대회를 끝내며.

서론


첫 대회 출제기도 했고, 알프스에서 부회장으로써 준비하는 첫 공식 행사였기 때문에 긴장이 되는게 없지 않아 있었다.

일단 내부대회 + 출제진 부족으로 문제 수를 늘리기보다는 한 문제에 서브태스크를 여러 개를 만드는 식으로 하는 것으로 결정이 났다. 그래서 DOMJudge나 백준을 사용하지 않고 CMSJudge를 이용해 컨테스트를 진행해보기로 했다.

문제를 출제하는 데에는 조금 힘들긴 했지만, 그렇게까지 막 고생하지는 않았다. 오히려 두려웠던 것은 아무래도 PS를 한 지 얼마되지 않았다보니까, 어떤 문제가 좋은 문제고, 이해하기가 쉬운지 같은 경험에서 나올 수 있는 것들이 더 신경쓰였다. 그리고 CMSJudge 서버를 하나 만들어야하는데, 서버를 많이 건들여본 적도 없고 관련 문서도 많지가 않아서 정말 힘들었었다.

그래서 이렇게나마 문서를 남겨서 나중에 내부대회 시작하기 전에 참고해보려고 한다.

CMSJudge


  • config 설정이랑 공식 문서만 잘 읽어도 반은 먹고 들어간다.

공식 문서가 꽤 불친절하다고 느끼긴 했는데, 웬만한건 다 적혀있다. conf끼리 호스트나 패스워드가 잘 맞는지 확인하고, 스크립트 돌려서 적용만 시켜주면 그렇게 문제될 일은 없다. 조금 까다로운 건 한 서버에서 모든걸 처리하려고 할 때, 유저 관련해서 꼬일 수가 있다는 점만 조심하면 될 것 같다.

  • 랭킹 서버는 별개다.

일단 랭킹 웹 서버 자체부터 따로 돌아가는 시스템이다. cmsResourceService에 cmsProxyService는 포함되어 있지만, cmsRankingWebServer는 포함되어 있지 않으므로 새로 스크린을 열어서 실행시켜 주어야 한다. 그런데 또 데이터 적용 시키려면 cmsProxyService를 재실행해야 한다 ㅋㅋ.. cmsRankingWebServer --drop한 후 RWS 열고 PS 열면 알아서 전송시켜주니 잘 쓰도록 하자. 참고로 logo.png 넣고나서 왜 적용이 안되지? 할 수도 있는데 시크릿 탭으로 열면 잘 보인다. 주의!

  • 웬만하면 한글 쓰지 않기

뭔가 계속 터진다.. cmsProxyService만 예로 들어도 contest description이 유니코드면 못 불러와서 터미널 창에서 보지도 못한다. 웬만하면 한글 아무것도 쓰지말고 대충 살자. CWS 자체에서 한글 번역 잘 지원해주고, problem description은 pdf 첨부가 가능하니까.. :q

  • 스크린 잘 쓰기

사실 스크린이 있는 줄 몰랐다.. 그 정도로 서버에 아는게 없었기 때문이기도 하다. 다음에 할 때는 스크린 잘 애용해보자. 뭐가 많을 것 같기도 한데 스크린을 안 지가 너무 얼마 안돼서 멀티태스킹이 너무 힘들었다.. ㅠ

문제


  • 문제 조건 엄밀하게 잘 내기

문제 쓸 때 되도록 수식을 쓰는 걸 지양하는 편이여서, 말로 쉽게 풀고자 많이 노력했다. 그래도 대회 시작 10분 만에 조금 헷갈리는 부분이 있다는 질문이 와서 수정을 했었다. 참가자의 시점에서 문제의 특별한 상황에 대해 계속해서 생각해보고 문제를 작성해야 겠다는 생각이 들었다.

  • 테스트 케이스 잘 만들기

문제 출제하면서 제일 간과했던 부분이기도 하고, 제일 보완이 필요하다고 느낀 것이다. 범위를 잘 선정해서 랜덤을 돌리는 방법과, 수학적으로 가능한 경우에 한해서 손수 케이스를 만들어서 넣는 것. 이 두 가지를 많이 생각해보아야 겠다는 생각이 들었다.

  • 검수 잘하기

실력이 없어서 여러 문제들을 제대로 검수를 못한 것이 너무 부끄럽다. 대회에 직접 참가해서 뛰지는 않더라도 계속해서 공부하고 여러 각도로 생각할 줄 알아야 할 것 같았다. 사실 서버나 출제보다 가장 보완해야겠다고 생각한 부분이 바로 실력이다. 열심히 공부하자...

결론


사실 이런 식의 내부대회를 열어본 적이 없어서 대회 포맷이나 일정 관련해서 조금 촉박하게 진행한 감이 없지 않아 있었다. 앞으로 방학이나 학기 외 시간이 날 때면 자주 내부대회를 열 것 같은데 관련해서 문서도 좀 만들어두고 포맷을 짜두면 훨씬 수월하게 개최할 수 있겠다는 생각이 들었다. 다음에는 서버를 좀 배워서 바꿀 수 있는 부분은 최대한 개량해서 사용해보고 싶다. 끝.