강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

부드러운 족제비님의 프로필 이미지
부드러운 족제비

작성한 질문수

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

삭제기능 구현

삭제기능 구현부분에 대해 질문있습니다.

작성

·

64

0

안녕하세요 삭제기능 구현 강의를 보다가 조금 어려운 부분이 있어 질문을 드립니다. canvas.js 파일에서 getCanvases함수와 createCanvas함수는 canvases.get, canvases.post앞에 return이 붙었고 이건 다른 곳에서 사용할 수 있다라고 알고 있습니다. 그럼 deleteCanvas는 왜 똑같이 return을 사용하지 않고 async await을 사용했는지 궁금하고 왜 위에 두 함수는 return을 사용했는지도 궁금합니다.

답변 2

0

짐코딩님의 프로필 이미지
짐코딩
지식공유자

안녕하세요 🙂

getCanvasescreateCanvas는 API 호출 결과(Promise)를 그대로 반환합니다. 응답 전체(상태 코드 등)를 그대로 넘겨줘서 호출하는 쪽에서 더 많은 정보를 활용할 수 있게 합니다.

deleteCanvas는 async/await을 사용하지만 아무것도 반환하지 않습니다. 이는 삭제 작업 자체가 성공했는지만 중요하고, 특별히 반환할 데이터가 없기 때문입니다.

이런 차이는 각 함수의 목적과 필요한 데이터 처리 방식이 다르기 때문에 생깁니다. 실무에서도 상황에 맞게 다양한 패턴을 사용하는 것이 일반적입니다.

강의에서 이렇게 다양한 방식을 보여드리는 이유는, 실제 개발 환경에서는 한 가지 패턴만 고집하기보다 상황에 맞는 다양한 스타일을 유연하게 적용하는 경우가 많기 때문입니다. 프로젝트마다, 심지어 같은 프로젝트 내에서도 함수의 목적에 따라 다른 패턴을 적용하는 것이 자연스럽습니다.

이렇게 다양한 패턴을 접하면 수강생들은 단순히 "이게 정답이다"라는 생각보다, 각 상황에 맞는 최적의 방법을 스스로 판단할 수 있는 능력을 기를 수 있습니다. 결국 코딩 스타일은 특정 개발자를 따라가는 것보다, 팀의 컨벤션이나 자신만의 일관된 규칙을 정하고 상황에 맞게 유연하게 적용하는 것이 중요하니까요.

이러한 사고를 통해 더 넓은 시야를 가지고 한단계 더 성장할 수 있을 거예요~!

0

안녕하세요, 인프런 AI 인턴입니다. 부드러운 족제비님.

질문해주신 부분은 JavaScript의 비동기 함수 처리에 대한 내용입니다. 각 함수의 사용 방법과 차이에 대해 설명드리겠습니다.

getCanvasescreateCanvas 함수와 return

  • getCanvases 함수: 데이터베이스나 서버에서 데이터를 가져오는 경우 주로 return과 함께 사용됩니다. 이는 해당 함수가 어떤 값을 반환할 때, 이 값을 다른 곳에서 사용하거나 더 처리하기 위해 반환하도록 하는 것입니다.

  • createCanvas 함수: 새로운 데이터를 서버에 전송할 때, 서버로부터 응답을 받고 그 응답을 필요로 하는 경우 return을 사용해 반환합니다. 이 역시 응답값을 다른 곳에서 사용해야 하기 때문입니다.

deleteCanvas 함수와 async/await

  • deleteCanvas: 이 함수는 주로 서버에 삭제 요청을 보내고, 결과가 성공적인지 확인하기 위해 사용됩니다. async 키워드는 함수를 비동기적으로 만들어주고, await 키워드는 비동기 작업(여기서는 canvases.delete()와 같은)을 기다리며, 작업이 완료될 때까지 다음 줄의 코드를 실행하지 않도록 합니다.

deleteCanvas 함수에 return이 없는 것은, 해당 함수가 직접적으로 반환해야 할 데이터가 없기 때문이기도 하지만, 삭제 작업의 성공 여부나 오류 처리를 위해서는 async/await를 통해 처리의 완료 시점을 제어하기 위함입니다. 필요에 따라 deleteCanvas 함수에서 어떤 결과를 반환해야 한다면 추가적인 return을 사용할 수 있습니다.

이러한 차이로 인해 각 함수가 다른 용도로 설계되어 있으며, 각각의 비동기 처리 방식에 따라 설계된 것입니다.

관련된 다른 학습 자료가 필요하시다면, 다음과 같은 질문을 참고해보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

부드러운 족제비님의 프로필 이미지
부드러운 족제비

작성한 질문수

질문하기