목록어노테이션 (3)
개발자는 기록이 답이다

테스트 코드도 코드이기 때문에 중복되는 코드를 리팩토링을 하려고 합니다. 리팩토링하면서 발견한 점과 리마인드해야할 사항에 대해서 정리하고자 합니다 테스트 클래스에 @어노테이션은 1개만 존재할 수 있습니다. 상속을 단순히 재사용하기 위해 사용하면 많은 문제가 발생합니다. 현재 프로젝트에서 SecurityTest랑 MemberRepositoryTest에서 각 단일 테스트 전에 @BeforeEach어노테이션을 사용하여 Member를 데이터베이스에 저장하는 코드가 중복되어 사용되고 있습니다. 이 코드는 유저 중복을 확인하거나 로그인이나 로그인 실패 테스트를 위해서 사용하기 위해 작성되었습니다. 다른 테스트코드에서도 중복되는 부분을 별도의 상위 클래스를 상속 받도록 구현했기 때문에, 이번 상황도 SetupMemb..

프로젝트를 하면서 회원가입 시 요청 값에 대한 검증과 예외 처리를 어떻게 할지 여러 방법을 생각해봤습니다. 요청 값을 검증하는 방법으로 4가지가 있습니다. Argument Resolver 사용 Assert 단언문을 사용한 검증 메소드 Bean Validation 사용 커스텀 어노테이션 사용 회원 가입 로직은 아래와 같습니다. 1. 회원가입 요청 값에 대한 요구사항 이메일 공백이거나 null일 수 없다 이메일 형식이어야 한다 비밀번호 공백이거나 null일 수 없다 영단어 소문자, 숫자 조합으로 각각 1개 이상 포함되어야 한다 범위는 8자~13자 이내여야 한다 생년월일 공백이거나 null일 수 없다 YYYY-MM-DD 형식이어야 한다 이름 공백이거나 null일 수 없다 핸드폰 번호 공백이거나 null일 수..

Reflection을 통한 메타데이터 접근 어노테이션은 아무런 동작을 가지지 않은 설정 정보일 뿐이다. 이 설정 정보를 이용해서 어떻게 처리할 것인지는 애플리케이션의 몫인데, 리플렉션을 이용해서 적용 대상으로부터 어노테이션의 정보를 얻을 수 있다. 런타임 시 동적으로 프로그램(클래스의 정보)을 분석하거나 변경해야 할때 발생한다. 메타데이터에는 소스 코드에 대한 정보나 추가적인 설정 정보가 포함되어 있을 수 있으며, 프로그램이 실행되는 동안 동적으로 이용하고자 할때 리플랙션을 사용한다. 클래스에 적용된 어노테이션 정보를 읽을땐 java.lang.Class를 이용하면 되지만, 필드, 메소드, 생성자와 같은 메타 정보는 java.lang.reflect패키지를 사용해야 한다. 관련 메소드는 여기에서 확인 할 수..