Skip to content

2020.12.08(화) 회의록

Hyeonu Yun edited this page Dec 11, 2020 · 1 revision

2020.12.08 (화) 전체 가계부팀 SMS/MMS 파싱 관련 회의록

1. 사용자화가 가능한 카테고리, 결제수단을 어떻게 매핑해줄 것인지?

  • SMS/MMS에서 온 거래내역은 미분류로 묶는게 현실적

2. SMS/MMS 내 정보를 고려할 때, 모든 팀이 활용할 수 있는 정보

  • 결제수단 : SMS/MMS 내에 기재된 특정 카드사를 활용

    • 대부분 처음에 나오는 것 같다.
    • 특정 단어가 여러 개 나온다면 첫 번째 나온 것을 파싱
      • 예를 들어 롯데카드로 롯데마트에서 결제한 내역일 경우
  • 금액 : 뒤에 이 붙은 가장 처음 나온 단어를 기준으로 파싱

    • 카드사에 동의한 조건에 따라 문자 내역에 누적액 혹은 잔액이 나올 수도 있어서, 가장 처음 나온 단어를 기준으로 파싱하자.
  • 날짜 : mm/dd 형식으로 되어있는 내용을 파싱

    • 아쉽게도 문자 내역 안에 년도는 적혀있지 않으므로, 년도는 거래내역을 작성하는 해당 년도로 임의 지정하자.
  • 시간 : hh:mm 형식으로 되어있는 내용을 파싱

    • 몇몇 카드사는 mm:dd:ss:msms 까지 기재되어 있는데 ss:msms는 임의로 떼어낼 수 있도록 설정하자.
  • 입금/출금 여부 정보 추출

    • 입금이라는 키워드가 내역에 존재하는 경우에만 입금인 것으로 판단. 현재까지 확인된 모든 카드사 결제 내역 메세지에서는 그렇게 되어 있다.
    • 그 이외는 모두 출금으로 처리하자.
  • 취소, 거절 같은 예외 케이스를 분류

    • 취소가 올 경우 입금으로 판별
    • 거절이 올 경우 API 실패로 분류

3. 결제 내역 텍스트 토큰화 정규식

const parseContent = (string) => {
  return string
    .replace(/\[web발신\]/i, '')
    .trim()
    .split(/[\s\n\r]/g);
};
  1. 파라미터에 들어갈 string 예시

    [Web발신]
    KB국민체크
    윤*우님
    06/08 08:57
    28,440원
    11PAY 인증
    승인취소
    
  2. replace(/\[web발신\]/i, '')

    문자 내역에서 [WEB발신], [Web발신]이라는 텍스트를 제거

  3. trim()

    이후 개행을 제거하기 위해 trim() 함수 실행

  4. split(/[\s\n\r]/g)

    문자열에서 정규식 조건에 들어가는 \s, \n, \r이 등장할 때마다 나눈다. 이후 나누어진 토큰들은 배열로 반환

  5. 결과값

    [
      'KB국민체크',
      '윤*우님',
      '06/08',
      '08:57',
      '28,440원',
      '11PAY',
      '인증',
      '승인취소'
    ]
    

4. 카드 문자 샘플

KB 국민카드

[WEB발신]
KB국민카드 김영근님 06/07
09:22 5000원
결제 승인

국민체크

[Web발신]
KB국민체크
윤*우님
06/08 08:57
28,440원
11PAY 인증
승인취소

농협카드

[Web발신]
NH카드7*9*승인
박*용
12,350원 체크
12/06 20:37
세븐일레븐 고대안암고 
잔액222,210원

현대카드

현대 ZERO 승인
2,500원 일시불
04/10 13:15
코레일유통서울지사
누적 560,852원
0.7%할인

롯데카드

롯데1234 승인
5,200원 일시불
09/15 18:31
월드크리닝 롯데마트

신한체크

[Web발신]
[신한체크승인] 최*희(1234) 
02/10 13:10 
(금액)1,000원 PAYCO

우리카드

[Web발신]
우리(1234)승인
임*봉님
4562원 일시불
12/07 20:29
네이버페이
누적123,456원

우리체크

[Web발신]
우리(1234) 체크승인
윤*우님
10,000원
11/03 10:03
스타벅스코리아

5. 입금/출금 문자 예시

신한은행 출금

[Web발신]
[신한은행] 09/26
21:31:30.27
[110-***-123456]
지급 20,000원
(최창희)

농협 입금

[Web발신]
농협 입금 200원
06/11 22:29 123-1234-4567-12
잔액 200000원

농협 출금

농협 출금 5000원
08/31 19:01 123-1234-1234-12
잔액 200000원
Clone this wiki locally