CS처리에 효율적인 주문번호 만들기 (주문번호 알고리즘)

dochis·2021년 10월 14일
10
post-thumbnail

" 그렇게 말하면 도와줄 수 없어, 무슨말인지 알지?? "
주문번호를 대충 만들면 CS담당자가 고객을 도와줄 수 없어요!

🙋‍♀️ 주문번호? 왜 필요한데?

일반적으로, 주문서별로 고유한 아이디가 필요하다면 DBMS에서 지원하는 Autoincrement 기능을 이용해서 순번을 사용하면 됩니다

주문번호가 필요한 이유는 대체로, 고객문의를 효율적으로 처리하기 위한 목적이 큽니다.

일반적인 고객문의 처리절차?
1. 주문번호를 묻는다
2. 주문서를 조회한다
3. 주문서에 있는 이름, 연락처 등의 정보로 고객 본인인지를 확인한다
3-1. 주문번호가 잘못되었다면 주문번호를 다시 확인하거나 고객의 개인정보를(전화번호 등) 이용해 주문서 조회를 시도한다.
4. 주문서를 찾았다면 주문의 내용을 확인하고 고객의 문의를 대응한다

위처럼, 주문번호를 잘못불러준 경우 처리가 굉장히 어렵고 주문번호를 재확인하는데에 많은 시간이 소요되게 됩니다.

이 경우 주문번호를 사용하는것 보단, 그냥 고객의 개인정보를 사용해 주문을 조회하는것이 더 효과적일 수 있습니다

하지만 고객의 개인정보로는 여러개의 주문 중 어떤 주문에 대한 문의인지를 다시 확인해야 하는 번거로움이 있이 때문에 주문번호를 효율적으로 설계하는것은 매우 중요합니다

주문번호를 효율적으로 설계했을 경우 얻는 이점을 살펴보자면

더 빠른 고객문의 처리 !

  • 주문번호만으로 언제 주문했는지, 어떤 종류의 상품을 주문했는지 파악이 가능하다면 더 빠른 고객문의를 처리할 수 있습니다

고객의 실수를 방지 !

  • 예를 들어 주문번호가 '222 25'번인 상황에서 실수로 2를 한번 덜 말해서 '222 5'라고 말하는 고객의 실수를 상황을 가정해볼 수 있습니다
  • 단순 순번의 경우 응대담당자는 주문번호의 길이가 들쭉날쭉하기 때문에 고객이 한글자를 빼먹었는지 알 방법이 없습니다
  • 이 경우 응대 담당자는 고객의 정보를 확인하고 주문을 2번 조회하는데에 상당한 시간을 낭비할 수 있습니다

🙄 효율적인 주문번호는?

  • 주문에 대한 대략적인 정보를 담고있어야 해 (업무효율성 향상)
  • 길이가 고정되어있어야 해 (고객실수를 방지)
  • 길이가 최대한 짧으면 좋아
  • 물론, 주문별로 고유한 값이어야 해

❌ 필요 없다고 생각되는 부분

쉽게 유추할 수 없어야 하지 않을까?
주문번호를 쉽게 유추하기 어렵게 하기위해 길이가 긴 주문번호를 사용할 필요는 없습니다
주문번호는 주문서를 빠르게 조회하고 업무효율을 향상하기 위한 목적으로만 활용해야 하고, 고객정보 이중 확인을 통해 개인정보를 보호해야 합니다

😏 다른 회사는 어떻게 할까?

  • 야ㅇㅇ Y210420BKC1N
    Y로 시작하는 12글자 길이의 주문번호
  • 쿠ㅇ 4000111111111
    숫자로만 구성 된 13글자의 주문번호
  • 네ㅇㅇ페ㅇ 20210420111111111
    숫자로만 구성 된 17글자의 주문번호
  • Gㅇㅇ 3111111111
    숫자로만 구성 된 10글자의 주문번호

😀 만들어보자

1. 주문번호에 어떤 내용을 담을까?

서비스의 목적과 주된 고객문의 내용에 따라 주문번호에 담는 내용이 달라질 수 있지만 일반적으로 주문날짜를 담고 필요할 경우 주문한 상품의 품목코드, 결제수단코드, 배송지역코드 등의 정보를 담을 수 있습니다

또한 주문번호를 잘못말할 때를 대비해 주문번호의 첫글자와 마지막 숫자를 더한 값을 주문코드 마지막에 추가하는 등의 checksum을 넣기도 합니다

다만, 주문번호의 길이는 가능한 짧은것이 좋기 때문에 최소한의 필요한 정보만을 1글자 정도의 코드내에 표현하는것이 좋습니다

2. 주문번호의 길이?

주문번호에 어떤 정보를 담을지 결정되었다면 주문번호의 길이를 정해야합니다
이는 주문의 빈도가 얼마나 자주, 많이 발생되는지에 따라 결정됩니다

예를들어 숫자로만 이루어진 12글자의 주문번호(YYMMDD + 6글자 랜덤숫자)의 경우 0부터 9까지의 숫자 6개로 경우의 수 약 5천개를 구현 할 수 있으므로, 이 숫자의 약 10%인 하루 500개 내외의 주문이 발생되는 서비스에 적합하다고 볼 수 있습니다

주문이 폭증하는 상황 등을 고려하여 경우의 수가 얼마나 되는지, 또 어느정도의 가용성을 확보할지를 고려할 수 있습니다

3. 예시

no규칙길이경우의 수Note
▼ 숫자로만 구성
1연월일(YYMMDD) + 랜덤숫자 3자리
예 : 201011111
9자리하루당 220개🟢 적당길이
2연월일(YYMMDD) + 랜덤숫자 4자리
예 : 2010111111
10자리하루당 715개🟢 적당길이
3연월일(YYMMDD) + 랜덤숫자 5자리
예 : 20101111111
11자리하루당 2,002개🟢 적당길이
4연월일(YYMMDD) + 랜덤숫자 6자리
예 : 201011111111
12자리하루당 5,005개🟡 적당길이
5연월일(YYMMDD) + 랜덤숫자 7자리
예 : 2010111111111
13자리하루당 10,440개🟠 조금 긴 길이
6연월일(YYMMDD) + 랜덤숫자 8자리
예 : 20101111111111
14자리하루당 24,310개🟠 조금 긴 길이
7연월일(YYMMDD) + 랜덤숫자 9자리
예 : 201011111111111
15자리하루당 48,620개🔴 긴 길이
8연월일(YYMMDD) + 랜덤숫자 10자리
예 : 2010111111111111
16자리하루당 92,378개🔴 긴 길이
9연월일(YYMMDD) + 랜덤숫자 11자리
예 : 20101111111111111
17자리하루당 167,960개🔴 긴 길이
▼ 햇갈릴 수 있는 문자를 제외한 영어+숫자로 구성
10연월일(YYMMDD) + '규칙1'영문자 3자리
예 : 201011A1B
9자리하루당 4,960개🟢 적당길이
11연월일(YYMMDD) + '규칙1'영문자 4자리
예 : 201011A1B2
10자리하루당 40,920개🟢 적당길이
12연월일(YYMMDD) + '규칙1'영문자 5자리
예 : 201011A1B2C
11자리하루당 278,256개🟢 적당길이
13연월일(YYMMDD) + '규칙1'영문자 6자리
예 : 201011A1B2C3
12자리하루당 1,623,160개🟡 적당길이
14연월일(YYMMDD) + '규칙1'영문자 7자리
예 : 201011A1B2C3D
13자리하루당 8,347,680개🔴 긴 길이
15연월일(YYMMDD) + '규칙1'영문자 8자리
예 : 201011A1B2C3D4
14자리하루당 38,608,020개🔴 긴 길이
16연월일(YYMMDD) + '규칙1'영문자 9자리
예 : 201011A1B2C3D4E
15자리하루당 163,011,640개🔴 긴 길이
▼ 영어+숫자로 구성
18연월일(YYMMDD) + 모든 영문자 3자리
예 : 201011A1B
9자리하루당 8,436개🟢 적당길이
18연월일(YYMMDD) + 모든 영문자 4자리
예 : 201011A1B2
10자리하루당 82,251개🟢 적당길이
19연월일(YYMMDD) + 모든 영문자 5자리
예 : 201011A1B2C
11자리하루당 658,008개🟢 적당길이
20연월일(YYMMDD) + 모든 영문자 6자리
예 : 201011A1B2C3
12자리하루당 4,496,388개🟡 적당길이
21연월일(YYMMDD) + 모든 영문자 7자리
예 : 201011A1B2C3D
13자리하루당 26,978,328개🔴 긴 길이
22연월일(YYMMDD) + 모든 영문자 8자리
예 : 201011A1B2C3D4
14자리하루당 145,008,513개🔴 긴 길이
23연월일(YYMMDD) + 모든 영문자 9자리
예 : 201011A1B2C3D4E
15자리하루당 708,930,508개🔴 긴 길이

주) 숫자로만 구성 : 0~9까지의 숫자 10개
주) 햇갈릴 수 있는 문자 제외 : 숫자 0, 알파벳 o, i, j, u, v를 제외한 30개의 문자
주) 영어+숫자로 구성 : 모든 대문자와 모든 숫자 36개의 문자
주) 경우의 수 계산에는 한번 뽑은 문자를 다시 뽑을 수 있음이 고려되었음

👨 마치며

필자의 경우 햇갈릴 수 있는 영문자를 제외한 30개의 문자 조합으로

주문 날짜가 중요한 서비스의 경우
날짜(YYMMDD/6자리)+상품분류코드(1자리)+랜덤문자열 형식의 11~13글자 길이 주문번호를 주로 사용하며,

주문번호와날짜가 중요하지 않은 서비스의 경우
날짜부분의 길이를 축소하여 (YYMM/4자리)+상품분류코드(1자리)+랜덤문자열 형식의 11글자 내외의 길이의 주문번호를 많이 사용합니다

하지만 주문번호는 사용 목적에 따라 다양한 형식이 있을 수 있으니 본 게시물은 참고만해주시길 바랍니다 :-)

0개의 댓글