초기 연습 문제 추가하기


hello-world 연습 문제를 구현했다면, 다음으로 할 일은 다른 연습 문제 20개 이상을 구현하는 거예요.

연습 문제 유형

구현할 수 있는 연습 문제에는 두 가지 유형이 있어요.

  • 개념 연습 문제: 학생에게 하나 이상의 개념을 가르치기 위해 만들어졌어요. 자세한 내용은 문서를 확인해요.
  • 실습 문제: 배운 개념을 연습하기 위해 만들어졌어요. 자세한 내용은 문서를 확인해요.

일반적으로 새 트랙은 실습 문제부터 구현하는 걸 권장해요. 구현하기도 더 쉽고 처음부터 고민할 것도 적기 때문이에요. 개념 연습 문제는 트랙이 제대로 돌아가기 시작한 뒤에 언제든 추가할 수 있어요.

연습 문제 고르기

트랙에서 실습 문제를 구현할 수 있도록 exercism/problem-specifications 저장소를 만들었어요. 이 저장소에는 100개가 넘는 실습 문제의 메타데이터가 들어 있어서, 각 트랙은 이를 바탕으로 자기 트랙에 맞는 버전의 연습 문제를 구현할 수 있어요. 그래서 여러 트랙에서 같은 연습 문제가 구현되어 있는 걸 볼 수 있어요.

그러면 이 100개가 넘는 연습 문제 목록에서 20개 이상을 어떻게 고를까요? 몇 가지 지침을 알려드릴게요.

학생들이 다양한 개념을 연습할 수 있는 연습 문제 고르기

100개가 넘는 연습 문제에는 아주 다양한 개념이 쓰여요. 학생들이 다양한 개념을 연습할 수 있는 연습 문제를 구현하는 게 좋아요. 문자열만 다루는 연습 문제를 20개 구현하기보다는, 서로 다른 개념을 다루는 연습 문제를 구현해 봐요.

몇 가지 개념과 예시 연습 문제를 살펴봐요.

개념 연습 문제
비트 조작 allergies, secret-handshake
불리언 leap
클래스 circular-buffer, robot-name
동시성 bank-account
조건문 raindrops
날짜와 시간 gigasecond, meetup
동등성 clock
실수 darts, space-age
지연 평가 alphametics, zebra-puzzle
배열 resistor-color, spiral-matrix
루프 collatz-conjecture, protein-translation
딕셔너리 nucleotide-count
숫자 leap, grains
무작위성 dnd-character, robot-name
문자열 bob, isogram,
트리 binary-search-tree, pov

난이도가 다양한 연습 문제 고르기

어떤 연습 문제는 다른 것보다 구현하기 더 어려워요. 쉬운 것, 중간 정도인 것, 어려운 것을 고루 섞어서 다양한 난이도의 연습 문제를 구현해 봐요.

연습 문제의 난이도는 관련된 개념이나 트랙의 언어 등 여러 요인에 따라 달라져요. 이미 그 연습 문제를 구현한 다른 트랙에서 어떻게 되어 있는지 확인해 보면, 구현이 어떤 모습일지 감을 잡는 데 도움이 돼요.

몇 가지 난이도와 연습 문제를 살펴봐요.

내 트랙에 맞는 연습 문제 고르기

모든 연습 문제가 여러분의 트랙에 맞는 건 아니에요. 트랙에 맞는 연습 문제만 골라야 해요. 말이 안 되는 연습 문제를 구현하느니 아예 구현하지 않는 게 나아요. 예를 들어, lens-person 연습 문제는 학생이 렌즈 를 다루는데, 많은 언어가 이를 지원하지 않아요.

트랙에 맞지 않는 연습 문제를 발견했다면, 그 슬러그를 트랙 config.json 파일의 exercises.foregone 배열에 추가하면 돼요. 그러면 도구가 해당 연습 문제를 무시해요.

예시 커리큘럼

좀 더 구체적으로 알아보기 위해, 첫 연습 문제를 이렇게 골라볼 수 있어요.

연습 문제 난이도 개념
hello-world 쉬움 없음 (첫 연습 문제)
leap 쉬움 숫자, 불리언
gigasecond 쉬움 날짜와 시간
isogram 쉬움 문자열
resistor-color 쉬움 배열
nucleotide-count 쉬움 딕셔너리
collatz-conjecture 쉬움 루프
darts 쉬움 실수
two-fer 쉬움 문자열 서식, 선택적 인자
high-scores 쉬움 컬렉션 처리
raindrops 중급 조건문
bob 중급 문자열
allergies 중급 비트 조작
series 중급 예외
circular-buffer 중급 클래스
meetup 중급 날짜와 시간
yacht 중급 배열
dominoes 어려움 튜플, 지연 평가
diamond 어려움 문자열 서식
alphametics 어려움 지연 평가
forth 어려움 파싱

연습 문제 구현하기

트랙에 포함할 연습 문제를 골랐다면, 다음 단계는 그 연습 문제를 구현하는 거예요. 실습 문제 추가 문서에 실습 문제를 추가하는 방법이 자세히 나와 있어요.