최근 수정 시각 : 2025-07-06 18:26:27

한국정보올림피아드/사건 사고


파일:상위 문서 아이콘.svg   상위 문서: 한국정보올림피아드
주의. 사건·사고 관련 내용을 설명합니다.

사건 사고 관련 서술 규정을 유의하시기 바랍니다.

1. 개요2. 1984년
2.1. 대회장 정전 사태
3. 2014년
3.1. 메모리 제한 사태
4. 2015년
4.1. 표준 입출력 변경 사태4.2. 타 학교급 문제 유출 사태
5. 2018년
5.1. 다량의 문제 오류 사태
5.1.1. 예시
5.1.1.1. 괄호 문제5.1.1.2. 농부 문제5.1.1.3. 고등부 문제 27번5.1.1.4. 고등부 문제 36번5.1.1.5. 고등부 문제 49번
5.2. 고등부 채점 지연
6. 2019년
6.1. 2차 대회 서버 폭주 및 시간 지연 사태
7. 2020년
7.1. 2019 정보올림피아드 3차 대회 & 2020 정보올림피아드 공지 지연 사태7.2. 1차 대회 대회 시간 15분 연장
8. 2023년
8.1. 2023 정보올림피아드 2차 대회 서버 오류 사태
9. 2024년
9.1. 1차 대회 네트워크 오류
10. 2025년
10.1. 1차 대회 서버 오류로 인한 대회 연기 사태10.2. 연기된 1차 대회의 시험시간 연장

1. 개요

한국정보올림피아드사건 사고다.

2. 1984년

2.1. 대회장 정전 사태

1984년 4월 22일에 열린 제1회 퍼스널컴퓨터 경진대회는 당시 대통령까지 방문한 국가적 대규모 행사로 치러졌는데, 이 과정에서 청와대 경비실이 경호 테스트를 위해 대회장인 잠실체육관에서 메인 파워를 내렸던 것. 단순히 전등 정도만 꺼질 것으로 생각했지만 그 자리에는 본선대회가 진행중인 PC 300여대가 있었고 이게 모조리 꺼져버린 것.

해당 대회의 PC는 모두 관련 기업체가 대여한 것으로, 플로피 디스크 드라이버는 없었고 오직 카세트 테이프만을 사용하는 데이터 레코더만 있었으며 이 레코더의 느린 속도 때문에 응시자 대부분이 그때 그때 자료를 저장하지 않고 결과를 제출할 때만 자료저장을 하려 하여 정전될 때까지 그동안 만들었던 프로그램을 저장하지 않았다. 3시간의 대회시간 중 약 2시간이 경과했을 때 일어났던 일이니 그동안 작성했던 프로그램이 다 날아간 것.

주최측은 회의를 거쳐서 대회시간을 2시간 연장하도록 했는데, 당연 체육관 코트에 PC를 놓고 프로그래밍을 하던 중이며 부정행위 등을 막기 위해 대회중에는 화장실 출입 등을 할 수 없었던 관계상 5시간을 제자리에 있어야만 했던 참가자들은 식사나 생리 문제등을 참아가며 남은 시간동안 프로그래밍을 다 해야 했다.

PC라는 것을 그냥 TV처럼 껐다 다시 켜면 되는식으로 생각했던 높으신 분들의 실수가 큰 해프닝을 맞이한 것이다. 그만큼 그 시절 사람들은 PC를 몰랐던 것. 그리고 같은 일은 반복된다.

3. 2014년

3.1. 메모리 제한 사태

뉴스 링크
2014년 5월 24일에 열린 대구 정보올림피아드 지역본선에서 일어난 사태. 2013년과 다르게 문제에서 메모리 제한을 하지만 이 사실을 제대로 공지하지 않았다. 한국정보화진흥원에서는 대구교육연구정보원에 통보를 하라고 했으나 대구교육연구정보원에서는 그 사실을 통보하지 않았다는 것이다.

대구교육연구정보원에서는 일단 본선 진출자를 발표했으나, 학부모들이 거세게 반대하자 실수를 인정하고 메모리 제한을 푼 상태로 재채점을 하였다. 결국 총 127명 중에서 18명의 점수가 변동되었으며, 고등학생부 전국본선 진출자를 5명 추가하기로 하였다. 원래 대구광역시에 배정된 고등부 전국본선 진출자는 7명이나, 2014년 당시에는 5명 추가된 12명으로 변경되었다.

4. 2015년

4.1. 표준 입출력 변경 사태

2015년의 지역본선부터 입출력 방식이 기존의 input.txt, output.txt를 사용한 파일 입출력에서 stdin, stdout의 표준 입출력으로 바뀌었다. 그런데 예년의 공지를 가져다 쓰면서 관련 사항을 수정하지 않은 부분이 남아있었다. 또한 지역본선 대회장의 감독관이 시스템 및 알고리즘 문제 해결 등의 분야에 전문성을 가지지 않은 경우가 많아, 학생들의 질문이 본부에 전달되고 본부의 답변이 학생들에게 전달되는 과정에서 내용의 왜곡이 생겼고, 시험장마다 서로 다른 안내를 받게 되었다.

공지사항 중 주의사항 부분을 보면, "소스 파일명과 입출력파일 이름은 반드시 소문자로 작성한다."라는 안내가 있어 입출력 파일이 있음을 추측할 수 있다. 그런데 뒤쪽의 각 문제에는 "입력 파일 이름: 표준입력", "출력 파일 이름: 표준출력"이라는 표가 실려 있어 사람들을 더욱 혼란에 빠뜨렸다.

여러 시험장에서 시험감독관에 따라 "파일 입출력을 사용하는 게 아니라 표준 입출력을 사용한다. 즉, freopen으로 스트림 재설정도 하지 않고, fscanf, fprintf가 아닌 scanf, printf를 사용한다.", 혹은 좀 더 직설적으로 "키보드로 입력하고, 모니터 화면에 출력된다" 라는 공지를 수 차례 명확하게 받기도 했다. 경기도 일부에서는 이런 내용을 화면에 띄웠다. 대구의 한 시험장에서도 감독관이 해당 부분을 전체적으로 언급하였고, 경남에서도 freopen을 사용하지 말고 그냥 화면에 띄우는 방식으로 하면 된다고 언급하였다. 서울 지역본선 4 고사실은 입출력 관련된 질문에 대답을 하지 않았고, 1 고사실은 학생이 3명 남았을 때 표준입출력을 언급하며 학생들 코드의 입출력 부분을 직접 고쳐주었다는 말도 있었다.

관련 질문과 항의가 한국정보올림피아드 사이트 게시판에 빗발쳤다. 5월 26일 기준으로 커뮤니티 게시판이 닫혔다. 다만 완전히 닫힌 건 아니고, 링크를 숨겨놓았기 때문에 원래 주소로 접속하면 접속이 가능했다. 5월 27일 오후에 다시 열렸다.

5월 29일 대회 운영위원회 회의 결과가 나왔다. 파일 입출력 형식의 코드는 0점 처리한다는 의견으로 결정되었다. 안내 부족으로 상당수의 학생들이 피해를 받게 되었기 때문에, 이 판단에 납득하지 못한 사람들이 많았다.

4.2. 타 학교급 문제 유출 사태

이것으로 영향을 받은 학생이 없는 것도 아닐 것입니다. 모 온라인 저지[1]에는 이번 중등부 4번과 같은 문제가 있는데, 이 문제에서 "통과" 판정을 받으려면 유클리드 호제법을 사용한 잘못된 알고리즘으로 해결해야 합니다. 따라서 이 문제에서 "통과" 판정을 받은 고등학생 수험생들은 고등부 3번을 해결할 때 이 접근을 필히 사용했을 것입니다. 하지만 중등부 4번에 이 알고리즘에 대한 반례인 (5,6)이 제시되어 있으므로, 중등부 4번을 볼 수 있었다면 정확한 알고리즘을 사용했을 것입니다.

일부 지역에서 학생들이 초등부, 중등부, 고등부의 문제를 모두 볼 수 있었다는 제보가 5월 27일 대회 홈페이지 Q&A 게시판에 접수되었다. 고등부가 초등부나 중등부 문제 본다고 큰 문제 될 것 없지 않냐 생각할 수도 있지만, 고등부 3번 문제와 중등부 4번 문제가 연관되어 있어, 고등부 3번 문제의 잘못된 풀이 방법인 유클리드 호제법의 반례가 중등부 4번 테스트 케이스에 나와 있었다. 중등부 4번 문제를 본 고등부 학생들은 풀이 방법을 다시 생각함으로써 문제 해결에 도움이 될 수 있다는게 가장 큰 논란이 된 것.

5. 2018년

2018년 제35회 대회는 2025년 대회와 더불어 한국정보올림피아드 역사상 최악의 대회로 꼽힌다.

5.1. 다량의 문제 오류 사태

2018년 올림피아드부터 공교육 기반으로 문제가 변경되었고, 문제가 하향평준화 된다는 공지가 나왔다.
갑작스럽게 변경된 대회 방식에 혼선을 빚기도 하였지만, 문제가 공교육 위주로 나온다는 말에 어느 정도 수긍하는 분위기였다.

그리고 동년 4월 14일에 치러진 정보올림피아드 지역 예선 문제엔 문제점이 매우 많았다. 오타부터 시작해서 문제오류, 선지오류, 기준이 정확히 정해지지 않은 문제, 전문 프로그래밍 용어를 설명도 없이 출제 등 문제는 아주 난장판이였다.

많은 문제 오류와 함께 컴파일러를 Visual Studio 컴파일러 기준[2]으로 출제된 문제도 있어서 답이 여러 개가 나오는 경우가 발생했다.

2018년도 지역대회부터는 교사들이 출제 및 검수를 한다고 공지를 하였지만, 실제 교사들이 출제 및 검수를 하였는지는 아무도 모른다. 오히려, 오래동안 학교에서 정보올림피아드를 교육하고 지도해 왔던 교사들은 참여하지 않았고, 대회에 문제가 생길 것이라는 우려를 하였다고 한다. 문법, 특히 짜증나는연산자 우선순위[3]를 묻는 문제가 다수 출제되었다.


이런 성의없는 문제들 때문에 공교육을 내세우며, 이전까지 대회를 준비하고 운영해오던 출제 및 검토진을 모두 갈아쳤던 정보올림피아드 주최 측을 비판하는 목소리가 컸다.

우선 인정된 문제 오류만 해도 초등부 1개, 중등부 2개, 고등부 4개이며, 특히 고등부의 경우 4개씩이나 문제 오류가 터져 본선 진출자 결정 자체에 혼선이 생길 수밖에 없는 상황이다.

점수 발표 시각이 21시라고 예고했음에도 불구하고 21시가 지나도 메일이 오지 않는다. 결국 22시쯤에 왔다.

접속 폭주인지 의도적 조작인지는 알 수 없지만 4월 25일 기준으로 사이트가 터졌다! 지금은 복구된 듯 하다.
또한 문의 게시판에 글을 쓸 수 없었으나 사이트 보안이 허술한 탓인지 몇 개의 글이 올라오는 해프닝도 있었다.

구제 방안 검토 결과 하도 이뭐병스러운 문제 오류 속에 결국 구제 방안이 결정되었는데, 본선 진출자가 당초 600명에서 무려 147명이 늘어나 747명이 되어버렸다.(!)

이외에도 고등부는 논란 문항이 2개나 더 있으며, 논란 이외에도 부정확성이 제기되는 문항이 1개 더 있어 총 7개의 문제가 논란에 휩싸인 역대 최악의 상황이다. 아래의 항목들을 보면 알겠지만, 하나하나가 아주 심각한 코딩들 뿐이다.

5.1.1. 예시

5.1.1.1. 괄호 문제
중등부 15번, 고등부 6번문제.

괄호 문제는 네개의 괄호쌍, 그러니까 ( 4개, ) 4개가 있는데 이를 이용하여 올바르지 않은(즉 짝이 맞지 않는) 괄호쌍을 만들 수 있는 경우의 수를 구하는 문제였다. 카탈란 수를 이용한 전형적인 문제이고, 이전에도 이런 유형의 문제는 여러번 나왔으니 문제가 될 게 없어 보이지만, 답은 56인데 보기에 51, 52, 53, 54, 55가 나왔다. 즉, 답이 없다.
5.1.1.2. 농부 문제
초등부 37번, 중등부 44번

농부가 총 100마리의 동물을 사는데, 송아지가 50만원, 새끼양이 10만원, 토끼가 5000원이다. 농부가 산 동물의 금액이 총 1000만원일 때 토끼의 수를 구하시오.

전형적인 부정방정식 문제로, 출제진의 원래 의도였던 걸로 보이는 풀이법은 송아지, 새끼양, 토끼를 모두 1마리 이상씩 구입하고 그 외의 동물을 일절 구입하지 않는다고 가정하고 문제를 풀면 정답은 송아지 19마리 새끼양 1마리 토끼 80마리가 유일하므로 정답은 080이다.

하지만 문제에 송아지, 새끼양, 토끼를 모두 1마리 이상씩 구입한다는 말이 없었기 때문에 새끼 양만 100마리 구입할 수도 있어 정답은 000이 될 수도 있었다. 결국 080과 000 모두 정답으로 인정되었다.
5.1.1.3. 고등부 문제 27번
다음 프로그램의 출력 결과는 무엇인가?(2.0점)
int num, temp1, temp2;
int A = 2;
int B = 12;
num = ((temp1 = B / A++) + (temp2 = B / ++A)) + ++B;
printf(“%d”, num); 


주최측의 의도는 22였던 것 같으나, GCC를 사용하면 답은 오히려 20이 나오게 된다. 참조 여기에서 구동시킨 결과는 23이다. 또한, 사진을 보면 알겠지만, Undefined Behavior로 인해 컴파일 에러 경고까지 뜬다.(답 자체는 출력되지만)
이로 인해 모두 정답 처리되었다.
5.1.1.4. 고등부 문제 36번
a=1, b=0, c=-1일 때, 다음 프로그램의 출력 결과는 무엇인가?(2.4점)
int i = 5;
if(a<b<c){for(i--; i--; i--)
    printf(“%d ”, i);
} else {
for(i--; --i; i--)
    printf(“%d ”, i);
}

둘째줄의 if(a<b<c)는 "a보다 b가 크고 b보다 c가 크다"가 아니라 (a<b)<cfalse<c"가 된다.[4] 출제진들의 행동이 undefined behavior 게다가 2번, 4번의 ...의 무한 실행은 발생할 수 없는 것인데[5] 선지로 낸지라 더더욱 비정상적인 문제라고밖에 볼 수 없다.
5.1.1.5. 고등부 문제 49번
다음 프로그램의 출력 결과는 무엇인가?(3.0점)
#define INT_MAX 2147483647
#define abs(x) (x<0) ? x*-1 : x
int f(char *D)
{  int n = 14;
  int B[14][14];
  bool A[14][14];
  int i, j, k, m;
  for (i = 0; i<n; i++)	 {
    A[i][i] = true;
    B[i][i] = 0;  
   }  
   for (m = 1; m <= n; m++) {
    for (i = 0; i<n - m + 1; i++) { 
     j = m + i - 1;
      if (m == 1) A[i][j] = A[i][j];
      if (m == 2) A[i][j] = D[i] == D[j]);
      else A[i][j] = (D[i] == D[j]) && A[i + 1][j – 1];
      if (A[i][j] == true) B[i][j] = 0;
    else {      B[i][j] = INT_MAX;
      for (k = i; k <= j - 1; k++)
        B[i][j] = B[i][j] < (B[i][k] + B[k + 1][j] + 1)? B[i][j] : (B[i][k] + B[k + 1][j] + 1);
      }
    }
  }  return B[0][n - 1];
}
int main(){
	char D[] = "ababbbabbababa";
	printf("%d", abs(f(D)));
	return 0;}

INT_MAX를 무려 2147483647[6]을 내놓더만 정작 코딩 알고리즘이 불성립하는 이상한 문제가 되고 말았다.
검토 의견 주최측은 단순히 17줄에 빠진 괄호 하나를 문제 삼았지만,[7] 그것은 작디 작은 일부분에 불과했고 코드 자체를 엉망으로 짜놓았다는 사실이 밝혀지고 말았다.

5.2. 고등부 채점 지연

파일:codinggodeung.png
학생 여러분 안심하십시오

2018년 대회에서 서버에 오류가 생겨 고등부 채점이 지연된 사건이다.[8][9]

시험 시작 한 시간 후, 고등부 채점이 느리다는 불평이 곳곳에서 터져나왔다. 심한 경우에는 한 시간 전 제출한 코드가 아직도 채점되지 않았다는 말도 있었다. 결국 주최 측은 긴급 공지를 하기 이르는데, 그 공지 내용이라는 것이
채점은 서비스 차원에서 지원하는 것입니다.
자신만 채점이 느린 게 아니고, 모두가 채점이 느린 것이니 채점이 완료될 동안 다른 문제를 풀고 계십시오.

문제 채점 결과가 나오지 않을 때까지 학생들은 불안해 할 것이다. 그리고 한두 시간 뒤 다른 공지가 올라왔다.
서버의 문제를 바로잡았으니, 이제 채점이 전보다 빨라질 것입니다. 또한 IOI 기본 규칙에 따라 이번 대회는 고등부에 한해 30분 연장하겠습니다.

하지만 채점이 느린 것은 마찬가지였다. 또다시 고등부 학생들에게서 불만이 쏟아졌다. 이렇게 되면서 주최 측에서는 최종 공지를 하기에 이른다.
시험 시간이 끝날 때까지 채점이 되지 않아도, 서버는 여전히 남아 있어 채점이 진행되니 걱정하지 마십시오.

시험이 끝난 후 정답 풀이 뒤에 고등부의 채점 결과가 공개되었다.

주최 측에서는 정답 풀이 때에 다음과 같은 말을 남겼다.
모두가 똑같은 환경에서 진행되었기 때문에 이번 대회에는 문제가 전혀 없었다고 생각합니다. 또한 실시간으로 서버 상황을 학생들에게 알렸기 때문에 최선을 다했다고 생각합니다.

이후 한 커뮤니티에서 채점 관련 내부자가 한 말에 의하면, 채점 서버의 문제가 아닌 스위치허브, 라우터 등 네트워크 장비의 문제로 실제 대회 환경에서는 핑 시도 시 패킷 유실률이 10%에서 30% 정도였다고 한다. 때문에 DB와 채점 서버가 데이터를 주고 받는데, 패킷 유실 때문에 성공적으로 파일을 받는 데 시간이 매우 오래 걸렸고, 요청 하나를 처리하는데 10분 넘게 제대로 일하지 못한 채점기를 메인 서버가 자동으로 비활성화시켜 버렸다고 한다. 결국 많은 사람들이 생각했던, 채점기 수의 부족, 채점 데이터의 문제가 아닌 네트워크 장비의 문제라고 말한 것이다. 2시 30분 대회 종료 이후 일부 네트워크 장비를 교체했고, 그 후에 다시 진행된 채점은 원활히 진행됐다고 한다.

주최 측에서는 위에서 서술된 지난 2018 한국정보올림피아드 경시 부문 지역 대회 때의 대량의 출제 오류 사태 때 사과문을 올리면서 전국 대회는 '차질 없이' 진행하겠다고 밝힌 바 있다. 그러나 보다시피 결국은 '차질'이 생겨 버렸다.

공교롭게 같은 년도에 지역본선, 전국본선에서 문제가 생겼지만 사실 두 문제는 본질적으로 다른 것이라고 볼 수 있다. 지역본선에서 있었던 문제는 출제 오류이고, 전국본선에서는 장비 문제다. 이번 본선에서 출제 오류를 해결하기 위해 공청회를 열고 대회 준비를 강화한 것처럼, 다음 대회에서는 문제가 발생한 서버/네트워크 장비를 꼼꼼히 점검하여 이런 일이 다시 일어나지 않도록 해야 할 것이다.

한편 KOI 의견 게시판에 여러 의견이 올라왔는데 0점자에게도 장려상을 수상하자, 재시험이 답이다 같은 의견이 제시되었다.
또한 초, 중등부에서도 꽤나 많은 글이 올라왔다.
특히 초4, 중3 물탱크 문제는 채점 예시 데이터의 마이너스(-) 기호가 대시(–)로 적혀 있었다! 하지만 이 사실은 잘 알려지지 않았다. 이걸 단순히 실수로 넘어갈 수 있다면 좋겠는데, 이미 고등부 49번 출제 당시 괄호 개수의 심각성을 인지하지 못하는 모습을 보였다(코딩이 엉망이기도 했지만). 출제진의 수준에 더더욱 실망할 수밖에 없는 부분이다.

6. 2019년

6.1. 2차 대회 서버 폭주 및 시간 지연 사태

2차 대회 당일, 대회가 시작되는 1시부터 서버 폭주가 발생하여 대회 시작시간과 종료시간이 10분씩 미뤄졌으며, 10분 뒤에 다시 서버 폭주가 발생하여 대회 시작시간과 종료시간이 다시 20분씩 미뤄졌다가 5분 앞당겨져 1시 25분부터 5시 25분까지 대회를 진행했다. [10] 또한, 마지막 몇 분 간에도 인터넷 문제로 일부 시험장에서 채점이 진행되지 않았다. 일부 시험장에서만 일어나, 불공정했다는 의견도 많았다.

또한 Ubuntu 환경에서 진행된 작년과는 달리 올해는 Windows에서 대회를 했으며, 일부 컴퓨터에서는 .cpp 파일의 기본 프로그램이 VS(사용 금지됨)로 지정돼 있어 부정행위 처리를 받은 참가자링크[11]가 나오기도 했고, Chrome 브라우저를 활용해 어떤 웹사이트에도 들어갈 수 있는 환경이었다. 기본 프로그램인 메모장이나 계산기, 그림판[12]조차 사용을 금지했으며, 심지어 돋보기를 활용해 부정행위 처리를 받을 뻔한 참가자도 있었다. 한 참가자는 대회가 끝난 뒤 "사용 금지 프로그램이 널리 깔려 있는 지뢰밭"이라고 대회 환경을 묘사하였다.

7. 2020년

7.1. 2019 정보올림피아드 3차 대회 & 2020 정보올림피아드 공지 지연 사태

작년 최초 공지일자인 3월 12일은 커녕 작년 기준 접수 시작일자인 3월 20일도 훌쩍 넘긴 5월 10일까지 아무런 공지도 올라오고 있지 않다.

2020년 5월 11일에 2019년 3차 대회 일정과 함께 공지했다. #

2020년 6월 18일 오후 7시에 드디어 2019년 3차 대회 관련 공지가 올라왔는데, 3차 대회가 코로나19로 인해 취소되었다고 한다.#
2019년 신설된 3차 대회가 2020년으로 미루어지고, 그러다가 대회 개최 약 1주 전에 취소되는 전례없는 경우가 생겨버렸다.
코로나19의 상황이였다고 해도 공지가 너무 늦게 올라온 것은 사실이라 운영과 관련해 비판이 많다.

그리고 3차 대회 취소 공지와 같은 시각에 1차/2차 대회 추진 공지가 올라왔다. #

7.2. 1차 대회 대회 시간 15분 연장

대회 1교시는 14시 정각에 시작을 예정하고 있었으나 1교시 대기 중 온라인 감독으로 인한 문제가 생겨 15분을 늘려 1교시는 14시 15분에 시작하게 되고 2교시의 시간도 15분 연장되었다. 하지만 15분 연장으로 17시 45분에 끝났어야 할 2교시 시험이 15분 연장이 반영되지 않아 17시 30분에 종료되는 문제가 생겨 문제를 해결해 다시 17시 45분까지 시험을 재개했다.

8. 2023년

8.1. 2023 정보올림피아드 2차 대회 서버 오류 사태

2023년 7월 15일 정보올림피아드 2차 대회 중 일부 제출 코드에서 몇몇 부분 문제가 서버 오류로 인해 ILE(Idleness Limit Exceeded)라는 오류로 틀리다고 채점되었다. 또한, 대회 중 컴파일러가 컴파일하는 과정에서 오류가 없는 코드에서도 에러가 나오기도 하였다.

이로 인해 대회 시작 27분만에 공지가 올라왔다.

9. 2024년

9.1. 1차 대회 네트워크 오류

1교시를 시작하자마자 네트워크 오류로 10분이 연장되었다. 대회가 시작하자마자 문제에 들어갈 수 없는 학생들이 나오기 시작했고, 결국 502 Bad Gateway, 504 Gateway Timeout이 떴다.[13] 그 때문에 시작 15분 정도 후에 1교시 종료 시간, 2교시 시작시간을 10분 뒤로 미루는 공지가 올라왔다.

그런데, 이와 비슷하지만 더 심각한 사태가 다음 해에 일어났다.

10. 2025년

10.1. 1차 대회 서버 오류로 인한 대회 연기 사태

파일:2025_koi_1차_호스트에러사진.png
14시 5분 경에 촬영된 호스트 에러 사진.
파일:한국정보올림피아드/2025/접속 에러.png
14시 30분 경에 촬영된 로그인 실패 사진.
Request failed with status code 503
파일:자세한에러.png
에러가 났을 당시의 콘솔 창.[14]
graphql은 current-time과 함께 내부 서버 API인 것으로 추정된다.

진행 과정 [ 펼치기 ㆍ 접기 ]
Gateway timeout이었기 때문에 사람마다 달랐을 수 있다.
14:00 1차 대회가 시작되었다.
14:03 application error 가 발생하였다.[15]
14:05 Gateway time-out이 발생했다.
(Error Code: 504)[16]
14:08 복구가 완료되었다. 2시 15분으로 시작 시간이 연기되었다.
14:08:30 시작 시간이 2시 30분으로 연기되었다.
14:24 시작 시간이 2시 50분으로 연기되었다.
14:25 로그인 오류가 발생하였다.
14:26 전체적으로 모든 학생들이 튕겼다.
14:32 로그인 오류가 발생하였다.
14:40 서버가 느리게 갱신되고 있었다.
14:41 모두 로그인이 되었다. 그러나, 서버 점검을 위해 연기 가능성이 크다.
14:48:15 2시 50분 시작이 확정되었다.
14:50 다시 시작되었고, 문제가 표시되었다.
14:51 감독관이 시험을 시작하라는 안내를 하였으나, 이전과 마찬가지로 문제가 표시되지 않거나 문제가 정상적으로 표시된 학생들도 1번 문제 이후로 넘어가지 않는 등의 문제[17]가 발생하였다. 이로인해 시험 시작 시간이 다시 연기되었고, 정확한 시간은 발표하지 않은 채 대기하라는 안내만 반복되었다. 모든 문제가 다 유출되었다는 의견이 게시판에 올라왔다.
14:51 그러나, 다음 문제로 안 넘어가고 무한 로딩되었다. 이로 인해 문제가 유출된 상태로 제출이 전부 정지되었다.
14:53 또, 2시 25분경의 현상이 일어났다.
(Request failed with status code 503)
14:54 2시 5분경처럼 또 Gateway time-out(Error Code 504)가 발생했다.
15:11 503 에러가 지속적으로 발생하였다. 로그인도 되지 않아 남은 시간도 볼 수 없는 상태. 메인 api인 current-time도 Service Unavailable 상태이다. (원래는 Javascript의 Date.now와 같은 형식의 서버 시간이 뜬다.) 소스코드에 h.send(p) 부분에서 지속적으로 에러가 발생하였다.[18]
15:21 전화를 해보았으나, 정답 유출 등의 문제로 진행할 수 없을 가능성이 높다고 했다.
15:22 한국정보올림피아드 사이트도 잠시 Gateway time-out 에러가 떴었다. 계속 서버가 느려졌다.
15:23 시험 사이트 접속 이외의 모든 인터넷 사용을 허용하였다.[19]
15:24 대회 사이트에 접속이 재개되었다. 다만, 1차 대회 시작 시간이 6월 2일이 되었다. 그 와중에 2차 대회는 1시간 밖에 남지 않았다고 뜬다.[20]
15:26 고사실 중 하나는 Zoom 회의실(감독 컴퓨터)의 모든 사람을 음소거했다.
15:36 대회를 2~3주 미루는 것으로 결정되었고, 환불도 된다고 한다. 사이트 먹통 원인은 2~3일 후에 홈페이지에 공지한다고 한다. Zoom 회의실 퇴장 허가가 떨어졌다.

1차로 2시(1교시 시작시간)에 서버가 터졌고, 2차로 2시 50분(1교시 2차 시작시간)에 또 한번 서버가 터졌다. 테스트 사이트 서버뿐만이 아니라 상위 서버로 추정되는 biko.kr 서버도 cloudflare보안시스템 락이 걸려버렸다.[21][22]

정규 시간보다 약 1시간 30분이나 초과된 상황에서, 시험을 제대로 보지 못하고 한국정보올림피아드 의견게시판에는 민원이 빗발쳤다. 심지어 의견게시판에 욕설을 올리는 사람도 생겨났고, 집단 고소하자는 문의 및 언론사에 보고하라는 의견도 폭발했다. 또한, 원래 이미지를 올릴 수 없는 게시판이지만 태그를 이용해 이미지를 업로드하거나 링크를 다는 방법이 공유되었다. 이후 노무현 전 대통령의 합성 사진이 올라가는 등의 테러가 이루어졌다.

가장 큰 문제는, 이미 문제를 본 학생들도 있기 때문에 대회 운영에 큰 차질이 생길 것으로 예상된다. 문제가 유출되었으니 초중고 1교시 문제 전체를 다시 출제해야하는 것이다. 이외에도 긴급 연락 전화를 받지 않는 등 많은 불편이 있었다.[23]

2~3시간 가량 학생들과 각 고시장의 감독관 선생님들은 네트워크가 다시 연결되기를 기다렸으나 1시간이 지연되자 일부 학부모를 포함한 학생들이 웅성거리며 분위기가 깨지기 시작했다.[24]

대회 참가자들에게 전송된 메시지 [ 펼치기 ㆍ 접기 ]
>[정보올림피아드 1차대회 연기]
[Web발신]
2025년 6월 1일에 계획된 2025년 정보올림피아드 1차대회가 채점 서버 이슈로 인해 진행이 어렵게 되어 3주 가량 연기되게 되었음을 알려 드립니다.
많은 분들의 노력으로 준비한 대회 이지만 완벽하게 진행되지 못한 것을 사과 드립니다.
추후 진행 계획은 2-3일 내로 홈페이지에 공지하도록 하겠습니다.
1차대회가 다시 시작되기 전 까지 일정 기간 환불이 가능함도 알려 드립니다.
정보올림피아드위원회 배상

결국 서버를 고치지 못하고 문제 유출 등으로 대회가 2~3주 연기되었다는 공지를 했다.[25] 대회 시작 전까지 환불이 가능하다고 하며, 자세한 공지는 추후 공식 사이트를 확인해 달라고 했다. 대회비는 대회 시작 전 환불 가능하다.

어떤 학교들은 연기된 일정이 기말고사 기간이기 때문에 게시판에서 불만의 의견이 빗발치고 있고 게시판 서버 접속이 지연되기도 했다.

다양한 언론사에서 뉴스가 보도되었다.[26]
당일 오후 4시, 한국정보올림피아드 위원회 측 사과문이 홈페이지에 업로드되었다.

사과문 내용 전체 [ 펼치기 ㆍ 접기 ]
>2025년 6월 1일(일)로 예정되었던 2025년도 한국정보올림피아드 1차대회가 대회 시스템 문제로 인해 부득이하게 연기되었음을 알려 드립니다.

대회를 위해 오랜 시간 준비하시고 기다려주신 참가 학생, 학부모님, 지도 교사 및 관계자 여러분께 진심으로 고개 숙여 사과드립니다.

현재 상황을 신속히 파악하여 최대한 빠른 시일 내에 안정적인 환경에서 대회가 원활하게 운영되도록 최선을 다하겠습니다. 향후 일정과 대회 재진행 관련 안내는 추후 2~3일 이내에 공식 홈페이지를 통해 공지하도록 하겠습니다.

아울러 이번 사태로 인한 불편을 최소화하고자 1차대회가 다시 진행되기 전까지, 원하는 경우 참가비 환불 조치를 실시할 예정이며, 환불 절차 등 세부사항은 별도 공지하겠습니다.

믿고 기다려주신 여러분께 다시 한번 사과의 말씀 드립니다.

한국정보올림피아드위원회 배상
2025년도 한국정보올림피아드 1차 대회 연기 안내 및 사과 말씀


그 이후 일부 학생들이 자체적으로 피해조사를 받기 시작했다.

결국 6월 2일, 의견게시판을 잠정 폐쇄하기에 이르렀다.
일부 사용자의 남용으로 인해 의견 게시판이 잠정적으로 폐쇄됩니다.
이메일을 통한 의견 제시는 가능함을 알려드립니다.

6월 4일, 공식 홈페이지에 대회 일정이 변경되었다는 안내문이 올라왔다.
안내문 내용 전체 [ 펼치기 ㆍ 접기 ]
>지난 6월 1일 대회 시스템 오류로 수천 명의 응시자, 학부모님, 지도 교사 및 관계자 분들께 끼친 불편에 대해 다시 한 번 머리 숙여 사과드립니다. 대회 시스템 오류의 주요 원인을 파악하였고 수정을 진행하고 있습니다.

연기된 1차 대회는 6월 29일(일) 같은 시각에 진행될 예정이며, 유출된 문제는 모두 새로운 문제로 대체됩니다.

그리고 환불이 필요하신 분들은 접수 사이트에서 취소를 통해 100% 환불을 받으실 수 있습니다.

접수 사이트는 아래 일정으로 다시 열리도록 조치하였습니다. 신규 접수도 가능합니다.

접수 시작: 6월 5일(목) 10시 00분
접수 마감: 6월 23일(월) 23시 59분
다시 한 번 1차대회 연기로 인한 불편과 혼선에 대해서 사과드리며, 추후에 동일한 일이 발생하지 않도록 최선을 다하겠습니다.

한국정보올림피아드위원회 배상

추가접수 기간에 12만원으로 접수하신 분들께도 일반 등록비인 10만원을 적용하려고 합니다. 다만, 현재 접수 시스템이 2만원만 환불하는 것을 지원하지 않고, 3주 내에 2만원 환불 시스템을 개발하고 안정화하는 것이 시간상 촉박하여 부득이하게 접수를 취소하신 후 재접수하시기를 부탁드립니다. 이 과정을 놓치신 분들께는 추후 계좌를 통한 환불을 진행할 예정입니다.
2025년도 한국정보올림피아드 1차 대회 연기된 일정 안내

10.2. 연기된 1차 대회의 시험시간 연장

소수에게만 몇 분 가량 지연이 발생했고, 1교시 시험시간을 5분 연장하는 것으로 그쳤다.
일부 응시자의 말에 의하면 감독관이 누군가 해외에서 서버에 디도스 공격을 시도하고 있다고 했으며 설정을 진행중이라고 했다.



[1] koistudy이다. 관리자 중 한 명인 선생님이 그리디 알고리즘인 줄 알고 모의고사 출제를 하셨다가 폭풍같은 반례에 문제를 내렸다하며. 현재는 제대로 고쳐졌다.[2] 정보올림피아드는 원래 GCC기반이다![3] 일반적으로 코딩에서는 그냥 괄호로 묶으면 되지, 연산자 우선순위는 거의 사용하지 않는다[4] 원 의도대로라면 if(a<b && b<c)가 맞다.[5] 지금 당장 수를 무한히 출력하는 코드를 하나 짜서 실행해보라. 출력 결과에 "..."이라는 문구는 절대 나오지 않는다.[6] 2의 31제곱보다 1 작은 값으로, int (32비트 부호 있는 정수)의 최댓값이다.[7] 백번 양보해서 설사 괄호가 문제라고 해도 말이 안되는게 괄호를 어떻게 고쳐서 컴파일하더라도 출력 결과가 INT_MAX인 2147483647로 나온다. 당연히 OMR카드에 기입할 수 없다.[8] 시작 30분 후에 제출한 코드가 끝날 때까지 채점되지 않았다! 언제 제출했느냐에 따라 채점 시간이 천차만별이었는데, 채점 시간이 적게는 2시간, 많게는 3시간 이상 소요된 학생도 있었다.[9] 초등부, 중등부는 채점에 3~10분 가량 소요되었다.[10] 서버 폭주 발생 이전에 잠깐 열린 동안 문제를 내려받은 사람들은 25분 정도의 추가 여유시간이 생기게 되어(물론 짧은 시간동안 문제를 다 읽었다면) 형평성의 문제도 있었다.[11] 워낙 PS판이 좁기 때문에 한 대회에서 부정행위 처리되는 것은 PS계에서의 사형 선고나 다름없다. 해당 참가자는 십중팔구 NYPC 등의 대회에도 참가가 금지되었을 것이다.[12] 한 참가자는 초등부 2번 문제를 풀기 위해 그림판을 사용하다가 퇴장당할 뻔 했다고 말했다.[13] 안 뜬 사람도 있었다는 썰이 있었다.[14] 파일:콘솔창옆에러.png
그 옆에 있던 에러였다.
[15] 파일:콘솔창옆에러.png
[16] 파일:한국정보올림피아드/2025/접속 에러1.png[17] 일부 학생은 2, 3번도 풀었다고 하며 중등부 20번도 보였다는 학생도 있다.[18] 5xx 에러가 뜬 것으로 보아, 패킷을 send하는 부분은 문제가 없으나, 메인서버가 죽어버린 관계로 오류가 뜬 것으로 추정된다.[19] 몇몇 고사실에선 대화를 하기 시작하고, 나무위키를 민원판으로 쓰기도 했다.[20] 파일:정보올림피아드/시간표시에러(1).png[21] 파일:biko.kr먹통.jpg[22] biko.kr의 법인이 한국정보올림피아드 주최측과 동일한 것으로 보아, 서버를 공유하고 있었던 것으로 추정된다.[23] 파일:2025 koi message.png
사태 이후 전화가 아닌 메일로 문의해달라는 공지를 보아 정말 많은 사람이 전화를 했던 것으로 보인다.
[24] 수다를 떨거나 끝말잇기, 노래를 부르고 우쿨렐레를 치고 리코더를 부는 등의 행동을 하는 학생도 있었다. 심지어는 화면에 대고 감독관에게 욕설을 하는 상황, 대기하라는 지시에 불응하고 디스코드를 하거나 나무위키를 편집하는 상황이 벌어졌다.[25] 하지만 그때가 시험 기간인 학교들이 대다수이다.[26] 의견 게시판에 게시된 글 중 방송국에 제보해야 한다고 주장한 사람들이 제보를 한 것으로 추정된다.

#!if version2 == null
{{{#!wiki style="border:1px solid gray;border-top:5px solid gray;padding:7px;margin-bottom:0px"
[[크리에이티브 커먼즈 라이선스|[[파일:CC-white.svg|width=22.5px]]]] 이 문서의 내용 중 전체 또는 일부는 {{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/한국정보올림피아드|한국정보올림피아드]]}}}{{{#!if external != "o"
[[한국정보올림피아드]]}}}}}} 문서의 {{{#!if uuid == null
'''uuid not found'''}}}{{{#!if uuid != null
[[https://namu.wiki/w/한국정보올림피아드?uuid=f03b91cf-e971-44f3-af8d-645c96fa4a68|r482]]}}} 판{{{#!if paragraph != null
, [[https://namu.wiki/w/한국정보올림피아드?uuid=f03b91cf-e971-44f3-af8d-645c96fa4a68#s-3|3번 문단]]}}}에서 가져왔습니다. [[https://namu.wiki/history/한국정보올림피아드?from=482|이전 역사 보러 가기]]}}}
#!if version2 != null
{{{#!wiki style="display: block;"
{{{#!wiki style="border:1px solid gray;border-top:5px solid gray;padding:7px;margin-bottom:0px"
[[크리에이티브 커먼즈 라이선스|[[파일:CC-white.svg|width=22.5px]]]] 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
{{{#!wiki style="text-align: center"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="text-align: left; padding: 0px 10px"
{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/한국정보올림피아드|한국정보올림피아드]]}}}{{{#!if external != "o"
[[한국정보올림피아드]]}}}}}} 문서의 {{{#!if uuid == null
'''uuid not found'''}}}{{{#!if uuid != null
[[https://namu.wiki/w/한국정보올림피아드?uuid=f03b91cf-e971-44f3-af8d-645c96fa4a68|r482]]}}} 판{{{#!if paragraph != null
, [[https://namu.wiki/w/한국정보올림피아드?uuid=f03b91cf-e971-44f3-af8d-645c96fa4a68#s-3|3번 문단]]}}} ([[https://namu.wiki/history/한국정보올림피아드?from=482|이전 역사]])
{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid2 == null
'''uuid2 not found'''}}}{{{#!if uuid2 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph2 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]]){{{#!if version3 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid3 == null
'''uuid3 not found'''}}}{{{#!if uuid3 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph3 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version4 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid4 == null
'''uuid4 not found'''}}}{{{#!if uuid4 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph4 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version5 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid5 == null
'''uuid5 not found'''}}}{{{#!if uuid5 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph5 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version6 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid6 == null
'''uuid6 not found'''}}}{{{#!if uuid6 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph6 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version7 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid7 == null
'''uuid7 not found'''}}}{{{#!if uuid7 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph7 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version8 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid8 == null
'''uuid8 not found'''}}}{{{#!if uuid8 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph8 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version9 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid9 == null
'''uuid9 not found'''}}}{{{#!if uuid9 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph9 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version10 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid10 == null
'''uuid10 not found'''}}}{{{#!if uuid10 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph10 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version11 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid11 == null
'''uuid11 not found'''}}}{{{#!if uuid11 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph11 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version12 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid12 == null
'''uuid12 not found'''}}}{{{#!if uuid12 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph12 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version13 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid13 == null
'''uuid13 not found'''}}}{{{#!if uuid13 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph13 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version14 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid14 == null
'''uuid14 not found'''}}}{{{#!if uuid14 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph14 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version15 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid15 == null
'''uuid15 not found'''}}}{{{#!if uuid15 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph15 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version16 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid16 == null
'''uuid16 not found'''}}}{{{#!if uuid16 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph16 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version17 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid17 == null
'''uuid17 not found'''}}}{{{#!if uuid17 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph17 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version18 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid18 == null
'''uuid18 not found'''}}}{{{#!if uuid18 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph18 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version19 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid19 == null
'''uuid19 not found'''}}}{{{#!if uuid19 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph19 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version20 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid20 == null
'''uuid20 not found'''}}}{{{#!if uuid20 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph20 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version21 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid21 == null
'''uuid21 not found'''}}}{{{#!if uuid21 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph21 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version22 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid22 == null
'''uuid22 not found'''}}}{{{#!if uuid22 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph22 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version23 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid23 == null
'''uuid23 not found'''}}}{{{#!if uuid23 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph23 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version24 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid24 == null
'''uuid24 not found'''}}}{{{#!if uuid24 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph24 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version25 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid25 == null
'''uuid25 not found'''}}}{{{#!if uuid25 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph25 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version26 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid26 == null
'''uuid26 not found'''}}}{{{#!if uuid26 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph26 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version27 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid27 == null
'''uuid27 not found'''}}}{{{#!if uuid27 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph27 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version28 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid28 == null
'''uuid28 not found'''}}}{{{#!if uuid28 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph28 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version29 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid29 == null
'''uuid29 not found'''}}}{{{#!if uuid29 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph29 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version30 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid30 == null
'''uuid30 not found'''}}}{{{#!if uuid30 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph30 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version31 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid31 == null
'''uuid31 not found'''}}}{{{#!if uuid31 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph31 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version32 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid32 == null
'''uuid32 not found'''}}}{{{#!if uuid32 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph32 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version33 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid33 == null
'''uuid33 not found'''}}}{{{#!if uuid33 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph33 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version34 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid34 == null
'''uuid34 not found'''}}}{{{#!if uuid34 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph34 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version35 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid35 == null
'''uuid35 not found'''}}}{{{#!if uuid35 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph35 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version36 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid36 == null
'''uuid36 not found'''}}}{{{#!if uuid36 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph36 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version37 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid37 == null
'''uuid37 not found'''}}}{{{#!if uuid37 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph37 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version38 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid38 == null
'''uuid38 not found'''}}}{{{#!if uuid38 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph38 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version39 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid39 == null
'''uuid39 not found'''}}}{{{#!if uuid39 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph39 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version40 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid40 == null
'''uuid40 not found'''}}}{{{#!if uuid40 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph40 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version41 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid41 == null
'''uuid41 not found'''}}}{{{#!if uuid41 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph41 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version42 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid42 == null
'''uuid42 not found'''}}}{{{#!if uuid42 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph42 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version43 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid43 == null
'''uuid43 not found'''}}}{{{#!if uuid43 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph43 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version44 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid44 == null
'''uuid44 not found'''}}}{{{#!if uuid44 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph44 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version45 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid45 == null
'''uuid45 not found'''}}}{{{#!if uuid45 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph45 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version46 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid46 == null
'''uuid46 not found'''}}}{{{#!if uuid46 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph46 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version47 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid47 == null
'''uuid47 not found'''}}}{{{#!if uuid47 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph47 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version48 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid48 == null
'''uuid48 not found'''}}}{{{#!if uuid48 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph48 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version49 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid49 == null
'''uuid49 not found'''}}}{{{#!if uuid49 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph49 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version50 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid50 == null
'''uuid50 not found'''}}}{{{#!if uuid50 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph50 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}}}}}}}}}}}}}}}}