package itn.com.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 개인정보 처리 이력 로그 기록을 위한 메서드 어노테이션. * *
개인정보 조회, 수정, 삭제, 다운로드 등이 발생하는 컨트롤러 메서드에 선언한다. * AOP가 메서드 실행 후 이 어노테이션의 설정값과 요청 정보를 읽어 * 개인정보 처리 이력 로그를 저장한다.
* *
* {@code
* @PersonalLog(
* action = "삭제",
* description = "기업회원 상세정보",
* target = "#{object}.{method}" or "#{object}
* search = "#{object}.{method}" or "#{object}
* )
* }
*
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PersonalLog {
/**
* 개인정보 처리 행위.
*
* 예: 조회, 수정, 삭제, 다운로드
* * @return 개인정보 처리 행위명 */ String action(); /** * 개인정보를 처리한 화면 또는 업무의 설명. * *예: 회원 상세정보, 기업회원 목록, 회원 엑셀 다운로드
* * @return 처리 화면·업무 설명 */ String description(); /** * 개인정보 처리 대상. * *단건 처리 시 대상 회원 ID 등을 기록한다. * SpEL 표현식을 사용할 수 있으며, 메서드 첫 번째 인자의 회원 ID는 * {@code "#{object}.{method}"}처럼 지정한다.
* * @return 처리 대상 정보, 미지정 시 빈 문자열 */ String target() default ""; /** * 목록 조회 또는 다운로드 시 사용한 검색 조건. * *검색어, 기간, 조회 건수 등 대상 정보를 보완하기 위한 용도다.
* * @return 검색 조건 정보, 미지정 시 빈 문자열 */ String search() default ""; }