• 2019.11.03 ~ 2019.11.09

이번 주 해야 할 일

  • 우아한테크코스에서 배웠던 것들 정리
  • 운동 3일 이상 하기

그냥 한 일

  • 우아한테크코스 미션 복습 스터디에 들어갔다.

나에게 칭찬 해주고 싶은 것

  • 마음을 다잡고 조금 더 나에게 맞는 계획을 세우려고 노력했다.
  • 운동을 꾸준히 하기 위해 헬스 인증방을 만들었다.
  • 실패에 대한 생각을 바꾸게 되었다.

아쉬운 점

  • 하기 싫다는 생각부터 하고 계획을 실행하지 않을 때가 있다.
  • 개발에 대한 열정과 내가 했던 것들에 대한 정리가 부족하다.
  • 무엇을 할 때 항상 왜 하는지를 생각해보자.

일일 활동

2019-11-O5 화요일

포비 강의 - AOP

  • AOP와 OOP
    • AOP는 인프라 로직 중복 제거
    • OOP는 비즈니스 로직 중복 제거
  • 인프라 로직을 구현할 때 많은 중복이 생긴다.
  • 중복이 많다는 것은 수정할 떄 같은 일을 수 없이 반복해야 한다.
  • Concerns == Aspect
    • 인프라 성격의 로직
  • Servlet Filter, interceptor 는 AOP 중 하나다.
  • 기존의 코드를 수정하지 않고 기능을 추가할 수 있다.
  • 스프링이 추구하는 것은 자바 진영에 많은 오픈소스들을 스프링이 직접 한 단계 더 추상화하여 제공하는 것이 목표 중 하나다. 즉 스프링은 핵심 엔진이 된다. 그리고 필요한 것은 다른 곳에서 편하게 당겨쓸 수 있도록 해준다. - 서비스 추상화
    • 스프링은 상당히 많은 API 제공한다.
  • AOP와 OOP의 다른점?, 어디에 사용해 봤는지? 기본적인 용어 설명?(면접 질문에 나올 수 있음)
  • 쓰레드 로컬, request 객체에 넣을 수 있다.
  • AsspectJ는 컴파일 시간이 예전에는 느렸지만 지금은 괜찮은 편, 하지만 프록시를 만들 때 반드시 인터페이스를 만들어야한다.
  • Cglib는 클래스에 대한 프록시가 가능하다. 런타임 시간에 프록시 적용
  • Aspect가 많아지면 성능이 떨어진다.
  • 스프링에서 커스텀 애스팩트를 하기 위해서 빈 등록은 필수다.
    • @Component 반드시 붙여줄 것

DI 미션

  • Controller, Service, Repository 등 애노테이션을 중복으로 선언하면 우선순위에 따라 하나를 선택하여 빈을 생성한다.
    • 우선순위는 잘 모르겠음
    • 런타임 때 에러 터지는 잘 모르겠음
    • 컴파일에서는 하나를 선택