안녕하세요 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의 단점은 :
- 입력 파일의 크기가 제한되어있다.
- 코드를 저장할 수 없다. (물론, 실행을 하고 인터넷 주소를 복사한다면, 저장의 기능을 대체가능)
- 느린 응답성
이라고 봤는데요, 저희 학교 선생님 한분이 저에게 Repl이라는 사이트를 알려주셨습니다.
Repl
이 사이트는 무료로 해줍니다
위 사이트(온라인 컴파일러)는 위에 있는 ideone.com 의 단점 3가지를 모두 다 보완합니다.
언어도 다양하고, 헤더파일을 만들어 사용할 수 있고, 파일입력, 파일출력 등 로컬에서 가능한 거의 모든 기능들이 여기서도 가능합니다. 또, 저는 Github 를 거의 사용해본 적이 없어서, 입문이 너무 어렵더군요. 그러던 저에게 쉬운 협업툴이 하나 생긴 기분입니다.
- ideone 과는 다르게 입력파일의 크기가 크다면, 입력파일(txt)을 만들어 프로젝트에 넣고 실행시키면 가능합니다. 저도 학생들의 성적파일(.xlsx)을 csv파일로 만들어, utf-8로 인코딩 한 후 txt로 변환하여 사용해 보았습니다.(utf-8 인코딩 하는 것을 권장합니다)
- 코드는 기본적으로 자동저장(설정으로 변경 가능)되며, 프로젝트를 공유할 수 있습니다.
- 실행 속도는 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 사용을 추천드리면서 이 글을 마무리 합니다.
댓글 (1개) 댓글 쓰기
bally14 3년 전
우아~좋은 정보 감사합니다^^