lodash의 shuffle()에 대하여 알아봅니다. 먼저 shuffle()은 아래와 같이 사용합니다.

_.shuffle(Collection);


shuffle()은 Collection 값에 대하여 사용하며 뜻 그대로 값들을 섞어서 반환합니다. 즉 랜덤한 순서대로 값들을 반환할 수 있습니다.


! shuffle() 언제 사용할 수 있을까요?
웹사이트를 테스트 서버에 구축 후 테스트를 수행하기 위해서 사용되는 Dummy 값들에 적용할 수 있을 것입니다. 테스트 데이터에 적용하면 항상 다른 값들을 반환하기 때문에 테스트, QA를 수행하는데 있어 더 많은 case를 수행할 수 있을 것입니다.

테스트 과정은 매우 중요한데 동일한 데이터 순서가 아닌 다양한 경우를 순서로 가지는 경우가 있다면 더욱 좋겠죠. 아래는 예제입니다.



# shuffle() 예제보기
만약 아래와 같이 sites라는 테스트 변수가 있다면? 다음과 같이 shuffle()을 사용할 수 있을 것입니다.
sites = [
  { name: 'web', no: 1, url: 'a' },
  { name: 'is', no: 2, url: 'b' },
  { name: 'free', no: 3, url: 'c' },
  { name: 'wfbest', no: 4, url: 'd' }
];

var result = _.shuffle(sites);

이제 어떻게 바뀌었는지 result 변수를 확인해보면 아래와 같습니다.
{ name: 'wfbest', no: 4, url: 'd' },
{ name: 'is', no: 2, url: 'b' },
{ name: 'web', no: 1, url: 'a' }, 
{ name: 'free', no: 3, url: 'c' }

보시는 것처럼 순서가 바뀌어 나타났습니다. 한번 더 수행하면 또 바뀌어 나타나게 됩니다.
var result = _.shuffle(sites);

아래는 결과입니다.
{ name: 'is', no: 2, url: 'b' },
{ name: 'web', no: 1, url: 'a' },
{ name: 'wfbest', no: 4, url: 'd' },
{ name: 'free', no: 3, url: 'c' }

이처럼 순서가 계속해서 섞이는 것처럼 바뀌어 반환되는 것을 확인하였습니다.