전체 글 679

[Spring] 컴포넌트 스캔 / @Autowired

지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. → 관리할 빈이 많아지면 관리하기 번거로워 진다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 설정파일이 없다면 의존관계는 어떻게 주입할까? → @Autowired를 사용해 자동 의존관계 주입을 한다 컴포넌트 스캔 @Component를 가진 모든 대상을 가져와서 빈에 등록하기 위해 찾는 과정 컴포넌트 스캔은 @Component 애노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다. 참고로 @Configuration 이 컴포넌트 스캔의 대상이 된 이유도 @Configuration 소스코드를 열어보면 @Compone..

BACK/SPRING 2023.01.17

[JAVA] 백준 1202번- 보석 도둑

https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net package DAY03.P1202; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static class Jewel implement..

ALGORITHM 2023.01.16

[JAVA] 백준 13305번- 주유소

https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) throws IOException { BufferedR..

ALGORITHM 2023.01.13

[JAVA] 백준 13549번- 숨바꼭질 3

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, k; static int answer = 0; static boolean[] visited; stati..

ALGORITHM 2023.01.09

[JAVA] 백준 13913번- 숨바꼭질 4

https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, k; static int answer = 0; static boolean[] visited; stati..

ALGORITHM 2023.01.09

[JAVA] 백준 1697번- 숨바꼭질

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static i..

ALGORITHM 2023.01.09

[Spring] DI / IoC, 컨테이너, 의존성 주입 방법

DI (Dependency Injection) DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다. 의존 관계 먼저 의존 관계가 무엇인지 알아보자. UML 모델에서는 두 클래스의 의존관계를 다음과 같이 점선으로 된 화살표로 표현한다. A가 B에 의존하고 있음을 나타낸다. B의 기능이 추가하거나 변경되면 A에 영향을 미친다. 의존 관계에는 방향성이 있다. A가 B에 의존하지만, 반대로 B는 A에 의존하지 않는다. 의존성 주입 첫번째 방법은 A객체가 B와 C객체를 New 생성자를 통해서 직접..

BACK/SPRING 2023.01.09

[운영체제] 동기화 기법

프로세스 동기화 동기화란? 프로세스들 사이의 수행 시기를 맞추는 것 하나의 자원을 하나의 프로세스만이 이용하도록 제어하는 것이다. 동기화에는 실행 순서 제어를 위한 동기화와 상호 배제를 위한 동기화가 있다. 1. 실행 순서 제어 동시에 실행되는 프로세스를 올바른 순서대로 실행하는 것이다. 예를 들면 txt파일에 값을 저장하는 Writer 프로세스와 값을 읽어들이는 Reader 프로세스가 있다면, Writer -> Reader 순서로 실행해야 한다. 2. 상호 배제 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하는 것이다. 계좌에 잔액을 넣는 두 프로세스가 있다면 한 프로세스가 잔액에 접근했을 때 다른 프로세스는 기다려야 한다. * 생산자와 소비자 문제: 물건을 생산해내는 프로세스와 물건을 ..

CS/운영체제 2023.01.08

[JAVA] 백준 1707번- 이분 그래프

https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static ArrayList list; static int[] colors; stat..

ALGORITHM 2023.01.06
반응형