n과 m,,, 혹시 직접 조합과 순열을 구현하는게 빠르려나 싶었는데, itertools 내장 라이브러리를 사용하는 것이 속도가 훨 빠르게 나온다. 그래서 그냥 정렬 후 조합했다. 참고한 블로그!
비내림 차순, 중복가능 이라서 combinations_with_replacement를 이용해서 해줬당 라이브러리 만만세
이걸 3일을 쪼개 듣네,,
인터페이스 파일. 이렇게만 하면 spring container에 알아서 빈이 생긴다
config도 이렇게 간단해진다. 테스트 돌려보면 끝나버린다
JpaRepository에 이미 구현되어있는게 많아서 그렇다.
하지만 공부할때는 JPA를 먼저하고! 데이터 jpa를 써보는게 좋은게, 데이터 jpa는 jpa를 도와주는 도구일 뿐이라고 한당
시간을 측정해야할 때! 시간은 핵심 관심 사항이 아니라, 공통 관심 사항이다.
매번 이렇게 로직을 짤 수 없는 노릇. 그래서 AOP를 사용한다.
Aspect Oriented Programming
공통 관심 사항(cross-cutting concern)과 핵심 관심 사항(core concern)을 분리해준다
AOP 파일에는 @Aspect
어노테이션이 필요하다
@Around
어노테이션은 어디에 실행시킬건지 적어주는 부분으로, 이미지와 같이 적으면 hello.hellospring 패키지 하위의 모든 파일에 해당된다.
config 파일에 등록해주고! 아니 근데 이렇게 하니까 스프링 빈에 '순환 종속성' 문제가 생겨서,, 그냥 aop 클래스에 @Component
해줬다.
이렇게 촤라락 실행 목록과 시간이 뜬다. 병목을 바로 찾을 수 있다.
인프런 강의가 끝났다.. 다시 책으로 돌아가서 탐구를 조금하고, 다시 도커를 해보던가.. 자바 공부를 하던가 해야겠다.
근데 문득, 기술이나 현업공부는 내년에도 공들여 할 수 있고, 시간이 없어도 시간을 내서 할텐데 언어는 우선순위가 밀릴테니까 지금 hsk공부를 해볼까. 문득 그런 생각이 들었다. 언어 욕심은 아무튼 끝이 없다..