avatar
Steady

[Java] 무작위 닉네임 생성기

Java
Sep 26
·
5 min read

until-1565

어디에 쓰이나?


한 서비스를 개발할 때 여러 플랫폼의 소셜 로그인 기능을 구현하다가 로그인 플랫폼에 상관없이 각 유저별로 서로를 특정할 수 있는 공통의 값이 필요하게 되었고 나는 닉네임을 필수로 입력받아 이 부분을 처리하려고 했다.

하지만 회원을 등록할 때 닉네임을 직접 입력받게 되니 회원가입의 과정이 부자연스러웠고, 닉네임을 입력하지 않고 중간에 이탈할 경우의 데이터 처리가 모호해져 우선 무작위 닉네임을 지정하고 추후 변경하는 프로세스를 생각하게 되었다.

그때 필요했던 기능이 이 무작위 닉네임 생성 기능이었다.

개발 과정


가장 먼저 떠올랐던 예시는 썸네일에 사용한 블리자드의 무작위 작명이었다.

무작위로 주어진 단어들을 조합하여 특정한 닉네임을 만들어내는 단순한 기능이였다.

우선 내가 개발하는 서비스는 반려동물과 관련된 서비스였기 때문에 동물과 관련된 닉네임을 생성하기로 했고 앞쪽에는 형용사를 뒤쪽에는 동물 이름을 사용해 닉네임을 만들어 보았다.

public class NicknameGenerator {

    // 형용사 배열
    private static final String[] adjectives = {
            "귀여운", "발랄한", "사랑스러운", "똑똑한", "활발한", "졸린", "장난꾸러기", "용감한", "상냥한", "행복한",
            "느긋한", "온화한", "믿음직한", "애교 많은", "웃음 가득한", "엉뚱한", "당당한", "재빠른", "고요한", "부드러운"
    };

    // 동물 이름 배열
    private static final String[] animals = {
            "강아지", "고양이", "햄스터", "토끼", "앵무새", "거북이", "고슴도치", "말티즈", "푸들", "치와와",
            "골든리트리버", "페르시안", "스피츠", "요크셔테리어", "러시안블루", "코뉴어", "페럿", "다람쥐", "이구아나", "비글"
    };

    // 랜덤 닉네임 생성 함수
    public String generateNickname() {
        Random random = new Random();

        // 배열의 길이에 맞춰 랜덤으로 배열 값을 조회
        String adjective = adjectives[random.nextInt(adjectives.length)];
        String animal = animals[random.nextInt(animals.length)];
        // 추가적으로 닉네임 중복을 방지하기 위해 1~999까지의 무작위 숫자 조회
        int number = random.nextInt(1000);

        return adjective + animal + number;
    }
}

위 처럼 간단한 무작위 닉네임 생성기를 만들어 보았다.

하지만 이걸로는 유저의 닉네임 중복을 완벽히 막을 수는 없어서 DB를 통해 해당 닉네임이 존재하는 지 확인 후 재생성하는 과정도 포함시켜야 한다.

돌아보며


개발 후 코드를 보면 간단하지만 차근차근 생각해 나가는 과정이 중요한 것 같다.

코드 자동화 기술이 워낙 많이 발전해서 이 정도는 간단하게 작성해주겠지만 백지 상태에서 스스로 생각하면서 만들어봐야 더 기억에 오래 남아 추후에 시간을 절약하게 되는 것 같다.

모든 코드를 백지에서 부터 천천히 만들 순 없겠지만, 미래를 위해 자동으로 작성된 코드라면 천천히 작동 방식을 생각해보며 머릿속에 남기며 공부해 나가보자







여기서는 꾸준해보자