Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

명세란 무엇인가
소프트웨어 개발 시작 전, 소프트웨어가 충족해야 하는 요구사항을 기술하는 것.
단위 테스트에서 Given / When / Then 에 대해 설명하시오
Given - 테스트에 필요한 여러 객체들을 준비하는 과정. 실제 객체를 만들어 주입하기도 하고, mock 객체를 주입하기도 한다.
When - 테스트를 진행하는 과정.
Then - When에서 진행한 테스트의 결과를 검증하는 과정.
테스트 코드를 작성하는 이유는 무엇인가
소프트웨어를 개발한 뒤에 개발자는 프로그램이 자신이 의도한대로 잘 동작하는지 검증할 필요가 있다.
수동으로 테스트를 할 수도 있겠지만, 컴퓨터마다 환경이 다를 수 있고, 사람마다 다른 테스트를 진행할 수 있다.
따라서 동일한 환경과 정형화되고 검증된 방법으로 테스트를 진행하기 위하여 테스트 코드를 작성한다.
또, TDD를 위하여 작성하기도 한다. 소프트웨어의 요구사항 명세를 테스트 코드를 작성하면서 하는 것이다.
개발자는 테스트 코드만을 보고 소프트웨어의 요구사항을 파악할 수 있고, 개발 후에 작동을 검증할 수도 있다.
@SpringBootTest의 역할은 무엇인가
스프링의 모든 컴포넌트에 대한 Bean을 생성하고, 테스트를 위한 환경(Embedded DB) 등을 구성한다.
@test의 역할은 무엇인가
독립적인 테스트를 수행할 수 있도록 한다.
mokito를 쓰는 이유는 무엇인가
실제 객체와 비슷한 Mock 객체를 쉽게 만들고 관리하는 목적으로 사용한다.
assertAll의 역할은 무엇인가
여러 assert를 한 번에 실행한다.