Home
Dohyun's Blog
Cancel

빈 스코프

빈 스코프 지금까지 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지된다고 했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 빈이 존재할 수 있는 범위를 뜻한다. 스프링이 지원하는 다양한 스코프 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되...

빈 생명주기와 콜백

빈 생명주기 콜백 데이터베이스 커넥션 풀이나 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화와 종료 작업이 필요하다. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정한다. 실제로 네트워크에 연결하진 않고 단순히 문자만 출력하도록...

네트워크 분류, TCP/IP 4계층 (vs OSI 7계층)

네트워크의 분류: LAN, MAN, WAN 네트워크는 LAN, MAN, WAN 순으로 분류된다. LAN이 가장 작은 단위, WAN이 가장 큰 단위이며 보통은 반경, 속도의 크기를 기반으로 분류한다. LAN Local Area Network MAN, WAN보다 높은 안정성과 속도를 가진다. 소규모네트워크(집, 사무실) - 보통 허브나 스위치로 ...

백준 14725 - 개미굴(java)

https://www.acmicpc.net/problem/14725 각 층의 방에 연결된 아래 층의 방들을 저장하도록 하는 트리 형태로 구성한다. HashMap<String , node>의 형태로 반복하여 Root가 되는 방부터 하위 구조가 만들어지도록 한다. 문제에서 그림으로 설명하는 개미굴을 표현해보면 1층 Root : Ha...

백준 1956- 운동 (java)

https://www.acmicpc.net/problem/1956 각 모든 정점에서 각 모든 정점까지의 최단거리를 구할 수 있는 플로이드 워셜 알고리즘을 사용하여 푸는 문제이다. 그래프에 음수사이클만 존재하지 않으면 다익스트라와 다르게 음수인 간선이 있어도 상관없다. 3중 for문을 돌며 어디를 거치지 않고 직행하는 거리가 짧은지, 경유해서 가는...

백준 11657 - 타임머신 (java)

https://www.acmicpc.net/problem/11657 음수 가중치가 존재하고, 음의 사이클이 존재할 때 사용하는 벨만포드 알고리즘을 이용하는 문제이다. 시작점을 제외한 dist 배열에 INF를 넣고 != INF를 통해 시작점과 연결 되어있는지를 확인한다. 버스노선을 N-1번 순회하여 최단거리를 파악하고 한번 더 최단거리를 갱신했을 ...

의존관계 자동주입

의존관계 주입 의존관계 주입은 크게 4가지 방법이 있다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 생성자를 통해서 의존 관계를 주입받는 방법. 지금까지 진행했던 방법이 생성자 주입이다. @Component public class OrderServiceImpl implements ...

네트워크 기초

네트워크 노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 노드 : 서버, 라우터, 스위치 등 네트워크 장치 링크(엣지) : 유선 또는 무선과 같은 연결 매체 (와이파이나 LAN) ex) 스마트폰으로 naver.com 접속한다. 스마트폰의 랜카드와 네이버의 서버가 네트워크(와이파이)를 통해 통신하고 스마트폰과 네...

컴포넌트 스캔

컴포넌트 스캔 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean 이나 XML 태그의 bean 등을 통해 설정 정보에 직접 등록할 스프링 빈을 나열했다. 이렇게 등록해야 할 스프링 빈이 수십, 수백개가 되면 일일이 등록하기도 귀찮고, 설정 정보도 커지고, 누락의 문제도 발생할 수 있다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈...

전략패턴, 옵저버 패턴, 프록시 패턴, MVC, flux 패턴

DI & DIP DI (Dependency Injection) 의존성 주입이란 메인 모듈이 직접 다른 하위 모듈에 대한 의존성을 주기보다는 중간에 의존성 주입자(dependency injector)가 이 부분을 책임지고 메인 모듈은 간접적으로 의존성을 주입하는 방식. 인터페이스에만 의존해야 함. -> 직접 구현체를 지정해주면 안됨. ...