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