@VisibleForTesting public static User createForTest(Long id, String name) { return User.builder() .id(id) .name(name) .build(); } 동료 분께서 작성하신 코드를 보던 중, 처음 본 어노테이션인 [ @VisibleForTesting ]을 발견하게 되었습니다. 해당 어노테이션은 무엇인지, 어떻게하다 사용하게 되었는지 여쭤보았는데 단순 테스트 코드에서 User 엔티티 값을 만들기 위한, 테스트 메서드라고 이야기를 듣게 되었습니다.
추가로 해당 어노테이션이 무엇인지 찾아보니, Google에서 만든 Guava 라이브러리의 어노테이션이였고, 오로지 테스트를 위해 만들어진 코드에 해당 어노테이션을 달아 줌으로써, 운영 코드에는 사용하면 안된다고 명시적으로 알려주는 역할을 담당합니다. 실제 운영 코드가 달려진 필드나, 메서드를 참조하게 되면 Remove this usage of "@@", it is...