온라인 컴파일러 Repl을 사용해봅시다

안녕하세요 jaehoo1입니다.

저는 BOJ에서 문제를 풀 때, 로컬(Visual Studio 2010)로 코딩을 한 다음에, 코드를 복사해 붙여넣어 푸는데요, 틀리면 가끔 실행환경 차이를 고려하지 않고 로컬에 맞춰 코딩을 해서 틀릴때가 있습니다. 그럴 때 예전에는 ideone.com이라는 온라인 컴파일러를 사용해 차이를 알아보거나 했었습니다. 근데 ideone은 컴파일을 할 때, 입력파일을 같이 컴파일 한다는 점이 있는데, 이 입력파일의 크기가 64KB로 제한이 되어있습니다. 입력 데이터 제한이 작은 문제들은 웬만한 TC들을 만들어서 넣어볼 수 있지만, 제한이 조금만 커지면 입력데이터가 64KB를 초과하는 문제들이 간혹 있습니다(사실 자주 보입니다). 이런 문제들의 경우, ideone에서 돌려볼 수 없단 점이 많이 아쉬웠습니다. 또, 제가 붙여넣은/작성한 코드들이 저장되지도 않고, 나갔다 들어오면 다시 초기화 됩니다(물론, 링크를 저장하는 방식으로 코드를 저장할 순 있습니다). 마지막으로, 실행이 즉각적이지 않고, 메모리를 좀 쓴다는 점이 있습니다.

1000번 문제를 풀 때 사용하는 코드를 기준으로 보자면,

#include <stdio.h>
int main() {
    int a, b;
    scanf("%d %d",&a,&b);
    printf("%d\n",a+b);
    return 0;
}

ideone 기준으로는 0s 4452KB, BOJ 기준으로는 0ms 1116KB 가 듭니다.

하지만 실행을 시켜보면 출력이 바로 나오는 로컬과는 달리, 느린 인터넷 속도 때문인지, 컴파일 하는데 걸리는 시간 때문인지는 몰라도, ideone 에서는 조금 있다가(체감상 5~8초) 출력 되는 것을 볼 수 있습니다.

써놓고 보니, ideone을 신나게 까는 글 같지만, 아닙니다.

위의 내용을 정리하자면, 제가 생각했을 때의 ideone의 단점은 :

  1. 입력 파일의 크기가 제한되어있다.
  2. 코드를 저장할 수 없다. (물론, 실행을 하고 인터넷 주소를 복사한다면, 저장의 기능을 대체가능)
  3. 느린 응답성

이라고 봤는데요, 저희 학교 선생님 한분이 저에게 Repl이라는 사이트를 알려주셨습니다.

Repl

이 사이트는 무료로 해줍니다

Repl

위 사이트(온라인 컴파일러)는 위에 있는 ideone.com 의 단점 3가지를 모두 다 보완합니다.

언어도 다양하고, 헤더파일을 만들어 사용할 수 있고, 파일입력, 파일출력 등 로컬에서 가능한 거의 모든 기능들이 여기서도 가능합니다. 또, 저는 Github 를 거의 사용해본 적이 없어서, 입문이 너무 어렵더군요. 그러던 저에게 쉬운 협업툴이 하나 생긴 기분입니다.

  1. ideone 과는 다르게 입력파일의 크기가 크다면, 입력파일(txt)을 만들어 프로젝트에 넣고 실행시키면 가능합니다. 저도 학생들의 성적파일(.xlsx)을 csv파일로 만들어, utf-8로 인코딩 한 후 txt로 변환하여 사용해 보았습니다.(utf-8 인코딩 하는 것을 권장합니다)
  2. 코드는 기본적으로 자동저장(설정으로 변경 가능)되며, 프로젝트를 공유할 수 있습니다.
  3. 실행 속도는 ideone과는 다르게 로컬에서 돌리는 듯 매우 빠른 응답성을 보여줍니다.

심지어 멀티플레이어도 됩니다. 무료버전으로는 최대 3명 까지 협업을 할 수 있으며, 예를 들어서 2명의 코더(A, B)가 코딩을 한다고 치면, A가 수정한 코드가 B의 컴퓨터에서도 즉각적으로 수정이 되고, 실행 내역 역시 같이 공유 됩니다.

한 가지 단점이 있다면, 로그인을 해야하고, 무료와 유료버전의 차이점이 있다는 점? 이지만 무료버전을 막 못쓸 정도는 아니고 그저 준수한 편입니다.

Python 코딩을 할 때에는, 다운로드 해야하는 모듈을 자동으로 다운로드 합니다.

ex : from bs4 import BeautifulSoup

헌데, 파이썬은 기본 메모리가 높아서 그런지는 몰라도 출력을 많이 할 경우 중간에 끊기는 경우가 있긴 합니다.

C 기준으로 Repl의 실행환경은 clang version 7.0.0-3~ubuntu0.18.04.1 입니다

웬만한 언어의 실행은 linux에서 됩니다.

긴 글 읽어주셔서 감사합니다. 정리하자면, 가볍게 코딩 할 때(input 데이터가 작을 때)는 ideone을 사용하면 좋고, 협업툴이 필요하거나, 헤더작성, 파일 입출력, 입력 파일의 크기가 클 경우 Repl 사용을 추천드리면서 이 글을 마무리 합니다.

댓글 댓글 쓰기