스프링 빈을 조회할 때 메서드 이름 없이 타입으로만 조회하게 되면 스프링 빈이 2개 이상 조회될 수 있는 문제가 있습니다. @Autowired는 객체의 타입(Type)으로 조회합니다. @Autowired private DiscountPolicy discountPolicy // 위의 코드는 // ac.getBean(DiscountPolicy)와 유사하게 동작합니다 @Component public class FixDiscountPolicy implements DiscountPolicy {} // 두 스프링 빈 모두 타입이 DiscountPolicy @Component public class RateDiscountPolicy implements DiscountPolicy {} ✔ 타입으로만 조회하게 되면 스프..
스프링 없는 순수한 DI Container✔ 스프링을 사용하지 않는 DI 컨테이너인 AppConfig는 사용자가 요청을 할 때마다 객체를 계속해서 새로 생성합니다.-> 요청할 때마다 객체를 계속해서 생성하므로 메모리 낭비가 심합니다. 해결방안✔ 해당 객체가 딱 1개만 생성되고 (Singleton), 공유하도록 설계하여 반복 생성되는 구조를 피하는 것입니다.public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer(){ AppConfig appConfig = new AppConfig(); // 1. 조회: 호출할 때 마다 객체를 생성 MemberServi..
문제 입력 및 출력 코드 n = int(input()) graph = [0 for _ in range(n+1)] for i in range(n): node = int(input()) graph[i+1] = node for i in range(n): cnt = 0 v = graph[i+1] if v == -1: print(cnt) else: while v != -1: v = graph[v] cnt += 1 print(cnt) 풀이 * graph 변수를 입력받는 노드의 크기 + 1 크기로 초기화하여, 각각의 n 노드의 부모의 위치를 저장한다. * cnt 변수는 부모 노드로 위치한 횟수를 더하여, 해당 노드의 높이를 나타냅니다. ( v == -1 이면 루트 노드이기에 0을 출력합니다.) * 루트 노드가 아닌 ..
파이썬 머신러닝 완벽가이드 - 저자: 권철민 - 위 책을 바탕으로 정리한 내용입니다. 비지도 학습이란 정해져 있는 값(라벨)이 없는 데이터를 (데이터 피처 값을 통해) 비슷한 특징끼리 군집화하여, 이후에 입력하는 새로운 데이터에 대한 결과를 예측하는 학습을 의미합니다. K-평균 알고리즘 (군집화) 군집 중심점이라는 특정한 임의의 지점을 선택해, 해당 중심에 가장 가까운 포인트들을 선택하는 기법입니다. 군집 중심점은 선택된 포인트(데이터)의 평균 지점으로 이동하고, 이동된 중심점에서 다시 가까운 포인트를 선택합니다, 다시, 중심점을 평균 지점으로 이동하는 프로세스를 반복적으로 수행하며, 모든 데이터 포인트에서 더 이상 중심점의 이동이 없을 경우에 반복을 멈춥니다. 1) 군집화의 기준이 되는 중심을 구성하려..