728x90

JAVA/프로젝트 47

배달 플랫폼 백엔드 : rabbitmq

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

JAVA/프로젝트 2024.06.14

배달 플랫폼 백엔드 개발: 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

MVC 기반 온라인 쇼핑 카트 구현하기: DB 설계

개념적 설계  물리적 모델링  테이블 스키마:use toy2;CREATE TABLE customer ( -- 고객테이블customer_id VARCHAR(50) NOT NULL, -- 고객아이디password VARCHAR(50) NOT NULL, -- 비밀번호customer_name VARCHAR(45) NOT NULL, -- 고객이름age INT, -- 나이rating VARCHAR(20) NOT NULL, -- 등급occupation VARCHAR(30), -- 직업reserves INT DEFAULT 0, -- 적립금PRIMARY KEY (customer_id));CREATE TABLE product ( -- 제품테이블product_number INT AUTO_INCREMENT, -- 제품번호pr..

JAVA/프로젝트 2024.05.05

Spring Boot: JPA 연관관계 설정하기 -2, 최신순 정렬, 삭제된 게시글 제외 하고 조회

Post와 Reply 도 1: N 관계이다. 연관 관계를 만들어 줘야 한다. PostEntity 수정@OneToMany(mappedBy = "post")private List replyList = List.of();// 빈 리스트를 기본으로 PostService 수정 //답변 같이 보여주기.// @OneToMany를 통해 자동으로 list를 보내 주므로 필요없어짐//var replyList = replyService.findAllByPostId(it.getId());//it.setReplyList(replyList);  ReplyEntity 추가 :@ManyToOne@ToString.Exclude@JsonIgnoreprivate PostEntity post; //PostEntity @OneToMany(..

JAVA/프로젝트 2024.04.27

Spring Boot: JPA 연관관계 설정하기, Dto, Converter

보드와 포스트는 1:N 관계 (게시판에 여러개의 게시글이 올라올 수 있으니)포스트와 리플라이는 1:N 관계 (게시글에 여러개의 댓글이 달릴 수 있다. )  JPA를 사용하게 되면public List findAllByPostId( Long postId){ return replyRepository.findAllByPostIdAndStatusOrderById(postId, "REGISTERED");}이러한 부분을 쉽게 오브젝트, ORM으로  활용이 가능하다.  = 객체 지향적으로 데이터베이스를 컨트롤 하는 것이 가능해진다.  ORM? 객체 관계 매핑. JPA는 자바 클래스와 데이터의 테이블 간의 매핑을 지원한다. 이를 통해 복잡한 쿼리를 작성하지 않고 객체를 통해 데이터를 조작할 수 있다.  BoardC..

JAVA/프로젝트 2024.04.27

Spring Boot: End point 개발 3, 게시글과 게시글에 달린 답변 같이 보기

게시글(post)에 postid, password를 입력하고 들어가면 밑에 달려있는 댓글을 같이 보는 기능 개발,관리자는 post 에 대한  댓글을 달기 위한 작업 개발.reply만 가져오는 것이 아니라 사용자의 원본 글의 리스트로 내려갈 수 있도록 개발 입력 받는 댓글 모델 생성 package com.example.myboard.reply.model;import com.fasterxml.jackson.databind.PropertyNamingStrategies;import com.fasterxml.jackson.databind.annotation.JsonNaming;import jakarta.validation.constraints.NotBlank;import jakarta.validation.cons..

JAVA/프로젝트 2024.04.27

Spring Boot: End point 개발 2, 조회, 개별 조회, 삭제

생성 create 했다면보는 기능view, 삭제 delete 도 필요하다.  view(아이디별 조회): 익명 게시판이기 때문에 @GetMapping(),@PathVariable로 id를 받아서 조회하는 것은 불가능하다.작성할 때 입력한 비밀번호가 입력되어야 열람 가능한 형태. @PostMapping("/view") 로 처리해주고path로 못받으니 body로 받아야 한다. 비밀번호와 아이디를 입력 받을 또 다른 모델이 필요하다.  model - PostViewRequest 클래스 생성보기 위해선 postId, password을 입력해야 한다.package com.example.myboard.post.model;import com.fasterxml.jackson.databind.PropertyNamingSt..

JAVA/프로젝트 2024.04.27

Spring Boot : 게시판 End point 개발. board와 post 생성

End point?웹에서 클라이언트가 서버에게 요청을 보낼 수 있는 특정 URL, URI 경로API가 서버에서 리소스에 접근할 수 있도록 가능하게 하는 URL이다.   1.글 작성하는 부분작성자 userName김어쩌구비밀번호 password1234제목 title문의 합니다.문의 내용 content문의합니다. 현재 ~~~~입니다.  2. 게시판에 처음 진입하면 들어오게 되는 부분번호 id 제목 title작성일 postedAt작성자userName1문의 합니다.2024-04-26김어쩌구2상세 내역 문의합니다.2024-04-27김이박   1. 글 작성 부분 개발 Board :게시판을 만들기 위해선 게시판 만들어주는 api 필요 : board pacakage - controller package - BoardCo..

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