solved.ac 화이트리스트 관련 입장 (5/8)

안녕하세요, solved.ac 운영자 박수현입니다. 여기는 운영 블로그는 아니고 개인 블로그입니다만 솔브드에는 글을 적기 마땅한 곳이 없어 여기에 적기로 했습니다.

solved.ac는 작년 7월에 클로즈 베타를 시작해 지금 시점으로 10개월째 가동되고 있습니다. 화이트리스트제 클로즈 베타의 형태로 사이트를 운영한 이유들은 아래와 같습니다.

  1. 사이트 초기에는 난이도가 붙어 있었던 문제들이 너무 적었고(서강대에서의 기여~2,000건), 제대로 된 난이도 기준이 없었기에 많은 사람들이 합리적이라고 생각할 수 있는 난이도 기준의 방향을 만들어가기 위해
  2. 스타트링크는 BOJ 스크레이핑을 공식적으로 허용하지 않고 있기 때문에, 사이트의 존재를 유지하기 위해 스크레이핑하는 유저의 수를 줄일 필요가 있어서

하지만 많은 사람들이 이 사이트를 통해 문제풀이에 재미를 붙이면 좋겠다고 생각했었고 그런 생각에서 난이도 조회만은 화이트리스트에 없더라도 누구나 할 수 있게 열어두었습니다.

이후 BOJ와의 통합이 결정됨에 따라 (2)의 영향이 줄어들어 화이트리스트를 천천히 늘려나갔습니다. 현재는 15,342명의 사용자가 화이트리스트에 등록되어 있습니다. 베타를 막 시작했을 8월의 3,517명과 비교하면 5배 가량 늘어난 것입니다.

그러나 개인 화이트리스트의 부작용이 있어 개인 화이트리스트 신청을 3월부터 중단하게 되었습니다. 아래와 같은 일들 때문입니다.

  • 개인 화이트리스트의 티어 조건을 맞추기 위해 다른 사람의 소스 코드를 베껴 제출하는 일이 빈번하게 일어났습니다. solved.ac와 BOJ 모두 이런 행위를 허용하고 있지 않으며, solved.ac는 이런 사례가 발견되는 대로 해당 유저를 화이트리스트에서 삭제했습니다.
  • 개인 화이트리스트 스크레이핑의 부담이 커졌습니다. solved.ac의 현재 사이트 구조는 단체 화이트리스트 스크레이핑이 훨씬 효율적으로 동작하도록 되어 있습니다.

악의적인 사용자들의 소스 복사/붙여넣기 행위에 대한 신고가 늘어서, 제가 개인 화이트리스트 제도를 만들지 않았다면 처리하지 않았어도 될 요청들을 처리하게 되어 저뿐만 아니라 스타트링크가 다른 기능들을 개발할 시간을 뺏기게 되었습니다. 통합 작업이나 새로운 기능을 개발하는 데 시간을 쏟는 편이 통합을 기다리는 사용자들에게 훨씬 이득이 될 것이라는 판단 하에 개인 화이트리스트를 더 이상 받지 않겠다는 결정을 했습니다.

이후 일부 BOJ 이용자 분들께 여러 비난과 질책(대체로 공정하지 않다는 의견들인 것 같습니다)을 받았고, 고심 끝에 남겨두었던 단체 화이트리스트도 오는 5월 16일을 마지막으로 더 받지 않으려 합니다. 다만 BOJ와 통합이 완료되면 화이트리스트와 상관없이 누구나 사이트를 이용할 수 있게 될 예정이므로 조금만 더 기다려 주시기를 부탁드립니다.

감사합니다.


추가로 아래는 사이트에 관해 자주 해 주시는 질문들과 그에 대한 제 답변입니다.

통합되면 어떤 점이 좋은가요? – 통합되면 베타가 끝납니다. 화이트리스트가 없어지고 누구나 로그인을 할 수 있게 됩니다. 지금은 유저와 단체마다 일정 갱신 주기가 있지만 통합 이후에는 문제를 푸는 즉시 경험치가 반영되도록 할 계획입니다.

연봉 얼만가요? / 얼마 받고 일하나요? – solved.ac는 전적으로 제 개인 프로젝트이며 기부금 이외에 뭔가를 받고 있는 것은 없습니다. 다만 운영 비용은 스타트링크에서 지원받고 있습니다.

API를 제공할 예정이 있나요? – 예정은 있습니다만 우선순위는 높지 않습니다. 주된 이유는 documentation을 작성할 시간이 부족하기 때문입니다. solved.ac의 컨텐츠를 이용해 뭔가를 만들고 싶으시다면 solved.ac 사이트 자체를 크롤링하는 것보다는 플러그인 소스 코드 역공학을 통해 undocumented API 엔드포인트를 알아내 활용해 주시기 바랍니다.

소스 코드 카피로 화이트리스트 신청이 반려 / 화이트리스트에서 삭제되었습니다. 통합 후 사이트를 정상적으로 이용할 수 있나요? – 로그인은 가능해지지만, solved.ac 운영 규칙에 따라 통합 후에도 65,535일간 경험치가 0으로 고정됩니다.