[프로젝트] 계좌번호 수정 시 불필요한 문자 추가 문제

silver's avatar
Dec 09, 2024
[프로젝트] 계좌번호 수정 시 불필요한 문자 추가 문제

문제 상황

계좌정보 수정 시 계좌번호 뒤에 쉼표(`,,,`)가 추가되는 현상 발생

원인 분석

정확한 원인은 특정하지 못했으나, 추정 원인:
  • 프론트엔드에서 데이터 전송 시 포맷팅 문제
  • 또는 DTO 바인딩 과정에서 예상치 못한 문자 추가

해결 방법

Service 레이어에서 정규식으로 문자 제거
@Service @RequiredArgsConstructor public class UserService { @Transactional public void 계좌정보수정(UpdateDTO updateDTO) { // 영문자와 숫자를 제외한 모든 문자 제거 String cleanAccount = updateDTO.getAccount() .replaceAll("[^a-zA-Z0-9]", "") .trim(); updateDTO.setAccount(cleanAccount); // 업데이트 로직 userRepository.updateAccount(updateDTO); } }
 
💡
정규식
.replaceAll("[^a-zA-Z0-9]", "") - [^a-zA-Z0-9]: 영문자와 숫자가 **아닌** 모든 문자 - "": 빈 문자열로 치환 (제거) - .trim(): 앞뒤 공백 제거
 
근본 원인 파악 후 프론트엔드에서 처리하는 것이 이상적이라고 하는데 이번 오류에서는 프론트엔드에서 해결이 되지 않았다.
// 프론트엔드에서 계좌번호 입력 시 정규식 적용 const accountInput = document.getElementById('account'); accountInput.addEventListener('input', (e) => { e.target.value = e.target.value.replace(/[^0-9]/g, ''); });
Share article

silver