운영자인 @baekjoon이 학생일 때는 매년 연휴와 방학 또는 올림픽/월드컵 때마다 BOJ에 큰 변화가 있었습니다.
가장 대표적으로 2012년 런던 올림픽 때, hustoj의 탈을 벗고 HTML5의 기반으로 사이트를 개편했었습니다.
다가오는 2018년 1~2월 동안에는 사이트에 2가지 큰 변화를 주려고 합니다.
UI 변경 (마이너 업데이트)
속도 개선 (메이저 업데이트)
주로 속도 개선을 위주로 사이트를 개편하려고 합니다.
이 사이트에는 코딩하는 분이 많기 때문에, 어떻게 개선할지 아주 간단한 계획을 한 번 써보려고 합니다. 좋은 의견이 있으면 알려주세요.
지금 방식은 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 로 알려주세요.
다른 경로로도 언급했었지만 현재 사이트에서 쓰고 있는 Noto Sans KR 웹 폰트가 너무 무겁습니다. 페이지 최초 로딩 시를 기준으로 이 폰트는 약 1.96MB의 데이터를 다운로드하며 이는 게시판 페이지에서 다운로드하는 다른 모든 리소스의 용량을 합친 것보다도 많습니다. 이로 인해 페이지 로딩 시간이 크게 지연되며 모바일 3G/LTE 환경의 경우 데이터 낭비 문제도 발생시킵니다.
startlink 4년 전 12
안녕하세요.
운영자인 @baekjoon이 학생일 때는 매년 연휴와 방학 또는 올림픽/월드컵 때마다 BOJ에 큰 변화가 있었습니다.
가장 대표적으로 2012년 런던 올림픽 때, hustoj의 탈을 벗고 HTML5의 기반으로 사이트를 개편했었습니다.
다가오는 2018년 1~2월 동안에는 사이트에 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 로 알려주세요.
감사합니다.