Coding-Village-Protector / woowahan-ts

[우아한 타입스크립트 with 리액트] 북 스터디 📚
14 stars 2 forks source link

7.4_API Mocking의 용도 대해서 설명해주세요. #18

Closed sryung1225 closed 9 months ago

sryung1225 commented 9 months ago

📝 239p

❓ API Mocking이란 무엇을 의미하는건가요? 어떤 경우에서 무엇을 위해 API Mocking을 사용하는 것인지 용도를 설명해주세요.

자율) 만일 API Mocking을 해본 경험이 있다면 그 경험에 대한 이야기를 들려주세요. 또는 어떤 식으로 사용하면 좋을 것 같다는 계획을 세워보는 것도 좋을 것 같아요 💆‍♀️

Stilllee commented 9 months ago

API Mocking은 실제 API 대신 사용하는 가짜 모듈 또는 가상 API를 말한다.

1. 개발 단계

개발 중인 서버가 불안정하거나, AWS와 같은 외부 서비스에 문제가 발생했을 때 사용하여 서버의 상태에 영향을 받지 않고 개발을 지속할 수 있다.

2. 테스트 단계

실제 API를 사용하지 않고도 일관된 테스트 결과를 얻을 수 있으며, API 제한에 걸리는 것을 방지할 수 있다.

3. 이슈 재현 및 디버깅

실제 환경에서 발생한 문제를 재현하고 디버깅할 수 있다.

4. 예외 케이스 테스트

다양한 에러 상황이나 예외적인 상황을 빠르고 쉽게 테스트할 수 있다.

eeeyooon commented 9 months ago

Mocking은 실제로 존재하지 않는 값, 즉 Mock 데이터(가짜 데이터, 모의 데이터)를 만들어서 테스트하는 것을 말합니다. API Moking이란 주로 백엔드가 완성되기 전 API 호출을 테스트하기 위해 사용됩니다.

프론트엔드 개발에서 API 연동과 같이 백엔드에 종속적인 부분이 있다면, 백엔드 개발이 완료될 때까지 프론트엔드 개발이 중단될 수 밖에 없습니다. 이러한 문제를 해결하기 위해 Mocking을 사용하는 것입니다.

개인적인 경험으로는 data를 조회하는 기능을 테스트하기 위해 *.json 파일을 만들어서 해당 파일에 모킹 데이터를 넣고 get 요청에 해당 파일 경로를 넣어 data를 응답 받는 방식을 사용해본 적이 있습니다.

lulla-by commented 9 months ago

프론트엔드 개발시 서버가 구축되지 않은 상황이거나 함께 개발중인 상황에서 임시로 가상의 데이터를 생성하여 프론트 엔드 개발을 진행하는 용도로 모킹을 사용합니다.

개인적인 경험으로는 db.json 형식의 파일을 생성하여 해당 파일을 다른 포트번호로 로컬에서 실행시키고 해당 주소로 api를 호출하는 방식으로 게시글이나 댓글 등 사진이 포함되지 않는 간단한 데이터들의 crud를 구현한 했습니다.

sryung1225 commented 9 months ago

백엔드와 협업을 할 때, 서버 API가 완성되기 전에 프론트엔드 개발을 진행해야 하는 경우가 종종 생깁니다. 이 경우 단순히 임시 변수를 만들어 UI 구현을 하는 방법이 있지만, 요청 응답에 따른 UI 변화 등을 확인하기에는 한계가 있습니다. 가짜 서버를 제공하는 방법은 프론트엔드 개발 과정에서 발생할 수 있는 모든 예외 사항을 처리하는 것이 어렵고, AWS 문제와 같은 서버 자체가 불안정할 때에 영향을 받습니다.

이런 한계를 극복하기 위한 수단으로 가짜(mock) API를 만들어 사용하는 API Mocking을 흔히 사용합니다. API Mocking을 활용하면 다양한 예외 케이스의 응답을 편하게 테스트하며 개발을 할 수 있습니다.

개발 환경에서 API Mocking을 진행하는 도구로 axios-mock-adaptor, NextApiHandler 등이 있습니다.


같이 보면 좋을 글