Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic 정진호 sprint4 #38

Conversation

zinojung
Copy link
Collaborator

요구사항

기본 요구사항

공통

  • Github에 스프린트 미션 PR을 만들어 주세요.

  • 'https://sprint-mission-api.vercel.app/articles' API를 이용하여 아래 함수들을 구현해 주세요.

    • [ ] getArticleList() : GET 메서드를 사용해 주세요.
      • [ ] pagepageSizekeyword 쿼리 파라미터를 이용해 주세요.
    • [ ] getArticle() : GET 메서드를 사용해 주세요.
    • [ ] createArticle() : POST 메서드를 사용해 주세요.
      • request body에 titlecontentimage 를 포함해 주세요.
    • [ ] patchArticle() : PATCH 메서드를 사용해 주세요.
    • [ ] deleteArticle() : DELETE 메서드를 사용해 주세요.
  • fetch 혹은 axios 를 이용해 주세요.

    • 응답의 상태 코드가 2XX가 아닐 경우, 에러메시지를 콘솔에 출력해 주세요.
  • .then() 메서드를 이용하여 비동기 처리를 해주세요.

  • .catch() 를 이용하여 오류 처리를 해주세요.

  • 'https://sprint-mission-api.vercel.app/products' API를 이용하여 아래 함수들을 구현해 주세요.

    • [ ] getProductList() : GET 메서드를 사용해 주세요.
      • [ ] pagepageSizekeyword 쿼리 파라미터를 이용해 주세요.
    • [ ] getProduct() : GET 메서드를 사용해 주세요.
    • [ ] createProduct() : POST 메서드를 사용해 주세요.
      • request body에 namedescriptionpricetagsimages 를 포함해 주세요.
    • [ ] patchProduct() : PATCH 메서드를 사용해 주세요.
    • [ ] deleteProduct() : DELETE 메서드를 사용해 주세요.
  • async/await 을 이용하여 비동기 처리를 해주세요.

  • try/catch 를 이용하여 오류 처리를 해주세요.

  • 구현한 함수들을 아래와 같이 파일을 분리해 주세요.

    • [ ] export를 활용해 주세요.
    • [ ] ProductService.js 파일 Product API 관련 함수들을 작성해 주세요.
    • [ ] ArticleService.js 파일에 Article API 관련 함수들을 작성해 주세요.
  • 이외의 코드들은 모두 main.js 파일에 작성해 주세요.

    • [ ] import를 활용해 주세요.
    • 각 함수를 실행하는 코드를 작성하고, 제대로 동작하는지 확인해 주세요.

@zinojung zinojung added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 최종 제출 스프린트미션 최종 제출본입니다. labels Nov 24, 2024
@zinojung zinojung requested a review from jjjwodls November 24, 2024 13:49
@zinojung zinojung assigned zinojung and unassigned jjjwodls Nov 24, 2024
@@ -0,0 +1,92 @@
async function getArticleList(page=1, pageSize=10, keyword="") {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

javascript 여서 타입체크를 하지 않고 바로 값을 받을 수 있는 상황입니다.

예를들어 page 파라미터 위치에 숫자가 아닌 다른 문자열 값이 넘어와도 그대로 수행됩니다.

추후에 typescript 를 배우면 그런 문제는 ide 에서 바로 경고가 뜨겠지만 지금은 그렇지 않은 상황이니 유효성 체크를 해주는 방식을 익혀두시고 수업 진도에 맞게 유효성 체크 기술을 사용해주시면 좋겠습니다.

여기서는 page, pageSize 가 number 타입인지 양수의 숫자가 제대로 들어왔는지 체크해주는 로직이 들어가면 좋겠습니다.

참고 : [isInteger]

}

async function getArticle(id) {
const url = `https://sprint-mission-api.vercel.app/articles/${id}`;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

공통되는 url 은 파일 상단 또는 상수로 따로 관리하는걸 추천드립니다.

https://sprint-mission-api.vercel.app

해당 부분은 api의 엔드포인트이므로 별도로 공통 관리하는 방법을 주로 사용합니다.

}
}

async function getArticle(id) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

id 가 number 타입이라면 제대로 number 타입인지 양수인지 체크해주는 유효성 로직을 추가해주세요.

}

async function createArticle(title, content, image) {
const url = "https://sprint-mission-api.vercel.app/articles";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 부분도 마찬가지로 공통으로 url 을 선언하여 사용하는걸 권장드립니다!

@@ -0,0 +1,93 @@
async function getProductList(page = 1, pageSize = 10, keyword = "") {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 유효성 체크 로직 추가!

@@ -0,0 +1,93 @@
async function getProductList(page = 1, pageSize = 10, keyword = "") {
const url = `https://sprint-mission-api.vercel.app/products?page=${page}&pageSize=${pageSize}&keyword=${keyword}`;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

url 상수로 분리 필요합니다!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

export 를 하단에 모아서 작성하셔도 되긴 하지만 일반적으로 함수 앞에 선언을 많이 해서 사용합니다.

함수 앞에 선언하면 하단에 다시 함수이름을 선언하지 않아도 되고 어떤 함수가 export 되었는지 유무도 한눈에 보이므로

함수에 같이 선언해주세요!

@jjjwodls
Copy link
Collaborator

이번 스프린트도 고생 많았습니다 진호님!

코멘트 달아드린 부분들 확인해보고 코드를 더 수정해보세요!

@jjjwodls jjjwodls merged commit e38ae86 into codeit-sprint-fullstack:basic-정진호 Nov 25, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 최종 제출 스프린트미션 최종 제출본입니다.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants