처음에는 Random한 닉네임을 만들기 위해 사용됐다. 아래가 그 코드이다. 근데 사실 내가 안만들어서 대충 알아두기만 할랬다.
Random random = new Random();
return random.ints('0', 'z' + 1)
.filter(x -> (x <= '9' || x >= 'A') && (x <= 'Z' || x >= 'a'))
.limit(length)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
하지만 여기서 문제는 내가 test 파일에서 multipart file을 mock 객체로 만들 때 발생했다.
추가 파일을 업로드하지 않고 mockMultipartFile을 설정하려니 byte[]에 대한 설정이 필요했고, 무작위로 설정하자니 이상했다.
따라서 Random 값으로 byte[] 값을 generate 시키기로 했다.
위의 예시처럼 하려했더니 return 값이 void라 적용하지 못했다.
byte[]의 경우 random으로 generate하기 위해선 아래와 같이 따로 선언이 된 byte[]를 이후에 설정해주는 방식을 도입해야했다.
final byte[] bytes = new byte[8];
new Random().nextBytes(bytes);
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Random.html