분류 전체보기 290

[Spring] 의존성 주입(DI)에 대해 알아보자 - 3 / 의존성 주입

[Spring] 의존성 주입(DI)에 대해 알아보자 - 1 / 개요, Bean 정의 [Spring] 의존성 주입(DI)에 대해 알아보자 - 2 / Bean 설정 의존성 주입 의존성 주입에는 3가지 방법이 있다. . 설정자 기반 의존성 주입 방법 . 생성자 기반 의존성 주입 방법 . 필드 기반 의존성 주입 방법 설정자 기반 의존성 주입 방법 == 세터 인젝션 . 세터 메서드(setXXXX())를 이용해 의존성을 주입하는 방법이다. . 아래와 같은 클래스가 있다고 하고, userService를 구현해보자. // userService를 구현해보자. public class UserServiceImpl implements UserService{ private UserRepository userRepository;..

Dev 2022.03.03

[Spring] 의존성 주입(DI) 에 대해 알아보자 - 2 / Bean 설정

[Spring] 의존성 주입(DI)에 대해 알아보자 - 1 / 개요, Bean 정의 빈 설정하는 방법 . 이전 글 뒷부분을 살짝 가져왔다. . 위의 클래스 AppConfig처럼 빈을 설정하는 방법에도 3가지가 존재한다. . 빈 설정 방식 3가지는 아래와 같다. . ApplicationContext는 단독 앱에서 스프링 프레임워크를 사용하거나, JUnit으로 만든 테스트 케이스 안에서 스프링 프레임워크를 구동할 때 사용된다. . 웹 앱 사용 시, 확장된 개념인 WebApplicationContext를 이용한다. 자바 기반 설정 방식 방법 설명 생성 방식 자바 기반 설정 방식 . 자바 클래스에 @Configuration 어노테이션을 사용하고, 메서드에 @Bean 어노테이션을 사용해서 빈을 정의한다. . 스프..

Dev 2022.03.02

[알고리즘] 가위 바위 보 with Java, else if 에 대한 생각

3.1 절 맞이 알고리즘 문제 풀이 진행 중이다. 배열 문제도 빠르게 마무리 짓고 기본을 탄탄히 할 수 있는 개발자가 되었으면 좋겠다. 오늘 배운 것 1. 문제 풀이 . else if 로직에 대한 이해도를 높이는 계기가 되었다. . 비기는 로직 > A가 이기는 로직 > else B가 이기는 로직 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList a = new ArrayList(); ArrayList b = new ArrayList..

[알고리즘] 보이는 학생 with Java

3.1 절 맞이 알고리즘 문제 풀이 진행 중이다. 배열 문제도 빠르게 마무리 짓고 기본을 탄탄히 할 수 있는 개발자가 되었으면 좋겠다. 오늘 배운 것 1. 머리속으로 알고리즘 그리기 . 시나리오 흐름대로 한번 쭉 진행하고, 알고리즘적으로 구현해야 할 코드가 무엇인지 대략적으로라도 생각해보는 자세가 필요한 듯하다. 2. 문제 풀이 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList integers = new ArrayList(); f..

[알고리즘] 큰 수 출력하기 with Java

배열편을 공부해보고 있다. 이번 편은 어려운 로직은 딱히 없어서 복습한다는 느낌으로 풀고 갔다. 오늘 배운 것 1. 문제 풀이 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList integers = new ArrayList(); for (int j = 0; j < i; j++) { integers.add(kb.nextInt()); } solution(i,integers); } private static void solution(in..

[알고리즘] 문자열 총 정리 with Java

문자열 편을 다 보고 나서 나름대로 정리를 해보았다. 자고로,, 공부란 끊임없는 기억의 재조합과 반복이라고 생각한다. 이를 위해 계속해서 복습해서 내 것으로 만들어야겠다는 생각을 했다. 문자열 알고리즘을 배우면서 나름 유효했던 배움들을 기록하고 정리해보았다. 배운 것 정리 1. Scanner . 값을 주로 읽기 위해 사용하는 객체 . next() : 한 문자열 읽기 가능 . nextLine() : 한 줄 읽기 가능 . nextInt() : 한 정수 읽기 가능 . next().charAt(0) : 한 문자 읽기 가능 // 사용법 Scanner sc = new Scanner(System.in); 2. s.{ toUpperCase(), toLowerCase() } . 문자열을 대문자로 바꾸기 위해 사용 Str..

[Spring] 의존성 주입(DI) 에 대해 알아보자 - 1 / 개요, Bean 정의

의존성 주입(DI)이 필요하게 된 배경 . 앤터프라이즈 애플리케이션 개발 시, 하나의 처리를 수행하기 위해 여러 개의 컴포넌트를 조합해서 개발하는 경우가 일반적이다. . '공통으로 사용되는 기능을 따로 분리한 컴포넌트', 'DB 접근을 위한 컴포넌트', '외부 시스템에 접속하기 위한 컴포넌트' 등이 있다. . 하나의 처리를 구현하기 위해 여러 컴포넌트를 통합할 때 의존성 주입이 필요하다. . 예를 들어, UserService의 Save 기능을 구현하기 위해서는 UserRepository나 PasswordEncoder클래스를 이용해서 구현해야 한다. 클래스 간 결합도가 높다 . 위에서 말했듯 UserServiceImpl 클래스를 개발하는 단계에서는 이미 UserRepository나 PasswordEncod..

Dev 2022.02.28

[알고리즘] 암호 with Java, replace(), subString(a,b),parseInt(a,2)

문자열 마지막 문제. 여러 가지 꿀팁을 알게 된 것 같아 뿌듯하다. 까먹지 않게 자주자주 복습해주어야겠다. 오늘 배운 것 1. replace('#','1').replace('*','0') replace는 chain처럼 여러 번 사용 가능하다. String tmp = str.substring(0,7).replace('#', '1').replace('*', '0'); 2. 2진수를 10진수로 바꾸기 Integer.parseInt(i,2)를 사용하면 가능하다. 뒤쪽에는 몇 진수로 들어갔는지 입력해주면 된다. String tmp = '100'; int num = Integer.parseInt(tmp,2); System.out.println(num);// 4 3. subString(a, b) . subString..

[알고리즘] 문자열 압축 with Java, 문자열에 빈 문자 하나 더해주기

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. 문자열에 빈 문자 하나 더해주기 문자열 전체를 순회하고 싶을 때, 빈 문자열을 하나 더해주는 포인트를 배웠다. 2. 문제 풀이 import java.util.Scanner; public class Main { public static String solution(String str){ String answer = ""; str +=" "; char[] chars = str.toCharArray(); int cnt = 1; for (int i = 0; i < chars.length-1; i++) { if(chars[i] == chars[i+1]){ cnt++; }else{ answer+=chars[i]; if..

[알고리즘] 가장 짧은 문자거리 with Java, 거리 구하는 것에 대한 생각

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. 문자 간 거리를 구하는 방법 로직 앞으로 갔다 뒤로 갔다 한 번씩 해주면 된다. 방향 설정하는 게 중요하다. 앞으로 가면서 최소 거리를 설정하고, 다시 되돌아오면서 최소 거리를 비교하는 로직. 2. 문제 풀이 import java.util.Scanner; public class Main { public static int[] solution(String str,char c){ int [] answer = new int[str.length()]; char[] chars = str.toCharArray(); int p = str.length(); for (int i = 0; i < answer.length; i..