728x90

Study 182

배달 플랫폼 백엔드 : rabbitmq

RabbitMQ- 메시지를 생성하는 프로듀서(= api server), 이를 큐에 저장하는 rabbitmq, 이 메세지를 읽어 소비하는 컨슈머(=가맹점 서버)- 비동기 방식 api server 가 퍼블리셔 역할이다. api 서비스에서 사용자가 주문을 하게 되면 (이벤트 발생 메세지 생성)api 서버가 q에 바로 메세지 넣는게 아니라,rabbitmq 는 exhange라는 곳에 메세지를 넣는다 - 이 메세지를 어디로 라우팅 시킬지 결정 하는 곳이 exchange, 컨트롤러 같은 역할.exchange는 어떤 메세지인지 구분해 특정한 q에 그 메세지를 넣어준다.  가맹점 서버가 컨슈머 역할을 한다.가맹점 서버가 q에 있는 데이터를 가져오고 처리한다. 컨슈머는 데이터를 넣을 수도 있고 꺼낼 수도 있다. 양방향 가..

JAVA/프로젝트 2024.06.14

RabbitMQ 설정

- RabbitMQ- 메시지를 생성하는 프로듀서(= api server), 이를 큐에 저장하는 rabbitmq, 이 메세지를 읽어 소비하는 컨슈머(=가맹점 서버)- 비동기 방식 멀티 모듈 프로젝트 진행 중 rabbitmq 설정 방법 루트 폴더에 - rabbitmq 패키지 생성 - docker-compose.yaml 파일생성version: '3.7'services: rabbitmq: image: rabbitmq:latest ports: - "5672:5672" # rabbit amqp port - "15672:15672" # manage port environment: - RABBITMQ_DEFAULT_USER=[] # 기본사용자 이름 - R..

기타/설정 2024.06.14

'javax.persistence.Entity', Could not resolve all files for configuration ':compileClasspath'.

> Task :compileJava FAILED 1 actionable task: 1 executed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Could not resolve all files for configuration ':compileClasspath'. > Could not find javax.persistence:javax.persistence-api:. Required by: project :  Executing 'build'... > Task :compileJava FAILED 1 actionable task: 1 executed FAILURE: ..

JAVA/에러 2024.06.10

2회차 코딩 테스트 오답 풀이

1번 문제는 BFS (너비 우선 탐색, Breadth First Search)알고리즘을 사용해 출발 지점부터 목표 지점까지의 최단 경로를 찾는 문제였다.  BFS?bfs는 그래프 탐색 알고리즘 중 하나로, 시작점에서 인접점들을 먼저 탐색한 후, 그 다음 인접점들을 탐색하는 방식이다.BFS는 최단 경로를 찾는 데 유리하다.BFS는 큐를 사용해 구현되며, 각 정점을 방문할 때마다 그 정점의 인접한 정점들을 큐에 추가한다.이 문제에서는 BFS를 사용해 시작 위치에서 목표 위치까지의 최단 경로를 찾고 그 거리를 반환한다. import java.util.*;public class Solution { public int solution(int[][] maps) { //n,m은 각각 maps 배열의..

코딩테스트 2024.06.07

Swagger.... Failed to load API definition. Fetch errorresponse status is 500 /v3/api-docsErrorsHideFetch errorresponse status is 500 /v3/api-docs.........

jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'io.swagger.v3.oas.models.media.Schema io.swagger.v3.oas.models.media.Schema.addProperty(java.lang.String, io.swagger.v3.oas.models.media.Schema)'Caused by: java.lang.NoSuchMethodError: 'io.swagger.v3.oas.models.media.Schema io.swagger.v3.oas.models.media.Schema.addProperty(java.lang.String, io.swagger.v3.oas..

JAVA/에러 2024.05.21

배달 플랫폼 백엔드 개발: Api Error code 적용

서비스 관련 에러 상태를 표현하기엔 Http status는 부족하다 account -  common - error 패키지 생성, ErrorCode, UserErrorCode enum클래스와 ErrorCodeIfs 인터페이스 생 package org.delivery.api.common.error;import lombok.AllArgsConstructor;import lombok.Getter;import org.springframework.http.HttpStatus;@Getter@AllArgsConstructorpublic enum ErrorCode implements ErrorCodeIfs{ OK(200 , 200 , "성공"), BAD_REQUEST(HttpStatus.BAD_REQUEST...

JAVA/프로젝트 2024.05.20

배달 플랫폼 백엔드 개발: API 공통 Spec 적용

HTTP 통신은 자기만의 status code를 가진다 (404, 502, 200 등)서비스를 하다보면 http status code만 가지고 표현하기 어려운 것들이 많다.이런 것들을 클라이언트에게 어떻게 전달할 것인지 api - common - api 패키지 생성 Api, Result 클래스 생성 package org.delivery.api.common.api;import jakarta.validation.Valid;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class Api { private Result..

JAVA/프로젝트 2024.05.20

배달 플랫폼 백엔드 개발: Filter request, Response Log

현재 : 멀티모듈 상태, swagger 설정 완료    들어오는 리퀘스트 정보를 기록,나가는 기록을 로그로 찍는다. doFilter 기준으로 들어오고 나가는 정보에 대한 기록을 남긴다. filter package - LoggerFilter 생성package org.delivery.api.filter;import jakarta.servlet.*;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;import org.springframework.we..

JAVA/프로젝트 2024.05.20
728x90
반응형