목록Spring/이것저것 (3)
Hansel

REGEX 정규표현식이란? 제시된 문자열을 바탕으로 정해진 패턴과 일치하는지 검사하는 문자열 처리 방법입니다. 저는 회원가입 기능에 이메일 입력 검증을 위한 정규표현식을 사용했지만 제가 사용한 정규표현식을 명확히 설명하지 못했습니다. 명확히 알고 사용하고자 해당 글을 작성합니다. 이걸 어떻게 해석하지? 저는 (알파벳+숫자 조합의 문자열)@(알파벳).(알파벳) 형식의 이메일만 통과되도록 하기 위해 정규표현식을 사용했습니다. 아래는 제가 사용한 정규표현식입니다. "( [!#-'*+/-9=?A-Z^-~-]" + "+(\.[!#-'*+/-9=?A-Z^-~-]+)" + "*|\"\(\[\]!#-[^-~ \t]|(\\[\t -~]))+\")" + "@([!#-'*+/-9=?A-Z^-~-]" + "+(\.[!#-'*..

@Async 비동기 문제 1. 임시 비밀번호를 비동기로 전송하도록 설정했지만 계속 동기로 전송되었다. 2. 임시 비밀번호 전송을 비동기로 처리했지만, 예외가 발생했을 경우 동일 스레드에서 잡아 처리하지 못한다. 사진과 같이 catch를 통한 예외처리가 되지 않고 메세지 전송 실패 체크 예외가 터진다. 지금은 이메일 전송하는 로직이 임시 비밀번호 밖에 없지만 다수의 비동기 전송 메서드가 존재할 경우 어떤 메서드에서 예외가 났는지, 어떤 메일에 보내려다 실패했는지 정확히 파악하기가 어렵다. 해결 1번 문제의 경우 스프링 AOP와 관련이 있었습니다. 우선 @Async를 통한 비동기 처리를 하기 위해서는 두가지 조건을 만족해야 합니다. 1. 접근 제한자가 public 이어야 한다. 2. 동일 클래스 내에서 호출..

인프런에서 스프링 MVC 강의를 보는데 JPA를 추가해서 하면 더 재밌겠다는 생각이 들었다. 그래서 무작정 JPA를 적용해서 진행하는데 생각보다 까다로운 문제들이 생긴다. 셀렉트 박스 처리하기 이 사진에서 처럼 서울,부산,제주 등의 셀렉트 박스를 처리해야 한다. 지역을 객체로 생성하고 지역과 상품의 연관관계를 생각해봤다. 하나의 지역에서 다양한 상품이 판매될 수 있고 하나의 상품이 다양한 지역에서 판매될 수 있으니 이 둘의 관계는 (N:M)이 된다. 따라서 중간에 다대다를 해소해주는 테이블이 필요하다. 아이템 엔티티는 이렇게 뽑았다. 중간 테이블인 ItemByRegion과 관계를 잡고 엔티티 내에서 데이터를 변경할 수 있도록 메서드를 작성했다. ItemUpdate는 객체의 기본 필드들의 데이터 변경감지를..