추가 도구 구현하기


첫 20개 이상의 연습 문제와 테스트 러너로 트랙을 출시한 다음에는 추가 트랙 도구를 구현하는 데 초점을 옮겨야 해요.

트랙 도구에는 두 가지 종류가 있어요:

  • 프로덕션: 해당 언어의 학습 경험에 핵심적인 기능을 제공해요
  • 유지보수: 트랙 유지보수를 도와줘요

프로덕션 도구

프로덕션을 위한 도구는 (현재) 세 가지예요:

  • 테스트 러너: 학습자의 코드에 대해 연습 문제의 테스트를 실행해요. (필수)
  • 리프레젠터: 풀이의 정규화된 표현을 만들어요 (선택)
  • 애널라이저: 학습자의 제출물을 자동으로 평가하고 멘토 스타일의 해설을 제공해요. (선택)

유지보수 도구

트랙 유지보수를 돕기 위해 다음과 같은 도구를 만들 수도 있어요:

  • 테스트 제너레이터: 연습 문제의 테스트와 학습자 코드 인터페이스를 자동으로 생성하거나 업데이트해요. (선택)

어떤 도구를 구현할까요?

프로덕션 도구가 유지보수 도구보다 더 중요해요. 이 시점에는 테스트 러너를 이미 구현했어야 해요(아직이라면 테스트 러너 만들기 문서를 확인해 봐요).

테스트 러너를 만들었다면, 다음으로 작업할 도구는 리프레젠터예요. 리프레젠터와 애널라이저는 목표가 일부 겹치지만, 다음과 같은 이유로 리프레젠터를 먼저 만들기를 권장해요:

  • 리프레젠터는 보통 구현하기가 (훨씬) 쉬워요
  • 리프레젠터는 멘토에게 힘을 실어 줌으로써 애널라이저보다 멘토링 부담에 훨씬 큰 영향을 줄 수 있어요
  • 리프레젠터는 모든 연습 문제에 적용되는 반면, 애널라이저는 보통 특정 연습 문제나 그 일부만 대상으로 해요

리프레젠터 만들기를 시작하려면 처음부터 리프레젠터 만들기 문서를 확인해 봐요.

그다음, 리프레젠터를 구현하고 나면 마지막으로 만들 도구는 애널라이저예요. 애널라이저 만들기를 시작하려면 처음부터 애널라이저 만들기 문서를 확인해 봐요.

이 시점에서는 아마 다시 연습 문제를 더 추가하는 쪽으로 초점을 옮겨야 할 거예요. 새 연습 문제를 더 빠르게 추가하려면 테스트 제너레이터를 만드는 것도 고려해 봐요.

구현

트랙 도구는 보통 (대부분) 트랙의 언어로 작성해요.

Caution

다른 언어를 사용해도 되지만, 언어가 하나 늘어날 때마다 트랙을 유지보수하거나 기여하기가 더 어려워져요. 그래서 가능하면 트랙의 언어를 사용하기를 권장해요. 그래야 유지보수하거나 기여하기가 더 쉬워지기 때문이에요.

배포

프로덕션 도구는 Docker 컨테이너로 패키징되어 실행돼요. 도구의 Docker 이미지는 GitHub Actions 워크플로를 사용해 자동으로 배포돼요.

유지보수 도구는 배포하지 않아요.