이 문서에서는 새로운 연습 문제를 추가하는 방법을 설명해요.
아직 구현되지 않은 연습 문제가 무엇인지 확인하는 가장 간단한 방법은 트랙의 빌드 페이지(예: https://exercism.org/tracks/csharp/build)로 이동해서 "Practice Exercises" 섹션을 확인하는 거예요.
빌드 페이지의 데이터는 하루에 한 번 갱신돼요.
트랙의 루트 디렉터리에서 bin/add-practice-exercise 스크립트(소스)를 실행하면 새로운 연습 문제의 뼈대를 빠르게 만들 수 있어요:
bin/add-practice-exercise <exercise-slug>
원한다면 연습 문제의 난이도(-d)와 작성자의 GitHub 사용자 이름(-a)도 지정할 수 있어요:
bin/add-practice-exercise -d 3 -a foobar <exercise-slug>
이 파일이 없는 트랙 저장소에서 작업하고 있다면, 위 소스 링크를 이용해 저장소로 복사해도 좋아요.
뼈대 파일이 만들어졌다면, 그다음으로 할 일은 다음과 같아요:
.meta/config.json 파일에서:
authors 키에 연습 문제 작성자들의 GitHub 사용자 이름 추가하기config.json 파일에서:
practices 키에 개념 추가하기(트랙에 개념 문제가 있을 때만 필요해요)prerequisites 키에 개념 추가하기(트랙에 개념 문제가 있을 때만 필요해요)연습 문제를 추가할 때 중요한 부분 중 하나는 테스트를 추가하는 거예요. 연습 문제의 테스트를 추가하는 방법은 크게 두 가지가 있어요:
canonical-data.json 파일에서 테스트 케이스를 가져와 테스트를 처음부터 구현하기https://exercism.org/exercises/<slug>로 이동하면 어떤 트랙이 특정 연습 문제를 구현했는지 한눈에 볼 수 있어요)두 번째 방법은 빠르게 결과를 얻을 수 있어서 특히 매력적일 수 있어요. 다만 여러분의 트랙에 가장 잘 맞도록 구현을 손봐야 한다는 점을 기억해요. 예를 들어 어떤 트랙은 클래스를 사용하지 않고 함수만으로 작업해요. 반대로 여러분의 트랙이 주로 객체를 다룬다면, 트랙에 가장 잘 맞는 방식으로 구현을 바꾸는 게 좋아요.
일부 트랙은 테스트 생성기를 사용해 연습 문제의 테스트 파일을 자동으로 (다시) 생성해요. 트랙 문서를 확인해서 테스트 생성기가 있는지, 있다면 어떻게 사용하는지 살펴봐요.
테스트를 통과하는 코드를 작성할 수 있는지 확인하려면 예제 구현을 추가해야 해요.
코드가 반드시 관용적일 필요는 없어요. 테스트만 통과하면 돼요.
트랙의 루트 디렉터리에서 bin/verify-exercises 스크립트(소스)를 실행하면 예제 구현이 모든 테스트를 통과하는지 확인할 수 있어요:
bin/verify-exercises <exercise-slug>
출력을 보고 예제 구현이 모든 테스트를 통과하는지 확인해요.
이 파일이 없는 트랙 저장소에서 작업하고 있다면, 위 소스 링크를 이용해 저장소로 복사해도 좋아요.
내부적으로 bin/verify-exercises 스크립트는 여러 가지 일을 해요:
스텁 구현 파일은 학생들에게 출발점을 제공해요.
스텁 파일에는 다음과 같은 최소한의 코드만 담는 것을 권장해요:
실제로는 테스트 스위트가 테스트하는 함수/메서드를 정의한다는 뜻이에요. 이 코드를 어떻게 구성할지는 트랙마다 자유지만, 스텁 코드가 처음에는 모든 테스트를 실패하도록 만들어야 해요.
Python:
def two_fer(name):
pass
Kotlin:
fun twofer(name: String): String {
TODO("Implement the function to complete the task")
}
마지막 단계는 린터를 실행해서 트랙의 (설정) 파일이 문법적으로나 의미적으로 올바르게 구성되어 있는지 확인하는 거예요.
먼저 다음을 실행해서 최신 버전의 configlet이 있는지 확인해요:
bin/fetch-configlet
그다음 다음을 실행해서 린터를 실행해요:
bin/configlet lint
출력을 보고 모든 게 잘 되어 있는지 확인해요.
모든 게 잘 되었다면, 트랙 저장소에 풀 리퀘스트를 제출할 수 있어요.
제출하기 전에 기여자 풀 리퀘스트 가이드와 풀 리퀘스트 가이드를 읽어봐요.
PR 설명에 추가하는 연습 문제가 나열되어 있는지 확인해요.