본문 바로가기

Etc169

[Day 114] Spring WebFlux 학습 주제 Spring WebFlux Spring MVC vs Spring WebFlux Spring WebFlux의 Non-Blocking 새롭게 배운 내용 2022.10.14 - [Back-End/Spring WebFlux] - Spring WebFlux 2022.10.14 - [Back-End/Spring WebFlux] - Spring WebFlux 적용 보강할 내용 Spring WebFlux 블로깅 내용 보강, 정리 회고 Spring 5 버전에 리액티브 스택이 추가되면서 Spring 기반의 리액티브 프로그래밍이 도입되는 추세이다. 여기서 주목받는 기술인 Spring WebFlux에 대해 학습했다. WebFlux라는 이름을 처음 봤을 때 이름에 담긴 의미를 생각해 보지 못했었는데 Web + Flu.. 2022. 10. 14.
[Day 113] Spring WebFlux : Project Reactor 학습 주제 Reactor 마블 다이어그램 Publisher, Scheduler, Operator 새롭게 배운 내용 2022.10.13 - [Back-End/Spring WebFlux] - Project Reactor 2022.10.13 - [Back-End/Spring WebFlux] - [Reactor] Operators 보강할 내용 동기 & 비동기와 블로킹 & 논블록킹 회고 Reactor는 리액티브 스트림즈의 구현체이다. 리액티브 프로그래밍의 핵심은 Non-Blocking이다. Non-Blocking은 A 함수가 B 함수를 호출하면 B가 실행되지만, 제어권은 A가 갖고 있으며, A가 계속 제어권을 갖기 때문에 A도 코드를 계속 실행하는 것을 말한다. 이는 클라이언트의 요청에 따른 응답 대기 시간을 줄.. 2022. 10. 13.
[Java] 프로그래머스 : K번째수 K번째수 문제 분석 배열1과 2차원 배열인 배열2가 주어진다. 배열1의 i번째부터 j번째까지 수를 정렬하여 k번째 수를 반환해야 한다. 배열2는 [i, j, k]를 원소로 가진다. 배열2의 길이는 고정되어 있지 않다. 먼저 반환값으로 사용할 배열을 생성한다. 배열2의 길이는 고정되어 있지 않으므로 length로 모든 요소를 순회하는 for문을 생성한다. 배열1에서 자른 요소들을 담을 list를 생성하고 배열1의 ([i][0] - 1)번 인덱스부터 ([i][1] - 1)의 인덱스를 넣는다. list를 정렬하고, get 메서드를 통해 k번째 요소를 뽑아서 반환값 담을 배열에 넣는다. 🤔 배열의 일부를 자르고 이를 담아 둘 곳이 필요하다는 점에서 한참 고민했다. 다른 효율적인 방법을 고민해 보기! 문제 풀기 .. 2022. 10. 11.
[Java] 프로그래머스 : 위장 프로그래머스 : 위장 문제 분석 상의, 하의, 겉옷 등의 큰 분류 안에 여러 의상이 존재할 때, 입을 수 있는 조합의 수를 계산한다. Map을 생성하고, Key는 의상 분류, Value는 분류에 해당하는 의상의 수를 넣는다. 경우의 수는 각 Key의 Value들의 곱이다. 이때 겉옷은 입지 않고 상의와 하의만 입는 경우의 수도 있다. 각 옷의 개수에 + 1(안 입는 경우) 아무것도 입지 않는 경우는 없다. 전체에서 - 1 (상의의 수 + 1) x (하의의 수 + 1) x (겉옷의 수 + 1) - 1 문제 풀이 import java.util.*; class Solution { public int solution(String[][] clothes) { //옷의 종류를 Key로 하고, 해당하는 옷의 개수를 V.. 2022. 10. 10.
[Java] 프로그래머스 : 전화번호 목록 프로그래머스 : 전화번호 목록 문제 분석 전화번호 목록이 주어지고, 한 전화번호가 다른 전화번호를 포함하는 경우가 있는지 확인한다. 예를 들어 전화번호 '111'과 '1112'가 있을 때, '1112'는 '111'를 포함한다. Map을 생성하고 모든 전화번호를 넣는다. 반복문을 통해 전화번호부 배열의 요소 하나하나에 접근해서 각 번호의 길이만큼의 중첩 반복문을 만들고, 번호의 일부를 포함하는 번호가 Map에 존재하는지의 여부를 확인한다. 예를 들어 전화번호 '111'과 '1112'가 있을 때, '1112'를 나눈 '1', '11', '111'가 전화번호부에 존재하는지 확인한다. 문제 풀이 import java.util.*; class Solution { public boolean solution(Stri.. 2022. 10. 9.
[Java] 백준 9935번: 문자열 폭발 https://www.acmicpc.net/problem/9935 문제 분석 문자열과 폭발 문자열을 입력받는다. 문자열에 존재하는 모든 폭발 문자열을 제거한 문자열을 반환한다. 문자열을 구셩하는 문자들을 하나씩 스택에 넣고, 폭발 문자열과 길이가 같아지는 지점부터 반복문을 통해 스택에 담긴 문자를 인덱스로 접근하여 검사한다. (스택 사이즈) - (폭발 문자열 길이) + i (i는 0부터 시작하며 폭발 문자열의 길이이다.) 검사 중 문자 하나라도 일치하지 않는다면 boolean 변수로 기록한 후 반복문을 빠져나온다. 스택에 폭발 문자열이 존재함이 증명된다면 poll을 통해 Stack에서 제거한다. 👉 스택은 역으로 데이터 삭제가 가능하므로, 폭발 문자열 길이만큼 poll 하면 된다. 원본 문자열에 대한 검.. 2022. 10. 8.