소속 단체 대회 자료 아카이브 기여 방법
소속 단체 대회 자료 아카이브에 기여해 주셔서 감사합니다.
전국 대학생 프로그래밍 대회 동아리 연합은 “프로그래밍 대회를 준비하는 동아리의 교류와 화합을 목적으로 한다.”라는 목적을 이루기 위해 노력하겠습니다.
이 문서는 저장소 구조를 설명하기 위한 안내 문서입니다. 실제 디렉터리 구조와 예시는 GitHub에서 저장소를 함께 보면서 읽는 것을 권장합니다.
기여 방법
Pull Request 방법
- Pull Request를 올리는 방식으로 기여할 수 있습니다.
- 저장소 주소는 github.com/ucpcc/static 입니다.
- 운영 부담을 줄이기 위해, 가능하면 Pull Request 방식으로 기여해 주시기 바랍니다.
.github/PULL_REQUEST_TEMPLATE.md템플릿에 맞춰서 정리해 주시기 바랍니다.- 임원진 승인 후 머지 가능합니다.
- 머지는
Squash merge만 사용합니다. 히스토리를 깔끔하게 유지하기 위함입니다.
Email 방법
- 직접 PR을 열기 어렵다면 메일로 자료를 보내는 방식으로 기여할 수 있습니다.
- 아카이브 관련 문의 및 자료 전달 메일은
archive@ucpc.me입니다. - 메일을 보낼 때에는 아카이브 메일 양식을 참고해 주시기 바랍니다.
- 메일로 전달된 자료는 임원진이 직접 확인하고 정리해야 하므로, 반영까지 시간이 오래 걸릴 수 있습니다.
- 대회 자료를 메일로 보내 주시면 임원진이 확인 후 업로드하겠습니다.
빠른 시작
1. 기존 단체 설명을 수정하려는 경우
- 수정할 파일은
archive/{org}/index.md입니다. - 단체 소개, 설명, 링크, 대회 목록 등을 여기에서 관리합니다.
예시:
archive/ucpc/index.md
2. 새 단체를 추가하려는 경우
archive/{org}/index.md를 만듭니다.- 단체 설명을 적습니다.
- 단체 정책에 맞는 라이선스 또는 저작권 고지 파일을 반드시 함께 추가합니다.
- 문의 가능한 단체 연락처를 함께 적어 주시기 바랍니다.
- 필요하면 그 아래에 대회 디렉터리를 추가합니다.
archive/index.md에 새 단체 링크를 추가합니다.
필요하면 단체 템플릿을 복사해서 시작할 수 있습니다.
예시:
archive/
example-club/
index.md
LICENSE.md
3. 기존 대회 자료를 수정하거나 추가하려는 경우
archive/{org}/{contest}/디렉터리로 들어갑니다.- 필요한 파일을 추가하거나 수정합니다.
archive/{org}/{contest}/index.md에서 설명과 링크를 함께 정리합니다.
예시:
archive/ucpc/ucpc-2025/
4. 새 대회 아카이브를 추가하려는 경우
archive/{org}/{contest}/디렉터리를 만듭니다.- 그 안에
index.md를 만듭니다. - 문제, 해설, 스코어보드 등 대회 자료를 정리합니다.
- 테스트데이터가 크다면 저장소에 직접 넣지 말고 GitHub Releases, Google Drive 등 외부 저장소에 올린 뒤 링크를 적습니다.
archive/{org}/index.md에 대회 링크를 추가합니다.
필요하면 대회 템플릿을 복사해서 시작할 수 있습니다.
예시:
archive/
ucpc/
ucpc-2025/
index.md
qualifier/
problem-ko.pdf
problem-en.pdf
editorial.pdf
final/
editorial.pdf
세부 규칙
기본 원칙
- 아카이브 기본 경로는
/archive/{소속단체 소문자 영문명}/{대회 소문자 영문명}/입니다. - 하나의 단체는 하나의 디렉터리를 갖고, 그 아래에 대회별 디렉터리를 둡니다.
- 각 대회 디렉터리에는
index.md가 있어야 합니다. index.md에는 대회 설명과 파일 링크가 명확하게 적혀 있어야 합니다.archive/아래 자료의 라이선스와 저작권 고지는 각 단체 또는 하위 디렉터리 기준으로 관리합니다.- 제3자 소프트웨어나 자료를 함께 올리는 경우에는 해당 라이선스 고지도 같이 포함해 주시기 바랍니다.
권리 및 책임
- 업로드하는 자료는 공개 배포 또는 아카이브 수록에 필요한 권한이 있는 경우에만 추가해 주시기 바랍니다.
- 기여자가 제출한 자료의 저작권, 라이선스, 기타 권리관계에 대한 1차적 책임은 해당 자료를 제출한 기여자에게 있습니다.
- 전국 대학생 프로그래밍 대회 동아리 연합은 제출된 자료의 권리관계를 사전에 독립적으로 검증하거나 보증하지 않습니다.
- 권리자 또는 이해관계자의 신고가 있으면, 검토 후 자료를 수정, 비공개 처리, 또는 삭제할 수 있습니다.
이름 규칙
- 단체명과 대회명 디렉터리는 영어 소문자와
-만 사용합니다. - 공백, 대문자, 한글, 특수문자 대신
-로 정리해 주시기 바랍니다. - 가능하면 짧고 일관된 이름을 사용해 주시기 바랍니다.
- 단체명은 너무 짧은 이름보다, 소속을 함께 드러내는 이름을 권장합니다.
예를 들어
run보다는kaist-run같은 형태를 권장합니다.
예시:
ucpckaist-runsogang-icpc
단체와 대회 구조
구체적인 예시는 archive/ucpc/ 아래의 실제 구조를 참고해 주시기 바랍니다.
archive/
{org}/
index.md
{contest}/
index.md
...
{org}는 단체 단위입니다.{contest}는 대회 단위입니다.- 단체 설명은
{org}/index.md - 대회 설명과 자료 링크는
{contest}/index.md
로 이해하시면 됩니다.
자료 형식
파일 형식
대회 디렉터리 안에 어떤 파일을 둘지에 대한 엄격한 규칙은 없습니다.
- PDF만 있어도 괜찮습니다.
- ZIP 하나만 있어도 괜찮습니다.
- 기존 raw 파일 구조를 유지해도 괜찮습니다.
다만 가능하면 최대한 깔끔하고, 이해하기 쉬운 형태를 권장합니다.
특히 평탄화할 수 있다면 평탄화하는 쪽을 권장합니다.
스코어보드의 경우 HTML, CSV, JS, CSS, 이미지 등 관련 파일이 함께 오는 경우가 많기 때문에, 이 경우에는 scoreboard/ 폴더를 두고 그 아래에 파일을 모아 두는 편이 더 자연스럽습니다.
테스트데이터의 경우 용량 문제 때문에, 가능하면 이 저장소에 직접 올리지 말고 GitHub Releases, Google Drive 등 외부 저장소에 올린 뒤 링크를 거는 방식을 권장합니다.
특히 대용량 테스트데이터는 레포를 가볍게 유지하기 위해 외부 링크로 관리해 주시기 바랍니다.
구조 예시
archive/
ucpc/
index.md
LICENSE.md
ucpc-2025/
index.md
qualifier/
problem-ko.pdf
problem-en.pdf
editorial.pdf
final/
editorial.pdf
scoreboard/
index.html
SPOTBOARD_LICENSE.txt
css/
js/
위처럼 대회 디렉터리 아래에서 예선과 본선을 나누어 정리하면 다음과 같은 장점이 있습니다.
- 경로가 짧아집니다.
- 링크를 걸기 쉽습니다.
- 나중에 자료를 찾기도 쉽습니다.
예선과 본선을 나눌 필요가 없다면 대회 디렉터리 바로 아래에 파일을 두어도 괜찮습니다.
반대로 이미 폴더가 깊은 raw 구조를 갖고 있어도 올릴 수 있습니다.
권장 파일 이름
- 단일 문제지:
problem.pdf - 다국어 문제지:
problem-ko.pdf,problem-en.pdf - 해설:
editorial.pdf - 코드 묶음:
solution-code.zip - 테스트데이터: 가능하면 외부 저장소 링크 사용
- 스코어보드: 가능하면
scoreboard/폴더를 두고index.html을 진입점으로 사용