[과제] 암호화 알고리즘 트러블 슈팅

이진영·2023년 9월 14일
0
post-thumbnail

구현 문제 발생

내가 맡은 미션

  • 유저 정보에 대한 민감한 정보는 암호화를 통해서 구현하는 것

해당 미션이 나에게 주어진 요구사항이었다.

그렇기에 나는 필요한 칼럼만 암호화를 암호화된 데이터를 넣고 이러한 과정은 AOP를 통해서 구현하려고 했다.


그러는 과정에서 AOP 통해서 내가 지정한 한 커스텀 어노테이션 FIELD만 잡히도록 아래와 같이 설정을 해줬다.

// 커스텀 어노테이션 생성
@Target(ElementType.FIELD)
@Documented
@Component
@Retention(RetentionPolicy.RUNTIME)
public @interface Encrypt {
}

// 내가 지정한 포인트 컷
@Pointcut("@annotation(com.example.MyCustomAnnotation)")
public void findMethods() {
}

하지만 이처럼 설정을 해줬지만 전혀 잡히지 못하고 있는 상황이 왔다. 하지만 그건 나에겐 당연한 이유였다.

바로 Spring Container에 등록이 되지 않았기 때문이다.!! 내가 지정한 필드는 바로 DTO에 필드를 선언해 줬고 그에 해당하는 커스텀 어노테이션을 못 잡는 것은 당연한 이유였다.

그렇기에 처음에 요구사항을 잘 살피고 그에 해당하는 솔루션을 잡았다.

바로 특정 메소드로 시작하는 단어가 있다면 암호화를 적용하라는 요구사항 또한 있었기에

포인트 컸을 특정 네이밍 방법을 구현 시에발생하도록 구현했다.

@Pointcut("execution(* com.zerobase.*.service.*.find*(..))")

이렇게 하니 다행히 해당 포인트컷에 들어오게 되었고, 무사히 해당 요구사항을 잘 파헤쳐나갈 수 있었다.

profile
내가 공부한 것들을 적는 공간

0개의 댓글