[업무기록 > 작업] 회원가입 입력 항목 추가

oneiron·2021년 10월 27일
0

work

목록 보기
1/4

개요

  • 내용 : 회원가입 입력 항목에 8항목을 추가하는 작업입니다.(이름, 생년월일, 대표자명, 사업자명, 사업자번호, 은행명, 계좌번호, 예금주)
  • 기술 : Front(jquery, php), Back(php, mysql)
  • 기간 : 1주일
  • 인원 : 1명

문제점

Front

  1. 입력 여부 및 validation 검증 로직 필요
    1.1 생년월일 입력 값이 오늘 일자 값 보다 큰지 검증
    1.2 XSS(Cross-Site Scripting) 대응
  2. 사업자 번호 중복 값 검증 API 요청
  3. 계좌번호 유효성 검증 API 요청

Back

  1. 입력 여부 및 validation 검증 로직 필요
  2. 사업자 번호 중복 값 검증 API 응답
  3. 계좌번호 유효성 검증 API 응답
  4. 새로운 data table 생성하여 관리 필요 (5개 항목)
  5. 계좌번호 암호화 필요

해결점

Front

1. 입력 여부 및 validation 검증 로직 필요

기존에 jquery로 작성된 회원가입에 jquery validation plugin을 사용 중이여서, 해당 plugin의 rules, message option을 이용하여 입력 여부 및 validation 검증 처리를 하였습니다.

1.1 생년월일 입력 값이 오늘 일자 값 보다 큰지 검증

기존에 jquery로 작성된 datepicker의 enddate option을 이용하여 검증 처리하였습니다.

1.2 XSS(Cross-Site Scripting) 대응

새로이 추가되는 8개 항목은 모두 한글 혹은 숫자의 값만 받아야 하므로, script injection을 할 수 없게 영어 입력 검증을 validation에 추가하여 XSS 대응을 하였습니다.

2. 사업자 번호 중복 값 검증 API 요청

기존에 juqery로 작성된 validation plugin의 remote option을 이용해 ajax로 사업자번호 값을 back에게 검증 요청을 보내고 return 값으로 중복 검증을 처리하였습니다.

3. 계좌번호 유효성 검증 API 요청

위와 동일

Back

1. 입력 여부 및 validation 검증 로직 필요

front에서 받은 필수 값 들을 empty 함수를 이용하여 입력 여부를 확인 후, 각 입력 값의 validation을 정규식 검증 로직을 추가하였습니다. 해당 검증에서 false return 시에는 400 error를 return 하도록 예외처리 하였습니다.

2. 사업자 번호 중복 값 검증 API 응답

front에서 받은 필수 값 들을 empty 함수를 이용하여 입력 여부를 확인 후, 사업자 번호를 관리하는 테이블에서 입력 받은 사업자 번호를 where절로 검색하는 query를 실행하여 query의 return값이 있으면 front에 return false, query의 return값이 없으면 front에 return true를 하도록 작업하였습니다.

3. 계좌번호 유효성 검증 API 응답

기존에 사용하고 있는 nicepay의 함수를 이용하여 은행명, 계좌번호의 값을 통해 유효성 검증 및 예금주 정보를 가져와 front에 return 하도록 처리하였습니다.

4. 새로운 data table 생성하여 관리 필요 (5개 항목)

이름, 생년월일, 대표자명, 사업자명, 사업자번호 data는 정책 문제로 새로운 data table에 생성하였습니다. table의 상세 내용을 적을 순 없지만, 특징으로는 사업자번호를 unique key로 관리하여 DB에서 중복 검증을 하였습니다.

5. 계좌번호 암호화 필요

은행 정보는 기존에도 관리를 하고 있었으며, 회원가입에 추가되는 사항으로 기존 함수와 암호화 및 복호화 로직을 이용하여 DB에 암호화된 계좌번호를 저장하였습니다. 저장 시 특이사항은 salt key를 aws dynamoDB에서 관리하고 있습니다.


배운점

  • 암호화 salte key 같은 경우는 RDS의 관계형이 필요는 없지만, data 저장을 필요로 하니 noSql이 적절한 것을 알게 되었고, service의 암호화 salt key를 aws dynamoDB로 사용 하고 있는 것을 배웠습니다.
  • DB에 저장하는 data가 중복 불가의 값이면, unique key로 관리하면 정확하다는 것을 배웠습니다.
profile
I know that I know nothing

0개의 댓글

관련 채용 정보