2022.12.08.THU

ronglong·2022년 12월 8일
0

코드스테이츠 Day36

  1. 오전 데일리 코딩
    피보나치 수열 문제였는데, 못 풀었다.
    원리는 간단해서 그냥 fibo(n-1)+fibo(n-2)로 재귀함수 돌리면 되는데, 저렇게 하면 시간 복잡도가 커진다. 시간 복잡도를 줄여야하는 부분에서 열심히 고민하다가 실패.
if(num <=1) return num;
else return fibonacci(num-1)+fibonacci(num-2);

		// fibonacci(num-1) + fibonacci(num-2)
		// fibonacci(num-2) + fibonacci(num-3) + fibonacci(num-2) 
		// = 2*fibonacci(num-2) + fibonacci(num-3) 
    // 2*(fibonacci(num-3)+fibonacci(num-4)) + fibonacci(num-3)
		// = 3*fibonacci(num-3)+2*fibonacci(num-4)
        
        //5 = 4+3 = 3+2 + 2+1 = 2+1 + 1+0 + 1+0 +1 = 1+0 + 1 + 1+0 + 1+0 +1
		// dp? 

직접 써보기도 하면서 여러 방법을 구상했으나, 결국 구글링했다.
https://memostack.tistory.com/92
아마 내일 구글링한 결과를 토대로 풀어내지 않을까 싶다.

초반에 쉬운 문제들을 빨리 풀어놔서, 이렇게 여유롭게 고민할 시간이 생겨서 다행이다. 하지만 이 여유도 며칠이면 따라잡히겠군,,

  1. DI (Dependency Injection)
  • ApplicationContext : 스프링 컨테이너, 인터페이스, Bean을 객체로 만들어 관리, DI
  • Configuration Metadata : Bean(인스턴스화된 객체)을 만드는 recipe
  • Bean : 객체
  • BeanFactory : 스프링 컨테이너의 최상위 인터페이스, Bean 등록/생성/조회/관리
  • ApplicationContext : BeanFactory을 상속 받은 하위 인터페이스
  • BeanDefinition (빈 설정 메타정보)
    • @Bean 당 1개 생성
    • 설정 형식 : XML, Java 등
    • Scope : 싱글톤(기본값)
      • 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는디자인 패턴
      • 싱글톤 스코프의 스프링 빈은 여러번 호출해도 모두 같은 인스턴스 참조 주소값을 가짐
      • 싱글톤 패턴 문제를 싱글톤 컨테이너가 해결.
      • 여러 클라이언트가 하나의 객체 인스턴스를 공유하므로 싱글톤 객체는 무상태로 설계 ---> 값 변경 불가. 읽기 전용.
  • 내일 공부할 애너테이션
    @Bean @Configuration @Import @Autowired @Value @ComponentScan @Component
  • 오늘 공부할 때 참고한 사이트들
    Bean & Bean scope
    https://gmlwjd9405.github.io/2018/11/10/spring-beans.html
    Bean & XML
    https://chori84.tistory.com/14
    Full @Configuration and ‘lite’ @Beans mode
    https://www.knowledgepowerhouse.com/what-is-the-difference-between-full-configuration-and-lite-beans-mode/2283
    @Bean & @Component
    https://galid1.tistory.com/494
    @PropertySource
    https://nankisu.tistory.com/7

<느낀 점>
드디어 스프링에 본격적으로 진입하는 기분인데,, 내용도 어렵고 설명도 부족했다.
약간 각각의 개념을 정리해서 그 연관관계를 설명하지 않고, 그저 공식 문서를 몇 개 가져다가 번역 조금 해놓고 짜깁기&나열 해놓은 느낌.

내일 남은 DI부분 일찍 학습 끝내고, 인프런에 있는 무료 강의를 들어보려 한다.
강의 듣고 나서 애너테이션들의 의미와 사용법을 찾아서 정리해야겠다.
https://www.inflearn.com/course/spring#curriculum

0개의 댓글