“Hello, World!”를 풀면서 TypeScript 코드를 작성해 보고, Exercism의 진행 방식도 익힐 수 있어요. 이 연습 문제를 완료하면 TypeScript 트랙의 나머지 문제가 잠금 해제돼요.
시작하려면 "Hello, World 소개" 영상을 봐요 👇
고전적인 입문 연습 문제예요. 그냥 "Hello, World!"라고 출력해 봐요.
"Hello, World!"는 새로운 언어나 환경에서 프로그래밍을 시작할 때 작성하는 전통적인 첫 프로그램이에요.
목표는 간단해요:
모든 것이 잘 풀리면, 첫 번째 실제 연습 문제를 받아볼 준비가 된 거예요.
TypeScript 설정 안내를 따라 필요한 의존성을 설치해요:
https://exercism.org/docs/tracks/typescript/installation
연습 문제 의존성을 설치해요:
$ yarn install
다음 명령으로 테스트를 실행해요:
$ yarn test
많은 테스트 스위트에서 첫 번째 테스트를 제외한 나머지 테스트는 건너뛴 상태예요.
테스트 하나를 통과시키면, xit를 it로 바꿔 다음 테스트의 건너뛰기를 해제할 수 있어요.
이 섹션은 이 연습 문제를 푸는 단계별 안내예요.
이 연습 문제에는 두 개의 파일이 있어요:
첫 번째 파일에는 코드를 작성해요. 두 번째 파일에는 테스트가 정의되어 있어요.
테스트는 코드가 올바르게 동작하는지 확인해요. 테스트 스위트를 처음부터 작성할 줄 알아야 하는 것은 아니지만, 테스트가 어떤 모습이고 무엇을 하는지 이해하면 도움이 돼요.
테스트 파일 hello-world.test.ts를 열어 봐요. 그 안에는 테스트가 하나 있어요:
it('says hello world', () => {
expect(hello()).toEqual('Hello, World!')
})
이제 다음 명령으로 명령줄에서 테스트를 실행해 봐요:
$ yarn test
아직 코드를 작성하지 않았으니 테스트가 실패하는 것은 당연해요.
실패 메시지는 다음과 같아요:
× says hello world (5ms)
● Hello World › says hello world
expect(received).toEqual(expected) // deep equality
Expected: "Hello, World!"
Received: "Goodbye, Mars!"
4 |
5 | it('says hello world', () => {
> 6 | expect(hello()).toEqual('Hello, World!')
| ^
7 | })
8 |
9 | })
at Object.it (hello-world.test.ts:6:32)
그리고 다음은 hello-world.test.ts 파일에서 문제가 있을 가능성이 있는 코드 줄이에요:
6번째 줄:
expect(hello()).toEqual('Hello, World!')
^
따라서 문제는 hello() 함수 호출에 있어요.
테스트는 출력으로 'Hello, World!'를 기대하지만, 대신 "Goodbye, Mars!"를 받고 있다는 것을 알 수 있어요.
이제 hello-worlds.ts 파일에서 이 함수를 확인해 봐요:
export function hello(): string {
return 'Goodbye, Mars!'
}
이제 함수가 잘못된 문자열을 반환하고 있고, 그것이 실패의 원인이라는 것을 알 수 있어요. 반환값을 바꿔서 고쳐 봐요:
export function hello(): string {
return 'Hello, World!'
}
다시 테스트를 실행해 봐요:
PASS ./hello-world.test.ts
Hello World
√ says hello world (4ms)
그리고 통과해요!
Exercism에 가입하고 TypeScript 트랙을 연습 문제 108개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.