[TroubleShooting] P2 배달앱 만들기 Day4

Son_Doobu96·2023년 1월 27일
1

Project2 TroubleSooting

목록 보기
4/4
post-thumbnail

Day3

# Day4의 목표
Frontend가 잘 작동하도록 WAS의 소스코드를 변경한다.

◎ Milestone 10

Frontend가 잘 작동하도록 WAS의 소스코드를 변경한다.

■ 처음으로 마주한 문제

요청받은 API 문서에 기반하여 API를 작성 후 로컬에서 테스트를 진행해습니다.

몽고 DB에 입력한 Data

POSTMAN을 활용하여 local에서 테스트

local에서 처음 확인한 프론트엔드

문제가 없는 줄 알고 브라우저에서 레스토랑에 들어가서 메뉴요청을 해봤는데
띠용..?

브라우저가 하얀색으로 변하며 문제가 발생했다...
처음에는 내가 작성한 WAS코드의 문제가 있다고 정상적으로 DATA를 수신하고 있는지를 먼저 확인해 봤다.


하지만 데이터를 정상적으로 수신하고 있는 걸 확인하고 에러의 원인을 찾아보니
값의 상태를 정의할 수 없다는 내용이라는걸 알 수 있었지만 어떻게 해결해야 할지에 대해
너무 막막한 상황에서 명절 연휴 2일을 날렸다...

결국 프로젝트 당일 엔지니어님에게 헬프를 요청하게 되었다.
이때 엔지니어님께서 에러코드를 같이 확인해 주시면서 정의 할 수 없는 값이 배달원의 정보라고 하셨다.

실제로 포스트맨으로 확인해 본 결과 브라우저를 통해 주문을 하면 레스토랑의 ID와 메뉴만이 요청되는 것을 확인할 수 있었다.

그래서 일단은 하드코딩을 통해 해당 정보를 입력해 줌으로써 이 문제를 해결할 수 있었다.

module.exports = async function (fastify, opts) {
   
    fastify.post('/', async function (request, reply) {

        const db = fastify.mongo.client.db('baedal')

        const deliveryInfo = ({
            "deliveryInfo": {
                "status": "preparing",
                "assignedCourier": "최배달",
                "estimatedDeleveryTime": 15
        }})
        const result = await db.collection('order').insert(Object.assign(deliveryInfo, (request.body)))

        reply
        .code(201)
        .header('Content-type', 'application/json')
        .send(result)
}
)}

완성된 모습

▶ Milestone10에서 배운 점

내 코딩 실력이 많이 모자라다는 점을 확실하게 느끼게 되었다.
그래서 해당 프로젝트를 조금 더 발전시킬 수 있는 방향으로 기능 구현을 하면서 연습을 해보려 한다.
해당 결과는 추후에 포스팅하기로 하겠다!

profile
DevOps를 꿈꾸는 엔지니어 지망생!

0개의 댓글