전체 글 120

[Intellij Error] java.net.SocketTimeoutException

에러문구: Caused by: java.net.SocketTimeoutException: connect timed out 해결: File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle에서 Build and run using과 Run tests using을 IntelliJ IDEA로 바꾼다. source https://pika-chu.tistory.com/88 intellij에서 java.net.SocketTimeoutException Caused by: java.net.SocketTimeoutException: connect timed out 이 에러를 해결하기 위해 File -> Settings -> Build, Executi..

ErrorLog 2023.03.17

[Spring] 빈 스코프

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 빈 스코프 빈이 존재할 수 있는 범위 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹관..

Framework/Spring 2023.03.16

[Spring] 빈 생명주기 콜백

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 빈 생명주기 콜백 데이터 베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화 종료작업이 필요하다. 초기화 작업은 의존 관계 주입이 모두 완료되고 난..

Framework/Spring 2023.03.16

[Spring] 컴포넌트 스캔과 의존관계 자동 주입

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 컴포넌트 스캔과 의존관계 자동 주입 시작하기 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 의존관계도 자동으로 주입하는 @Autowired라는 기능도 제공한다. 컴포넌트 스캔을 사용할려면 @ComponentScan을 설정..

Framework/Spring 2023.03.16

[Spring] 싱글톤 컨테이너

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 웹 애플리케이션과 싱글톤 순수한 DI 컨테이너는 요청할 때 마다 객체를 새로 생성한다. →메모리 낭비가 심하다. → 해당 객체가 딱 1개만 생성되고, 공유하도록 설계하면 된다. → 싱글톤 패턴 스프링 컨테이너는 위의 이유로 싱글톤 컨테이너이다. 싱글톤 패턴 클래스의 인스..

Framework/Spring 2023.03.16

[Spring] 스프링 컨테이너와 스프링 빈

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 스프링 컨테이너 생성 //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스피링 컨테이너..

Framework/Spring 2023.03.16

[자료구조] Tree의 종류

Binary Tree: child노드가 최대 2개까지 붙은 트리 Binary Search Tree: 왼쪽 노드와 그 이하 child노드들은 현재 노드보다 작아야 하고, 오른쪽 노드와 그 이하 child노드들은 현재 노드보다 커야함. 큰 값을 찾고 싶으면 오른쪽으로만 가면되고, 작은 값을 찾고 싶으면 왼쪽으로 가면됨. 발란스가 맞다는 지나치게 치우쳐있지 않으면 발란스가 맞다고 한다. 모든 노드들이 왼쪽부터 채워져 있으면 Coplete Binary Tree이다. 마지막 레벨을 제외한 모든 서브트리의 레벨이 같아야 하고, 마지막 레벨은 왼쪽부터 채워져 있음. 하나의 chlid 노드를 가지고 있는 노드가 하나도 없는 트리를 Full Binary Tree라고 한다. 자식 노드를 하나도 가지지 않거나 두개를 가지는..

CS/알고리즘 2023.03.14

[자료구조] 힙 (Heap)

힙 최대값이나 최솟값을 빠르게 구하기 위해 고안된 완전 이진트리를 기본으로 한 자료구조 최소힙: 작은 값을 부모노드에 있게 하고, 최상단에는 가장 작은 값을 가짐 최대힙: 큰 값을 부모노드에 있게 하고, 최상단에는 가장 큰 값을 가짐 최소 힙에 노드 삽입하기 완전트리에 맨 끝에 노드 추가 정렬을 위해 자신과 부모노드를 비교해서 자신의 값이 작으면 자리 교환 (노드가 root에 도착했거나 부모노드가 자신보다 작을 때까지 반복) 완전 이진 트리에서 이루어 지므로 O(logN)이 걸린다. 최소 힙에 노드 꺼내오기 root 를 꺼내온 후에 완전 이진트리의 맨 마지막 노드를 가져와서 루트에 채운다. 정렬이 안된 상태 이므로 자신의 자식노드와 비교해서 더 작은 값을 올린다. (자식이 자기보다 크거나 마지막 노드에 ..

CS/알고리즘 2023.03.14

[Spring] DI와 IoC

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 강의 예제 활용 새로운 할인 정책 적용과 문제점 //private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new R..

Framework/Spring 2023.03.13

[Language] SOLID

SRP 단일 책임 원칙 Single responsibility principle 한 클래스에는 하나의 책임만 가져야 한다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 OCP 개방-폐쇄 원칙 Open/closed principle 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 객체를 생성하고, 연관관계를 맺어주는 별도의 조립, 설정자가 필요하다. LSP 리스코프 치환 원칙 Liskov substitution principle 프로그램 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 다형성에서 하위 클래스는 인터페이스 규약을 다 지켜야 한다는 것 다형성을 지원하기 위한 원칙, 인터페이스를 구현한 구현체를 믿고 사용하려면,..

Language 2023.03.13