- Advent of Code는 다양한 수준의 프로그래머를 위한 프로그래밍 퍼즐 어드벤트 캘린더로, 어떤 언어로든 풀이 가능함
- 참가자는 면접 준비, 기업 교육, 대학 과제, 연습 문제, 속도 경쟁 등 다양한 목적으로 활용 가능
- 컴퓨터 과학 전공이 없어도 참여할 수 있으며, 10년 된 컴퓨터에서도 15초 이내 실행 가능한 문제로 구성됨
- 사이트는 OAuth 인증, 하이 콘트라스트 모드, 개인 리더보드, 코드 블록 선택 기능 등을 지원함
- 전 세계 리더보드는 스트레스와 부정행위 문제로 폐지되었으며, 참가자 중심의 즐거운 문제 풀이 경험이 강조됨
Advent of Code 개요
- Advent of Code는 Eric Wastl이 만든 연례 프로그래밍 퍼즐 이벤트로, 매년 12월 1일부터 시작되는 온라인 어드벤트 캘린더 형식의 퍼즐 제공
- 참가자는 매일 새로운 문제를 풀며, 언어 제약 없이 자유롭게 풀이 가능
- 문제는 면접 대비, 교육, 연습, 경쟁, 상호 도전 등 다양한 용도로 활용됨
- 참여에 컴퓨터 과학 전공 지식은 필요하지 않으며, 기본적인 프로그래밍과 문제 해결 능력만으로 충분함
- 모든 문제는 10년 된 하드웨어에서도 15초 이내 실행 완료 가능
참여 및 지원 방법
- Advent of Code를 지원하려면 Bluesky, Twitter, Mastodon 등에서 공유하거나 AoC++ 을 통해 직접 후원 가능
- 문제 풀이 중 막히면 예제 입력 확인, 테스트 케이스 작성, 친구에게 도움 요청, subreddit에서 힌트 요청 등의 방법 권장
일반 팁 (General Tips)
- 예제 입력과 출력이 일치하지 않으면 문제 설명을 다시 읽고 코드 동작을 점검해야 함
- 예제 통과 후에도 정답이 틀리면 수동 검증 가능한 테스트 케이스를 만들어 확인
- 여전히 해결이 어렵다면 잠시 쉬었다가 다시 시도하거나 커뮤니티에 질문 가능
자주 묻는 질문 (FAQ)
- 코드 블록 선택: JavaScript가 활성화된 상태에서 트리플 클릭으로 전체 선택 가능
-
인증 방식: OAuth를 사용해 Reddit, GitHub 등 외부 서비스로 로그인하며, 자격 증명은 해당 서비스에만 전달됨
- Advent of Code는 사용자 ID, 이름, URL, 이미지만 저장
- 난이도 변화: 이벤트 기간 동안 점진적으로 어려워지며, 개인의 기술 수준에 따라 체감 난이도가 달라짐
-
퍼즐 공개 시각: 미국 동부 표준시(UTC-5) 자정에 공개되며, 이는 운영자가 관리 가능한 시간대이기 때문
- 경쟁을 원할 경우 개인 리더보드를 통해 지역별로 경쟁 가능
- 가독성 문제: 하이 콘트라스트 모드 지원, Firefox에서 기본 활성화 가능
- 퍼즐 제안 금지: 저작권 문제로 인해 외부에서 퍼즐 아이디어를 받지 않음
-
버그 신고: 퍼즐 공개 후 1시간 이상 지나면 이미 많은 사용자가 해결했으므로, 버그 가능성은 낮음
- 문제 발생 시 subreddit에서 먼저 확인 권장
- 속도 경쟁 여부: 빠른 풀이를 원한다면 추가적인 연습과 기술이 필요하지만, 자신의 목표에 맞는 방식으로 참여하는 것이 중요
- 이벤트 일수 변경: 10년간 일정 유지 후, 운영자의 시간 부담 완화를 위해 중순 종료로 변경
-
글로벌 리더보드 폐지: 과도한 경쟁과 DDoS 공격, 사용자 스트레스 등의 문제로 10년 후 폐지
- 대신 읽기 전용 개인 리더보드 공유 기능 제공
-
AI 사용: 퍼즐은 인간의 사고력 향상을 목표로 하므로 AI 사용은 권장되지 않음
- “대신 운동을 시켜도 본인이 강해지지 않는다”는 비유로 설명
-
콘텐츠 복제 금지: Advent of Code는 무료로 사용할 수 있지만, 퍼즐 텍스트나 입력 데이터 복제 금지
- 웹사이트 디자인이나 이름을 모방하는 행위도 금지
크레딧 (Credits)
- 퍼즐, 코드, 디자인: Eric Wastl
- 베타 테스트: Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
- 커뮤니티 매니저: Danielle Lucek, Aneurysm9
- 참여자: 모든 사용자
법적 고지 (Legal)
- Advent of Code는 미국 등록 상표이며, 디자인·언어·스타일·콘셉트는 모두 독점적 자산
- 명시적 서면 동의 없이 복제나 사용 불가
- 퍼즐에 대한 링크나 인용은 자유롭게 가능하며, 상업적 맥락에서도 허용
- Advent of Code는 참가자의 풀이 코드에 대한 저작권을 주장하지 않음