server 5

[Server] STOMP + WebSocket 테스트 문제 해결기 : Postman 활용

spring + stomp + websocket 으로 구현한 채팅 기능을 테스트하기 위해 꼬박 하루를 삽질했다.😂그 이유는 Postman으로 테스트하기 위함인데, 프론트 코드 없이 테스트를 해야했기 때문에 문제가 발생했다. 이미 많은 블로그에서 다양한 방법으로 WebSocket을 테스트하는 글을 찾아볼 수 있었지만, 대부분 테스트용 프론트 페이지가 폐쇄된 경우가 많았다. WebSocket을 Postman으로 테스트하는 방법은 몇몇 블로그에서 확인할 수 있었다. 하지만 나는 stomp + websocket을 사용했기 때문에 참고할 자료가 거의 없었다. 심지어 Postman으로 테스트하는게 어렵다는 이야기 뿐... 그래서 내가 시도해봤다! 모두들 내 글을 보고 함부로 잘못 없는 코드를 의심하거나...cha..

[Server] CORS 오류 해결 & CORS가 뭘까

프로젝트를 하면서 그 유명한 CORS 문제가 발생했다. 프론트 팀원에게 응답 헤더로 보내고있는 access token이 undefined 이라고 찍힌다고 말해줘서 오류를 한참 수정했다..CORS 문제였던 것!public CorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(List.of("http://localhost:3000")); configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "OPT..

[Server] Node.js + MySQL로 찜 기능 만들기

공동 구매 마켓 프로젝트에서 찜하기 기능을 구현했다. 처음에는 어떻게 설계해야할지 고민이 많았는데 그 내용을 정리해보려고한다.1. 구현해야할 API 물품 찜하기 내가 찜한 물품 조회2. 테이블 설계CREATE TABLE Wishlists ( wishlist_id INT PRIMARY KEY AUTO_INCREMENT, -- 위시 리스트 ID (Primary Key) user_id INT NOT NULL, -- 사용자 ID (Foreign Key) product_key INT NOT NULL, -- 찜한 상품 ID (Foreign Key) created_at TIMESTAMP DEFAULT CUR..

[Server] sequelize를 이용한 중첩 조인

마이페이지 부분을 구현하며 sequelize 중첩 조인에 대해 머리가 아팠다. 내가 구매 등록한 물품에 대한 정보를 전달해야했는데 여기서 아래와 같이 중첩 조인을 사용했다.const user = await User.findOne({ where: { user_id: userId }, attributes: ['email', 'nickname'], include: [ { model: Order, attributes: ['product_key', 'quantity'], include: [ { model: Product, }, ], },..

[Server] Database 설계 & SQL 1452 문제 해결

요즘 토이 팀 프로젝트를 진행중이다. 여기서 백엔드의 역할을 맡아서 수행 중인데 DB 설계를 하고 MySQL 에러 해결한 내용을 기록하려고 한다.일단 우리 프로젝트 주제는 "공동 구매 마켓 페이지"이다. 기획 제외하고 실질적인 개발 기간은 10일 정도라서 기능의 확장을 염두해두고 설계했다. 1. 로그인, 회원가입 - session, crypto 사용2. 마이페이지에서 정보 수정, 정보 조회3. 마이페이지에서 구매 등록, 판매 등록 정보 조회4. 구매 등록하기5. 판매 등록하기1. DB 임시 설계나는 DB를 4개로 나누어서 설계했다.UserCategoryProductOrder_item 각 상품에는 식품, 전자기기, 도서라는 카테고리가 존재하고 이를 조회할 수 있기 때문에 Category 테이블을 하나 만들..