PHP와 C로는 이미 한계가 보이기 시작해서, 채점은 C++로, 사이트의 내부는 Python과 node.js로 대체했습니다.
문제를 푸는데는 사실 지금도 큰 상관은 없지만, 제가 생각하는 현재의 문제점은
사이트 가입하고 바로 이메일 인증을 보내면 되는데, 왜 굳이 따로 페이지를 가서 눌러야 할까
회원 가입할 때 있는 학교와 학교 이메일 인증의 학교는 무슨 차이일까
한 번에 하나만 채점하기 때문에, 어떤 사람이 시간이 오래 걸리는 솔루션을 제출하면 채점을 너무 오래 기다려야 한다
사이트 이용 문턱이 너무 높다. (도움말이 없음..., 튜토리얼도 없음)
팀은 버그 투성이
문제집은 너무 느리다
문제를 찾기 너무 어렵다
위키는 죽었다
문제를 번역해도 반영이 너무 오래 걸린다
이해할 수 없는 런타임 에러 (예: C++에서 sync_with_stdio, 얼마 전에 글에도 올라온 Ocaml)
대충 이런 문제가 있다고 생각합니다.
그래서 온라인 저지를 node.js로 다시 작성하고 있습니다. 서버비도 너무 많이 나와서 아마존으로 옮기려고 하고 있고요.
처음 코딩을 잘못 시작해서... 무언갈 추가하려면 소스파일 한 최대 30개는 고쳐야 하는 상황이고요, git을 쓰고 있긴 한데, 지금 상태에서는 개발 서버를 구축하는게 너무 까다로워서... 라이브 코딩을 하고 있습니다. (가끔 로딩이 안되고 흰 화면이 뜨면, 제가 라이브 코딩을 하다가 에러가 난 상태...)
node.js로 작성을 하면 저에게 있어서 가장 좋은 점은 개발 속도입니다. 언어를 4개를 쓰다보니... 뭐 하나 DB 구조를 바꾸면 각각 언어에 대해서 바꿔야 합니다! 새로운 프로그래밍 언어를 추가하기도 편하고, 새로운 기능을 만드는데도 얼마 걸리지 않습니다. 그리고, 사이트에 실시간을 추가할 수 있습니다. 예를 들면, 페이스북처럼 알림같은 기능이요. 그리고 서버비용도 많이 줄어들 것으로 생각됩니다.
사용자에게 좋은 점은 가장 먼저 사용자 편의성이 되겠지요. 뭔가 말로 표현할 수는 없지만, 많이 편해질 것으로 예상됩니다. 그리고 프로그래밍 언어도 지금의 50개에서 약 100개정도를 지원할 수 있습니다. 이 100개는 실제로 100개가 아니고, 컴파일러를 선택할 수 있게 해서 100개입니다. 또, 지금은 리눅스에서만 채점을 하기 때문에, Visual Studio C++을 지원하지 않지만, 아마도 Windows에서 채점도 가능하게 됩니다. OS X에서 Swift로도 채점을 할 수 있게 되고요. 물론, 두 OS 모두 이론상으로는 가능합니다. Windows는 쉽게 지원할 수 있지만, OS X는 조금 어렵겠네요...
baekjoon 8년 전 14
안녕하세요.
온라인 저지가 생긴지도 5년이 되었네요.
그동안 PHP로 열심히 저지를 관리했는데... 더 이상 관리를 못하겠어서 ㅠㅠ 온라인 저지를 새로 짜고 있습니다.
PHP로 저지 운영한다고 하면, 주로 받는 질문 중에 하나가 무슨 프레임워크를 사용하냐고 물어보는데, 그런거 없습니다! 순수 PHP입니다.
물론 순수 PHP이긴 하지만, 직접 프레임워크 같은걸 만들어서 관리를 하고 있네요.
2010년에 오픈 소스 프로젝트 https://github.com/zhblue/hustoj 를 이용해서 저지를 관리하기 시작했고, 2012년 쯤에는 웹은 100% PHP로 다시 작성했고, 채점은 수정해서 쓰고 있었습니다. (hustoj 라이센스가 GPL인데, 원저자에게 https://www.acmicpc.net/license 에서 언급하는 것으로 코드 공개를 대체한다고 허락을 받아서 코드 공개는 하지 않았습니다)
PHP와 C로는 이미 한계가 보이기 시작해서, 채점은 C++로, 사이트의 내부는 Python과 node.js로 대체했습니다.
문제를 푸는데는 사실 지금도 큰 상관은 없지만, 제가 생각하는 현재의 문제점은
대충 이런 문제가 있다고 생각합니다.
그래서 온라인 저지를 node.js로 다시 작성하고 있습니다. 서버비도 너무 많이 나와서 아마존으로 옮기려고 하고 있고요.
처음 코딩을 잘못 시작해서... 무언갈 추가하려면 소스파일 한 최대 30개는 고쳐야 하는 상황이고요, git을 쓰고 있긴 한데, 지금 상태에서는 개발 서버를 구축하는게 너무 까다로워서... 라이브 코딩을 하고 있습니다. (가끔 로딩이 안되고 흰 화면이 뜨면, 제가 라이브 코딩을 하다가 에러가 난 상태...)
node.js로 작성을 하면 저에게 있어서 가장 좋은 점은 개발 속도입니다. 언어를 4개를 쓰다보니... 뭐 하나 DB 구조를 바꾸면 각각 언어에 대해서 바꿔야 합니다! 새로운 프로그래밍 언어를 추가하기도 편하고, 새로운 기능을 만드는데도 얼마 걸리지 않습니다. 그리고, 사이트에 실시간을 추가할 수 있습니다. 예를 들면, 페이스북처럼 알림같은 기능이요. 그리고 서버비용도 많이 줄어들 것으로 생각됩니다.
사용자에게 좋은 점은 가장 먼저 사용자 편의성이 되겠지요. 뭔가 말로 표현할 수는 없지만, 많이 편해질 것으로 예상됩니다. 그리고 프로그래밍 언어도 지금의 50개에서 약 100개정도를 지원할 수 있습니다. 이 100개는 실제로 100개가 아니고, 컴파일러를 선택할 수 있게 해서 100개입니다. 또, 지금은 리눅스에서만 채점을 하기 때문에, Visual Studio C++을 지원하지 않지만, 아마도 Windows에서 채점도 가능하게 됩니다. OS X에서 Swift로도 채점을 할 수 있게 되고요. 물론, 두 OS 모두 이론상으로는 가능합니다. Windows는 쉽게 지원할 수 있지만, OS X는 조금 어렵겠네요...
아직 확정은 아닌데 아마 다음과 같이 바뀔 것으로 예상됩니다.
혹시 바라는 점이 있으면 댓글로 자유롭게 적어주세요.
감사합니다.