startlink   2년 전

안녕하세요.

운영자인 @baekjoon이 학생일 때는 매년 연휴와 방학 또는 올림픽/월드컵 때마다 BOJ에 큰 변화가 있었습니다.

가장 대표적으로 2012년 런던 올림픽 때, hustoj의 탈을 벗고 HTML5의 기반으로 사이트를 개편했었습니다.

다가오는 2018년 1~2월 동안에는 사이트에 2가지 큰 변화를 주려고 합니다.

  1. UI 변경 (마이너 업데이트)
  2. 속도 개선 (메이저 업데이트)

주로 속도 개선을 위주로 사이트를 개편하려고 합니다.

이 사이트에는 코딩하는 분이 많기 때문에, 어떻게 개선할지 아주 간단한 계획을 한 번 써보려고 합니다. 좋은 의견이 있으면 알려주세요.

지금 방식은 aws tokyo에서 c4.large 한 대에 모든 트래픽을 처리하고 있습니다. 사용자가 많은 기간 또는 대회 중에는 c4.xlarge, c4.2xlarge와 같이 수동으로 인스턴스 타입을 변경해서 사용했습니다.

언어는 PHP를 사용하고 있고, 따로 프레임워크는 사용하지 않고 있습니다. 완전히 쌩 PHP는 아니고, 어찌어찌하다보니 직접 만든 프레임워크 같은 것이 생기게 되어서 이를 사용하고 있습니다.

BOJ는 PHP를 벗어나기 위해, 또는 유명한 프레임워크를 사용하기 위해서 엄청난 노력을 했었습니다. 대표적으로 2015년에는 2달동안 node.js를 이용해서 BOJ를 90%정도 만든 일이 있었습니다. 거의 모든 부분을 코딩한 @baekjoon에 의하면 그 10% 때문에 결국 node로 옮겨가지 못했다고 합니다. (정확한 이유는 너무 오래전이라 기억이 나질 않습니다) 2014년에는 Django로의 변화도 도전했었고, CodeIgniter와 같은 도전도 했었습니다.

이제 가야할 때 입니다.

먼저, AWS의 Lambda와 API Gateway를 기반으로 사이트를 개편해보려고 합니다. 서버리스라고 하는 방식인 것 같은데, 1월부터 BOJ에 적합한 방법인지 아닌지를 확인해보고 맞다면 적용해보겠습니다.

만약, 위의 방식이 불가능한 방식 또는 더욱 비효율적인 방식이라면, 그동안 미뤄왔던 Auto Scaling + Load Balancing을 도입하겠습니다.

최대한 빨리 사이트를 개선해보겠습니다.

의견 또는 이렇게 된 김에 추가되었으면 하는 기능이 있으면 댓글 또는 acmicpc@startlink.io 로 알려주세요.

감사합니다.

startlink   2년 전

추가로 채점에도 Auto Scaling을 도입해보려고 합니다. 현재는 Load Balancing만 구현되어 있는 상태로, 유저가 많이 몰리는 시간대에는 채점이 매우 밀리는 현상이 발생합니다.

물론, 유저가 없는 시간대에도 놀고 있는 채점 서버가 있지만, 이건 큰 문제는 아니죠.

startlink   2년 전

참고로 개발을 담당할 @baekjoon이 강의를 시작한 이후로 거의 웹관련 코딩을 하지 않았습니다.

강의를 하는 동안 만든 기능이 겨우 "강의", "코인", "채점 현황 실시간 업데이트" 밖에 없는 것 같네요 ㅠㅠ

godmoon00   2년 전

사랑합니다

sgchoi5   2년 전

책을 기다리는 입장에서.. 책이 더 늦어지겠군요.. : (

사이트 개편 잘 되길~~

onjo0127   2년 전

그룹 내 알림 기능 만들어주세요!

jwvg0425   2년 전

1. 그룹 내 연습에서도 우승자/준우승자가 보였으면 좋겠어요

2. 문제에 해당 문제를 푼 사용자들이 직접 분류 태그를 붙일 수 있는 기능(스팀처럼)

3. haskell 언어지원이.. 추가됐으면 하는.. ㅠㅜ

startlink   2년 전

Haskell은 불가능합니다.

jwvg0425   2년 전

헉 ㅠㅠ 기술적인 문제인가용.. 아쉽네요

doju   2년 전

다른 경로로도 언급했었지만 현재 사이트에서 쓰고 있는 Noto Sans KR 웹 폰트가 너무 무겁습니다. 페이지 최초 로딩 시를 기준으로 이 폰트는 약 1.96MB의 데이터를 다운로드하며 이는 게시판 페이지에서 다운로드하는 다른 모든 리소스의 용량을 합친 것보다도 많습니다. 이로 인해 페이지 로딩 시간이 크게 지연되며 모바일 3G/LTE 환경의 경우 데이터 낭비 문제도 발생시킵니다.

사이트 성능 개선을 위해 반드시 해결해야 할 이슈라고 생각합니다.

startlink   2년 전

속도 개선을 다른 방법으로 해냈기 때문에, 이 계획은 잠정 보류합니다.

댓글을 작성하려면 로그인해야 합니다.