2022.12.13.TUE

ronglong·2022년 12월 13일
0

코드스테이츠 Day39

  1. 오전 데일리 코딩
    DFS(깊이 우선 탐색) 문제였는데, 결과값을 담을 빈 리스트 선언과 슈도 코드까지 작성했으나, 슈도 코드를 실제 코드로 구현하는데 실패하여 레퍼런스를 봤다.
    나는 정말 재귀함수만 나오면 맥을 못 추는군..? 언젠가 극복하길,, ⭐️😥
public class Solution { 
  public ArrayList<String> dfs(tree node) {
    //노드의 값이 저장된 배열을 리턴 
    ArrayList <String> result = new ArrayList<>();

    //노드에 children이 있으면 children node로 이동
    //children 없으면 값을 반환 ? 
    result.add(node.getValue());

    if(node.getChildrenNode() != null){
      for(int i=0; i < node.getChildrenNode().size(); i++){
        ArrayList <String> curList = dfs(node.getChildrenNode().get(i));
        result.addAll(curList);
      }
    }
    return result;
  }
  1. AOP (Aspect Oriented Programming)
  • Aspect를 bean으로 등록하거나 import하여 사용
  • AspectJ : 컴파일러.
    A.java를 A.class로 컴파일하는 동안에 AOP를 추가하여 컴파일 함으로써 위빙.
    또는, 클래스 로더로써 메모리에 올라가는 시점에 AOP적용.
  • Advice 함수에 매개변수로 들어가는 Joinpoint 인스턴스 = 프록시 객체.
  • 어떤 클래스(빈)가 AOP 대상이면 원본 클래스 대신 프록시(원본+Aspect)가 자동으로 만들어져 빈에 등록됨.
  • JDK 동적 프록시, CGLib 프록시 관련 블로그
    https://mangkyu.tistory.com/175
  • Spring AOP 와 AspectJ 비교 블로그
    https://logical-code.tistory.com/118
  • 포인트 컷(적용 대상 경로)에 따라 Aspect가 적용이 안 되면 Proxy 객체도 만들어지지 않음.
  • Advice는 순서 없음!

<느낀 점>
정리된 블로그도 찾아보고, 인프런 무료 강의도 듣고 나니까 조금 더 실습 내용이 이해가 되었다. 그리고 마지막에 줌 세션으로 좀 더 이해할 수 있었다.
하지만 여전히 뚜렷하지는 않은 것 같다.
내일이면 섹션2 끝인데, 이게 맞는 건지...

AOP에 대해 정리한 블로그는 DI에 비해 괜찮게 잘 정리한 사이트를 찾기가 어려웠다. 위의 2개 블로그를 읽고 많은 도움을 얻었다. 👍

0개의 댓글