본문 바로가기

분류 전체보기27

gradle jib 플러그인으로 이미지 빌드할 때 발생한 에러 (Cannot run program "docker-credential-desktop": error=2, No such file or directory) 자동목차문제상황jib으로 프로젝트 이미지 빌드도중 발생한 에러입니다.에러의 내용은 다음과 같습니다.> Task :jibContainerizing application to seunggison/msa-currency-exchange-app:0.0.1-SNAPSHOT...Base image 'openjdk:21' does not use a specific image digest - build may not be reproducibleThe system does not have docker-credential-desktop CLI Caused by: Cannot run program "docker-credential-desktop": error=2, No such file or directoryThe sys.. 2024. 10. 11.
마이크로 서비스 간 분산추적 with Zipkin 자동목차MSA 분산 추적위 같이 마이크로서비스가 여러개 있을 경우, 각 서비스들간에 호출 체인이 일어납니다.간단한 예로 이전 포스팅에서 통화 변환 서비스가 환율정보를 받아오기 위해서 환율 서비스의 API를 호출 했었죠.마이크로 서비스들이 많아지면 많아질수록 이런 호출체인은 더 복잡해지겠죠. 그럼 상황에서 문제가 발생하기 마련입니다.이렇게 발생하는 문제를 추적하고 분석할 수 있어야하는데 이를 위해 분산 추적을 사용합니다.이미지와 같이 모든 마이크로서비스의 모든 정보를 분산 추적 서버로 보냅니다.그리고 분산 추적 서버는 각 서비스에서 전송된 트레이스 데이터를 수집하고 이를 DB에 저장합니다.이 데이터는 서비스 간 호출 정보, 요청의 시작 시간과 종료 시간, 응답 시간, 서비스 간의 관계, 그리고 각 단계에서.. 2024. 10. 8.
Spring Cloud로 MSA 구축해보기 자동목차본 포스팅을 하게 된 이유현재 많은 기업에서 MSA를 사용하고 있습니다.그렇기에 신입으로 취업하게 되면 막연하게 회사에 들어가서 학습하는 것보다는, "미리 공부를 하고 실무에 뛰어들면 업무에 원활하지 않을까?" 라는 생각이었고, 이를 위해 조만간 진행할 개인 프로젝트에서 MSA를 적용하여 구축해보자는 마음에 공부하게 되었습니다.MSAMSA(Microservice Architecture)는 애플리케이션을 여러 개의 독립적인 마이크로서비스로 나누어 개발하고 배포하는 아키텍처 스타일입니다.각 마이크로서비스는 하나의 기능에 집중하고, 다른 서비스들과 독립적으로 동작하며 독립적으로 배포될 수 있습니다. 마이크로서비스들은 서로 API나 메시지 큐를 통해 통신하며 각각의 서비스는 자신만의 데이터 저장소와 로직.. 2024. 9. 30.
[백준] 그래프 탐색(7562, 18352, 2606, 17198, 7569) 자동목차나이트의 이동(7562)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.Deque;import java.util.StringTokenizer;public class Main { static int t, l, x, y, targetX, targetY, res; static int[] dx = {-1, 1, 2, 2, 1, -1, -2, -2}; static int[] dy = {2, 2, 1, -1, -2, -2, -1, 1}; static boolean[][] visited; st.. 2024. 9. 30.
[백준] 정렬(1026, 1946, 18870, 1181) 자동목차보물(1026)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] a = Arrays.stream(br.readLine().split(" ")).mapToInt.. 2024. 9. 28.
[백준] 그래프, 트리 (13116, 9934, 2210, 3187) 30번(13116)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 { /* * 1. 트리에서 자식노드 값을 2로 나누면 부모노드의 값을 구할 수 있다 * 2. a와 b를 2로 나누면서 쭉 부모노드로 올라감 * 3. 서로 공통되는 부모노드중 최댓값을 찾아야 하기때문에 a와 b중 큰값을 먼저 나눔. 값이 같아지면 반복 멈춤*/ B.. 2024. 9. 27.