1717
1818import java .time .LocalDateTime ;
1919import java .util .Optional ;
20+ import java .util .Set ;
2021
2122@ Slf4j
2223@ Service
2324@ RequiredArgsConstructor
2425public class UserAuthService {
2526
27+ static Set <String > param1 = Set .of ("두둑한" , "날씬한" , "만취한" , "알딸딸한" , "얼큰한" , "시트러스한" , "도수높은" , "톡쏘는" , "거품가득한" , "하이볼한" ,
28+ "앙증맞은" , "쓸쓸한" , "거만한" , "산만한" , "귀찮은" , "삐딱한" , "맛이간" , "저세상급" , "시궁창스러운" , "기묘한" ,
29+ "졸린" , "센치한" , "철학적인" , "무중력의" , "뽀송한" , "전투적인" , "배부른" , "대충한" , "쩌는" , "철지난" ,
30+ "절규하는" , "맞춤형" , "다급한" , "찌뿌둥한" , "구수한" , "문어발적인" , "자포자기한" , "터무니없는" , "귀여운척하는" ,
31+ "심드렁한" , "무심한" , "번쩍이는" , "붉그레한" , "밤새는" , "좌절한" , "의기양양한" , "비굴한" , "터프한" , "흘러내린" ,
32+ "공허한" , "허무한" , "헛기침하는" , "뿜어대는" , "질척한" , "기어다니는" , "헤매는" , "삐죽한" , "악에받친" , "격렬한" ,
33+ "삐까번쩍한" , "오지랖넓은" , "쪼르르거리는" , "꿀꺽거리는" , "머쓱한" , "휘청대는" , "추접스러운" , "천방지축인" , "어리둥절한" , "질주하는" ,
34+ "겸연쩍은" , "뿌연" , "썩은" , "짠내나는" , "철썩같은" , "흥건한" , "안간힘쓰는" , "뜨끈한" , "꾸덕한" , "동공지진난" ,
35+ "덕지덕지한" , "비밀스러운" , "개운한" , "심란한" , "음울한" , "터질듯한" , "달달한" , "사악한" , "기괴한" , "용맹한" ,
36+ "껄끄러운" , "헐떡이는" , "허둥대는" , "분란스러운" , "애매한" , "찐득한" , "허기진" , "쩔어버린" , "몽롱한" , "허세떠는" ,
37+ "황당한" , "거대하고작은" , "대차게구린" , "어이없는" , "두통약" , "지갑" , "이쑤시개" , "돌침대" , "고무장갑" , "손수건" ,
38+ "바람개비" , "지하철표" , "송진가루" , "철가방" , "머리끈" , "양말한짝" , "라이터" , "숟가락" , "스티커" , "드럼통" ,
39+ "열쇠꾸러미" , "벼락" , "대걸레" , "파리채" , "앙금빵" , "선풍기날개" , "스티로폼" , "건전지" , "껌종이" , "소화전" ,
40+ "비닐우산" , "고드름" , "전등갓" , "양초" , "지우개가루" , "국자" , "밥솥" , "연필심" , "비둘기깃털" , "찜질팩" ,
41+ "청테이프" , "김밥말이" , "곰팡이" , "청소기" , "밤송이" , "옥수수수염" , "철창살" , "휴지심" , "선반" , "곽티슈" ,
42+ "스프링노트" , "고향집된장" , "머드팩" , "장독대" , "뒤꿈치각질" , "어묵꼬치" , "환풍기" , "군고구마" , "카세트테이프" ,
43+ "빨래건조대" , "박카스병" , "우체통" , "주차권" , "털실뭉치" , "지하수" , "깃털베개" , "추리닝" , "이불각" , "육포" ,
44+ "빨대" , "지렁이분양소" , "김칫국" , "오징어채" , "전기장판" , "꽃병" , "도시락통" , "구급상자" , "양배추잎" , "고무줄" ,
45+ "망치" , "유통기한" , "알람시계" , "방범창" , "신발깔창" );
46+
47+ static Set <String > param2 = Set .of ("도토리딱개구리" , "아프리카들개" , "강남성인군자" , "술고래" , "알코올러버" , "겨자잎" , "청개구리" , "산수유" ,
48+ "맥주문어" , "칵테일앵무새" , "보드카수달" , "진토닉거북이" , "테킬라코요테" , "럼펭귄" , "사케고양이" , "막걸리두꺼비" ,
49+ "하이볼판다" , "모히토돌고래" , "피냐콜라다곰" , "샴페인펭귄" , "홍초원숭이" , "네그로니청년" , "IPA성기사" ,
50+ "블러디메리여사" , "위스키호랑이" , "쌍화차토끼" , "유자도롱뇽" , "복분자여우" , "국화주해적단" , "소맥언덕" ,
51+ "전통주공룡" , "파전악어" , "오징어숙취단" , "민트라쿤" , "땅콩버터공작새" , "은행나무너구리" , "고량주펭귄" ,
52+ "비빔밥바다표범" , "돼지껍데기참새" , "소주잔기린" , "대왕쥐포코끼리" , "군만두얼룩말" , "마라탕너구리" ,
53+ "삼겹살청년" , "곱창수달" , "치킨도사" , "라면위즈" , "내복토끼" , "냉면불사조" , "젤리곰해파리" , "아이스링곰" ,
54+ "젓가락토네이도" , "기름떡볶이수달" , "고구마바람개비" , "파인애플악마" , "번데기기사단" , "곰탕판다" ,
55+ "마늘빵펠리컨" , "옥수수수염신" , "뿌링클드래곤" , "껌딱지원숭이" , "곤드레라쿤" , "스티커헤라클레스" ,
56+ "삼색볼펜치타" , "오렌지문어국수" , "간장게장거북" , "카스테라바퀴" , "초코송이타조" , "건빵악어" ,
57+ "너구리비상대책본부" , "대하구이천사" , "골뱅이버팔로" , "라떼마라톤선수" , "딸기생크림코알라" ,
58+ "찹쌀떡고래" , "꿀꿀선비" , "번개치킨집사" , "고칼슘청새치" , "가그린도마뱀" , "소화제악마" , "민트초코귀신" ,
59+ "통닭의무대장" , "반건조오징어군단" , "참깨부엉이" , "바나나해커" , "복숭아도둑너구리" , "나쵸껍데기" ,
60+ "돌솥비버" , "전자레인지곰" , "냄비펭귄" , "주전자사냥개" , "콘치즈히드라" , "우유팩할배" , "막걸리도롱뇽" ,
61+ "짬뽕기린" , "김치만두여신" , "오이나무늘보" , "버터쿠키살쾡이" , "동치미해골" , "청양고추돌고래" ,
62+ "다슬기시민" , "와사비드래곤" , "분식집카멜레온" , "곰젤리술사" , "귤껍질기사" , "멸치왕국" , "생맥바이킹" ,
63+ "병따개도마뱀" , "굴튀김달팽이" , "카레호랑이" , "파슬리늑대" , "오코노미야끼판다" , "꽈배기늑대" ,
64+ "밀크티돌고래" , "고기국수캥거루" , "초코파이여단" , "해장국곰" , "쓰레기통요정" , "달고나도깨비" ,
65+ "삼다수거북" , "헛개차도마뱀" , "카누호수악마" , "치킨발바닥" , "뱀술수호자" , "파전너구리" , "콩나물카멜레온" ,
66+ "대패삼겹돌고래" , "굴비강아지" , "막창펭귄" , "감자튀김친구" , "어묵사자" , "부추말벌" , "탕수육햄스터" ,
67+ "매운탕비둘기" , "마라전골토끼" , "돼지껍데기개구리" , "술국호랑이" , "두부오리" , "깍두기코끼리" ,
68+ "라볶이사슴" , "양파링문어" , "피자청개구리" , "고등어펭귄" , "국밥파충류" , "닭털마을" , "바나나우럭" ,
69+ "김말이치타" , "젓가락말미잘" , "물회거북이" , "한치하이에나" , "청하상어" , "참치꽁치" , "해장라면매머드" ,
70+ "양꼬치토끼" , "소떡소떡나방" , "달걀말이원숭이" , "김밥펭귄" , "참외멍게" , "고추전갈" , "치즈덮밥여우" ,
71+ "닭껍질곰" , "깻잎무당벌레" , "갈비찜도마뱀" , "미역국돌고래" , "쌈채소사자" , "두루치기청새치" , "계란후라이늑대" ,
72+ "김치찌개토끼" , "칼국수라쿤" , "찌개나방" , "해물탕코뿔소" , "쌀국수표범" , "떡꼬치상어" , "날치알까마귀" ,
73+ "라멘수달" , "나베공룡" , "다시마돌고래" , "곱창수사슴" , "콜라북극곰" , "된장찌개강아지" , "젤리호랑이" ,
74+ "칵테일참새" , "버블티치킨" , "오렌지맥주드래곤" , "구운치즈기린" , "마늘빵거북이" , "양고기판다" ,
75+ "초코우유너구리" , "요플레거미" , "옥수수탕기린" , "피자토스트족제비" , "떡갈비수달" , "케이크맘모스" ,
76+ "스시참새" , "광어버터캣" , "황태국라쿤" , "가래떡펭귄" );
77+
2678 private final JwtUtil jwtUtil ;
2779 private final UserRepository userRepository ;
2880 private final RefreshTokenService refreshTokenService ;
@@ -37,7 +89,7 @@ public User joinSocial(String oauthId, String email, String nickname){
3789 });
3890
3991 // 고유한 닉네임 생성
40- String uniqueNickname = generateUniqueNickname (nickname );
92+ String uniqueNickname = generateNickname (nickname );
4193
4294 User user = User .builder ()
4395 .email (email )
@@ -67,22 +119,15 @@ public RsData<User> findOrCreateOAuthUser(String oauthId, String email, String n
67119 }
68120 }
69121
70- public String generateUniqueNickname (String baseNickname ) {
71- // null이거나 빈 문자열인 경우 기본값 설정
72- if (baseNickname == null || baseNickname .trim ().isEmpty ()) {
73- baseNickname = "User" ;
74- }
75-
76- String nickname = baseNickname ;
77- int counter = 1 ;
122+ public String generateNickname (String baseNickname ) {
123+ // param1과 param2에서 무작위 단어 선택
124+ String [] param1Array = param1 .toArray (new String [0 ]);
125+ String [] param2Array = param2 .toArray (new String [0 ]);
78126
79- // 중복 체크 및 고유한 닉네임 생성
80- while (userRepository .findByNickname (nickname ).isPresent ()) {
81- nickname = baseNickname + counter ;
82- counter ++;
83- }
127+ String adjective = param1Array [(int ) (Math .random () * param1Array .length )];
128+ String noun = param2Array [(int ) (Math .random () * param2Array .length )];
84129
85- return nickname ;
130+ return adjective + " " + noun ;
86131 }
87132
88133 // 리프레시 토큰 관련
0 commit comments