BOJ (백준 온라인 저지)
개요
BOJ는 Baekjoon Online Judge의 약자로, 2010년부터 운영되고 있는 대한민국 최대 규모의 온라인 알고리즘 문제 풀이 및 자동 채점 플랫폼이다. 사용자가 제출한 소스 코드를 서버에서 자동으로 컴파일·실행하여 미리 준비된 테스트 케이스로 정답 여부를 판정하는 '저지(Judge)' 시스템을 제공한다. 현재 3만 개 이상의 문제와 수십만 명의 가입자를 보유한 국내 알고리즘 학습의 사실상 표준(de facto) 인프라로 자리 잡았다.
주요 내용
역사와 운영
BOJ는 2010년 3월 개발자이자 알고리즘 강사인 '백준(baekjoon)' 최백준이 개인 프로젝트로 시작했다. 초창기에는 소규모 문제 세트와 단순한 채점 기능만 제공했으나, 이후 사용자 제안과 기여를 기반으로 기능이 빠르게 확장되었다. 현재는 운영 재단 및 자원봉사자, 그리고 사용자들이 직접 출제한 문제들이 누적되며 방대한 문제 은행을 형성하고 있다. 사이트는 크게 문제(Problems), 제출(Submissions), 순위(Ranking), 그룹(Group), 대회(Contest) 기능으로 구성된다.
문제 유형과 난이도
BOJ의 문제는 수학, 구현, 자료 구조, 그래프 이론, 동적 계획법(DP), 그리디, 정렬, 문자열, 기하학, 정수론 등 컴퓨터 과학의 전 분야를 아우른다. 각 문제에는 난이도 등급이 부여되는데, 이를 직관적으로 표현한 것이 이른바 'solved.ac 티어' 시스템이다. 브론즈(Bronze), 실버(Silver), 골드(Gold), 플래티넘(Platinum), 다이아몬드(Diamond), 루비(Ruby) 6단계를 각각 5개 세부 등급으로 나눠 총 30단계로 표시한다. 이 티어는 사용자의 문제 해결 능력을 가늠하는 지표로 널리 활용된다.
채점 시스템과 언어
BOJ는 C, C++, Java, Python, Kotlin, Go, Rust, JavaScript, C# 등 수십 종의 프로그래밍 언어를 지원하며, 제출 코드는 샌드박스 환경에서 실행된다. 채점 결과는 '맞았습니다(AC)', '틀렸습니다(WA)', '시간 초과(TLE)', '메모리 초과(MLE)', '런타임 에러(RE)', '컴파일 에러(CE)' 등으로 구분되어 사용자에게 피드백을 준다. 문제마다 시간 제한과 메모리 제한이 명시되어 있어, 단순 정답 여부뿐 아니라 효율성까지 평가한다.
학습 생태계
BOJ는 단순한 채점기를 넘어 학습 공동체로 기능한다. '단계별로 풀어보기', '알고리즘 분류', '문제집', '랜덤 디펜스', 'solved.ac 클래스' 등 체계적인 학습 경로를 제공하며, 사용자가 직접 만든 '스터디 그룹'과 '대회'가 활발히 운영된다. 또한 solved.ac, BOJ 확장 프로그램, 백준 허브(GitHub 연동) 등 서드파티 도구가 생태계를 확장했다.
국내외 위상
국내 대학의 알고리즘 수업, 기업 코딩 테스트 대비, 정보올림피아드(KOI/IOI) 및 ICPC(국제 대학생 프로그래밍 대회) 준비의 핵심 플랫폼으로 쓰인다. Codeforces, AtCoder 등 해외 저지와 병행 사용되며, 한국어 지원과 국내 문제 특화로 국내 사용자 비중이 압도적으로 높다.
최신 동향
2024~2025년 기준 BOJ는 생성형 AI 시대에 대응한 변화를 겪고 있다. ChatGPT·Claude 등 LLM이 알고리즘 문제를 상당 수준으로 해결하면서, 단순 문제 풀이 능력의 변별력이 약화되고 있다는 논의가 활발하다. 이에 따라 대회와 기업 코딩 테스트에서는 단순 구현보다 문제 해석력, 최적화, 협업 능력을 중시하는 방향으로 출제 경향이 이동하고 있다. BOJ 측은 대회 공정성 확보를 위한 부정행위 감지와 제출 기록 검증을 강화하는 추세다. 또한 Rust, Kotlin 등 최신 언어 지원 확대, solved.ac 통계·배지 기능 고도화, 대규모 사용자 트래픽을 견디기 위한 서버 인프라 개선이 지속되고 있다. 최근에는 초·중학생 대상 알고리즘 교육 열풍과 함께 소프트웨어 영재 교육기관, 방과후 코딩 교실에서도 BOJ가 교재로 활발히 활용되며 저연령 사용자층이 빠르게 늘고 있다.
관련 주제
- [[solved.ac]]
- [[알고리즘]]
- [[코딩 테스트]]
- [[ICPC]]
- [[정보올림피아드]]
- [[동적 계획법]]
- [[자료 구조]]
- [[Codeforces]]