<aside>
커플 서비스를 만들다보면 커플 연결을 위해 커플 코드를 발급해줘야한다.
당연히 커플 코드는 유일해야 한다. 그렇다면 커플 코드는 어떻게 만들어주면 될까?
DB 조회를 가장 먼저 떠올리기 쉽다.
</aside>
<aside>
사실 커플 코드는 한번 발급받으면 그 과정이 잦지 않기 때문에 DB 조회로도 충분하다.
하지만 아래의 단점들로 인해 좀 더 개선해보고자 한다.
그럼 유일하게 코드를 생성할 수 있는 방법을 고민해보면 UUID를 가장 먼저 떠올리기 쉽다.
</aside>
<aside>
UUID를 커플코드로 입력하는 것은 사용자들이 익숙하지 않은 경험이다.
예를 들어 우리가 초대를 받아서 초대 코드를 입력하거나, 쿠폰 코드를 입력할때 UUID를 입력한 경우가 있는지 생각해보면 없다
따라서 코드는 영어와 숫자로만 이루어져야 한다.
</aside>
<aside>
고유한 값 하면 시간을 떠올리기 쉽다. 지난 시간은 다시 돌아오지 않기 때문이다.
그렇다면 시간 정보 활용해서 고유한 값을 생성하고 이를 Base32로 인코딩하면 되는 것이다.
시간은 고유하지만 여러 사용자가 동시에 해당 시간에 코드를 발급 받을 수 있다.
이를 막기 위해 synchronized를 활용할 수 있다.
커플 코드는 숫자와 영어로 나타내는데 대분자 영어 26개와 숫자 0~9를 통해 인코딩을 진행하기 위함
</aside>
<aside>
지금부터 커플 코드를 생성하는 과정을 살펴보자
</aside>