목록Study (268)
전공공부

ReactiveRedisHashOperations @Bean public ReactiveHashOperations reactiveRedisOperations() { ReactiveRedisConnectionFactory connectionFactory = connectionFactory(); RedisSerializer stringRedisSerializer = new StringRedisSerializer(); Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer(Object.class); RedisSerializationContext serializationContext = RedisSerializationContext .n..
설명 특이한 알고리즘 기법이 사용된 문제는 아니고 일반적인 플로이드 와셜 문제인데요. 다만, 수의 비교를 통해서 갈 수 있는 곳을 찾아내는 문제다 보니 나 보다 큰 수는 어디까지 탐색 할 수 있는지 파악 할 수 있는 곳을 찾고 나 보다 작은 수는 어디까지 탐색 할 수 있는 지 탐색이 필요합니다. 따라서, 아래와 같이 코드 구현을 하였습니다. 코드 package BOJ.shortest_path; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class BOJ_10159 { static int N,M; public stat..

Personal Project 사이드 프로젝트를 진행하면서 개인적으로 공부 했던 점들을 직접 적용해보려 합니다. 사실, 팀 프로젝트로 진행을 하여야 더욱 더 개성있고 실 서비스에 가까운 프로젝트를 진행 할 수 있겠으나 아무래도 개인 프로젝트를 진행하면서 제 개인의 실력을 키우고 성장해내고 싶은 마음이 크고 제 자신의 능력을 보여주기 위해서는 개인 프로젝트 만큼 솔직 한 것이 없다고 생각합니다. (팀 프로젝트 특성상 공부하고 싶은 툴들을 제대로 쓰지 못 할 수 있고 일정에 많이 민감하기 때문에 구현하고 나서 보면 코딩 스타일 및 기본적인 틀이 잡히지 않을 가능성이 있습니다...) 따라서, 위와 같은 이유로 개인 프로젝트를 진행해보려고 합니다. 우선 Domain Driven Design + MSA를 합한 E..
설명 플로이드 와셜 활용한 알고리즘이며 구현 부분이 상당히 귀찮은 문제입니다. char -> int 형으로 관리하고 이를 대소문자마다 다시 int 위치에 위치 시켜야 하므로 이런 부분이 구현 문제처럼 느껴지는 부분입니다. 사실 나머지 주요 로직은 플로이드 와셜을 이용해서 이미 갔던 위치를 다시 거쳐서 가면서 중간 위치에서 갈 수 있는 곳은 연결되었다는 로직으로 하면 됩니다. 코드 package shortest_path; import java.util.*; import java.io.*; public class BOJ_2224 { private static char itoa(int idx) { if (idx
String으로 바로 반환 하는 것과 Mono 의 형태로 바로 반환하는 것과 어떤 차이가 있을까요? @RestController public class TesterController { @GetMapping("/") Mono hello() { return Mono.just("Hello Webflux"); } } @RestController public class TesterController { @GetMapping("/") String hello() { return ("Hello Webflux"); } } 모노로 리턴하면 Publisher의 형태로 만들어진 객체를 Spring이 자동으로 onSubscribe 처리를 하는데 Mono가 만든 Publisher를 구독하고 이를 onNext로 진행해서 내가 진..
설명 인접리스트 형태로 풀기 위해서 Map이라는 새로운 객체로 각 i,j 번째 행렬의 위치의 노드 위치 값을 저장하고 이를 이용해서 Dijkstra를 구현하였는데 double dist = Math.sqrt(Math.pow(distX, 2) + Math.pow(distY, 2)); //double dist = Math.sqrt(Math.abs(distX) * Math.abs(distX) + Math.abs(distY) * Math.abs(distY)); 위에 보이는 해당 코드 형태 때문에 계속 틀렸었습니다. 약간 어이 없는 문제인데 컴퓨터의 부동소수점 표현 방식에 따른 정밀도 문제로 인해서 그렇다고 합니다. 적어도 PS를 할 때는 API를 적극 이용하여야 겠습니다. 코드 import java.io.Buff..
설명 정말 간단한 다익스트라 구현 문제 같지만 그렇지만은 않은 것이 해당 부분이 문제 였었습니다. 저는 아래 부분을 풀때, 처음에는 우선 넘긴다음 다음 차례로 들어온 것에 대해서 visited와 함께 걸러내는 식으로 만들었는데요. private static void dijkstra(int start) { boolean visited[] = new boolean[N + 1]; Queue q = new PriorityQueue(); q.add(new Data(start,0)); int[] weight = new int[N + 1]; while (!q.isEmpty()){ Data now = q.poll(); if(visited[now.to] || weight[now.to] > M){ continue; } v..
https://velog.io/@ddh963963/Webflux-R2dbc-nonblocking-vs-MVC-JDBC-blocking-%EC%84%B1%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8 Webflux + R2dbc (nonblocking) vs MVC + JDBC (blocking) 성능 테스트 완전한 환경에서 한 테스트가 아니기 때문에 편차가 있을 수 있습니다. WebFlux vs MVC 테스트의 목적 및 개요 WebFlux 와 MVC의 성능테스트를 눈으로 보고 스레드의 동작을 살피는 것이 테스트의 목적 velog.io https://medium.com/oracledevs/spring-blocking-vs-non-blocking-r2dbc-vs-jdbc-and-webfl..