최근 맡게 된 업무에서 신규 회원의 권한을 수정해달라는 요청이 있었다. 이전에는 회원 가입을 하는 동시에 권한이 Y로 설정이 되었는데, 이 값의 default를 N으로 설정해 달라는 것이었다.
서비스 회원 가입 방식
이 서비스는 B2B 서비스이고, 개인이 직접 회원 가입을 하는 방식으로 운영되는 것이 아니라, 회사의 사업부에서 회원 등록을 일괄적으로 진행해 주고, 서비스 이용 금액을 지불하면 업체 사용자들에게 이용 권한을 부여하는 식으로 시스템이 구성되어 있다.
사업부에서 회원 정보가 담긴 엑셀 파일을 업로드 하면, 매일 아침 회원 가입 배치가 실행된다. 그리고 백엔드에서는 각각의 회원이 잘 등록되었는지 로그에 기록하고, 회원 등록에 실패했다면 그 원인을 로그에 기록하고 있다.
회원 가입 API
사용자 등록을 할때 회원 가입 API를 실행하는데, 이때 필수 정보는 서비스 코드, 업체 코드, 사용자 아이디, 사용자 이름, 비밀번호이다. 그리고 삭제 여부(del_yn), 아이디 사용 여부(use_yn) 등의 선택 정보를 등록할 수 있다.
아이디 사용 여부를 지정하면 그 값으로 저장하고, 따로 설정하지 않으면 회원 가입 API에서 이 값을 Y로 설정한다.
2. 업무 진행
API 테스트
먼저 개발계에서 사용자 등록 API를 실행하면서, use_yn의 값을 수동으로 넣었을 때 정상적으로 동작하는지 확인했다. 정상적으로 동작하고, SUCESS를 리턴하고 있었다.
또한 위에서 날린 API의 데이터가 DB에서 정상적으로 조회되는지 확인해 보았고, 정상적으로 조회되고 있는 것을 확인했다.
배치 파일 수정
신규 회원 등록 배치 파일을 실행하는 Launcher 소스를 살펴보았고, 사용자를 등록할 때 필수 정보만을 맵에 담아 파라미터로 넘겨주고 있음을 발견했다. 아래의 예시에서 각각의 value 값들은 FTP서버에 올라온 엑셀 파일을 FileInputStream을 읽어온 값들이다.
신규 회원에게 서비스 사용 권한을 부여하지 않도록 회원 가입 배치 파일을 수정했고, 이 코드가 의도했던대로 동작하는 것을 확인했다. 다음은 사용 권한이 없는 사용자가 로그인을 했을 때 서비스 사용을 실제로 잘 막는지 확인해야 한다.
일단 회원이 로그인을 하면 이 회원의 정보를 조회하여 use_yn의 값을 확인하고, 그 값이 Y이면 true를 리턴하여 사용자가 이용하고자 하는 페이지로 접근할 수 있도록 했다. 그리고 이용 권한이 N이면 false를 리턴하여 이용 권한이 없다는 안내 문구를 띄우는 화면단으로 리다이렉트를 하도록 처리했다.
업무 배경
이 업무가 할당된 이유
회사에서 맡고 있는 서비스 중, 회원이 구매를 신청하면 정부24에서 그 컨텐츠를 구매하여 제공을 하는 서비스가 있다. (참고로, 구매를 한다고 바로 완료되는게 아니라 구매 로직을 태운 후 실제로 컨텐츠를 가져오기까지 어느정도 시간이 소요된다....