전체 글 654

J/D [야놀자에프앤비솔루션] Software Engineer, Back-end

[야놀자에프앤비솔루션] Software Engineer, Back-end F&B Solution R&D실 소개 야놀자에프앤비솔루션은 야놀자의 주요 멤버사로, 도도 포인트 / 나우웨이팅 등 식,음료 매장의 고객 관리 데이터를 통해 고객 재방문율을 높이는 솔루션을 제공하는 기업입니다. 업계에서의 독보적 1위를 차지하고 있는 2개의 프로덕트와 함께 글로벌 진출로의 방향성을 기획하고 있으며, F&B 시장 데이터 분석, 파트너십 확대를 통한 SaaS 솔루션 리더십을 지속적으로 행하고 있습니다. F&B 사업은 야놀자의 모든 상품 군 가운데 가장 독립적이고 확장 범위가 넓은 사업입니다. 외식 산업의 디지털 전환을 통한 고객 경험 증대에 집중하며 외식 시장의 선도 기업으로 자리매김하고, 나아가 글로벌 현지화를 통해 세..

Project 3 -[주문 api] unit test; test code 성공 (에러 핸들링 없이)

테스트 코드 작성 과정 아래 링크 참고하여, app.js를 app.js와 server.js로 분리하고 테스트용 dotenv파일 만들어 준다 (.env.test , .env.test.sample) Project 3: unit test, test code [실습] 0. app.js ,server.js 분리하기 1. test 폴더에 order.test로 만듦 2. test용 데이터베에스 만들기 _ connection_test create database [ ] 2. .env.test , .env.tests.sample 파일에 무조건 connection test database 데이터베이스 이름 pm-developer-justdoit.tistory.com (.env.test_.gitignore에 넣어주고) 그 ..

Project 3 - [결제 api] 완성 - 포인트 차감

접근 방식: 주문/결제 후 장바구니에서 수량/변경 및 삭제 한 것과 같은 로직 user 포인트 - product price 로 update 쿼리문 userId로 points 뽑아와서, select하고, update 퀴리문 나오는 순서. controller와 router는 변함이 없고, orderDao, orderService만 변경 및 추가된다 orderService.js 2) 결제 추가 orderService.js 자세히 보면 첫번째 코드는, orderDao에서 가져온 userId가 겹치는 것에 해당하는 Points를 가져온 isUserPoints 에 제품 가격을 뺀다. 그 남은 포인트 (remainPoints)를 orderDao로 보낸다. 그러면 orderDao에서는 orderService에서 upd..

Project 3: unit test, test code [개념] + 프로세스

테스트 코드를 계획 및 작성하는 이유: 사전에 에러를 방지하여 더 높은 품질의 소프트웨어를 제공하기 위함 기능 추가, 버그 수정, 리팩토링을 진행하면서 개발자는 다양한 실수를 할 수 있음 개발자는 직접 의도한 대로 동작하는지 테스트하는 코드를 작성하여 사전에 미리 실수를 잡아내고 코드를 올바르게 수정 테스트를 통해 소프트웨어 개발 전반적인 부분에서 발생할 수 있는 에러를 미리 찾아낸다는 것은 테스트 환경이 실제로 서비스가 배포되는 환경과 일치해야 한다는 것 0. 프로젝트 구조 app.js ,server.js 분리하기 서버 가동에 필요한 모든 코드가 app.js에 포함된 방식이 아닌, app.js와 server.js로 분리하는 방식으로 변경 app.js const express = require("expr..

Project 3- node.js 로 토스 페이먼츠 결제 외부 모듈 적용하는 법 **

node.js 로 토스 페이먼츠 결제 외부 모듈 적용하는 법 토스(Toss) 결제를 Node.js 애플리케이션에 통합하려면 Toss 결제 API를 사용하여 결제 흐름을 구축해야 합니다. 아래는 Node.js 애플리케이션에서 Toss 결제를 통합하는 단계입니다: 1. Toss API 키 발급 및 설정: Toss 결제를 사용하려면 먼저 Toss 개발자 계정을 생성하고 API 키를 발급받아야 합니다. API 키를 발급받은 후, 해당 키를 애플리케이션 환경 변수 또는 설정 파일에 저장합니다. 2. Node.js 애플리케이션 설정: Node.js 애플리케이션에서 Toss 결제를 사용하기 위해 필요한 모듈을 설치합니다. 토스 결제 API를 사용하기 위한 공식 SDK가 제공되지 않는 경우, HTTP 요청을 직접 만들..

Project 3- 주문 api : postman 통신 성공 (if 에러 핸들링 x, transactionx)

이후 여러 개 제품을 담는 걸로 수정된 api 통신 문제 [수정 사항] 1. controller -> req.userId = req. body는 아래에 또 들어가 있어서 뺌 전 후 2. orderid 는 빼도 됨 > order 테이블에 저장하면 자동으로 id 생기고 > orderdetails 는 order에서 받은 userid도 필요없음 orderdetails에서 orderid 받아서 거기에 userid 있으니까 (orderdetails 테이블 키는 애초에 orderid product id, cartid만 필요) controller service.js 안그래도 postman body에 orderId 있는 거 보면서 이상하더라 body에 왜 orderid를 보내지? newOrder 함수로 자동 생기는데 ㅇ..

Project 3: [주문 api] - if 에러 핸들링, transaction

에러 핸들링 1. 2. 2-1) 느낌표 위치 2-2) 공백 주의 참고 3. 수량이 36개 남았을 때 남은 36개 다 넣었을 때 장바구니 0개가 됨 장바구니 carts 테이블에 원래 있던 carts id 2 가 사라짐 --> 재고가 없기에 36개 담았던 장바구니에서 36개를 샀으니 없어지는 것 그리고 update가 아닌 delete 쿼리문이 쓰이는 걸 잘 확인 4. 근데 장바구니에 0개라서 주문이 들어가면 안 되는데, 위의 주문 번호 order id = 34가 orde 테이블에 생겼다는 것. 주문이 되니까 에러핸들링 해야함. orderService.js 에서 _ create order 함수에서 에러 핸들링 카트에 없는 거 주뮨 카트 수량보다 많이 주문 trasaction -> 주문 디테일 실패ㅙㅛ는데도 주..

Project 3 : 주문 api postman 통신 방법 (if 에러 핸들링 x, transactionx) + 에러 해결 법

vscode의 mysql 확장자 사용 -> 주문 결제 시 간편 1. carts 수량 넉넉히 넣어두고 (테스트 해야 하니까) ( + 버튼 누르면 됨) 2. user 만들고 (created at dms 자동생성되니 냅두고) 3. product 만들고 (아래에 product_category_id 참고해서 넣고) 4. 그러다가, 아 하고 product categories 만들고 (저장하면서 이동 해야 한다 _ 연두색 체크 버튼 _ 다 달라감) 5. body 에 보내야 하는 게 payment id도 있어서 만들고 6. 만든 테이블 참고해서 어떤 user 인지 userid , payment id, product id 는 내가 만든 각 user / payment /product 테이블 참고해서 넣고 total pri..