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

Create 2주차 김동우 #40

Merged
merged 1 commit into from
May 8, 2024
Merged

Conversation

4BFC
Copy link
Contributor

@4BFC 4BFC commented May 2, 2024

과제 제출 날짜

23-05-03 (금요일)

풀이 방법

어떻게 풀었나요? 나만의 핵심 포인트를 말해주세요!

이번에는 크게 문제 없이 코드를 작성했다. 다만 useState의 set state 를 설정할 때 함수를 이용해서 관리하고 사용하면 최적화나 비동기적 처리를 안전하게 할 수 있다고 들었다. 리액트에서도 이를 권장하고 있다고 하지만 유지 보수 차원에서는 이해가 되지만 정확히 왜 비동기적 처리를 안전하게 할 수 있다고 하는지는 명확한 답변을 찾아내지는 못했다.

  const handleIssue = (element) => {
    setIssue(element);
  }

  const handleIssueList = (element) => {
    setIssueList(prevent => { return [...prevent, element] })
  }

< filelocation : hw/HW.js >

위와 같은 형태를 **함수형 업데이트(Functional Updates)**라고 하는데 이를 활용하면 여러 방면에서 최적화를 맞출 수 있다고 한다. 개인적으로 프로젝트를 진행하면서 이와 같은 함수형 업데이트를 습관적으로 사용하고 있었고 vanilla Js를 좋아하는 나로서도 함수형으로 코드를 작성하는 것을 좋아하다 보니 한번도 생각을 해보면서 짚어 본적 없었다. 이번 기회에 한번 짚어가면서 명확한 이유를 얻지는 못했지만 이러한 개념이 있다는 정도로만 인지하게 되었다. 아래 링크는 함수형 업데이트 관련 포스팅이다. 나도 아직은 읽어보지 못했지만 이 이슈를 읽는 학우, 동아리원들은 한번 읽어 보시라.

함수형 업데이트(Functional Updates) 포스팅

어려웠던 점

기능을 구현하며 가장 어려웠던 부분은 뭐였나요?

학업과 졸업 프로젝트를 함께 진행을 하면서 delete 부분을 구현하지 못했다. 게다가 내가 원하는 방식으로 구현하고 싶은, 구상한 모습이 있는데 이를 완변하게 하지 못한 점이 아쉽다. 이번 issue는 이렇게 작성 하지만 최대한 시간이 나는데로 다시 update를 하고 pr을 올려서 마무리를 지어 볼 것이다.

과제 번호

@lee-nakyung lee-nakyung merged commit 897e52f into HSU-Likelion-Front-12th:main May 8, 2024
@Jun279
Copy link

Jun279 commented May 9, 2024

맞습니다! setState에 대해서 정확히 이해하셨네요!
비동기적 특성으로 인해 setState를 사용하더라도 이전 상태를 못받아올 수 있어요.
따라서 이전 상태를 기반으로 업데이트 해줘야 해요.
만약 상태가 객체나 배열이면 이전 상태를 복제해서 새 객체 또는 배열로 저장해놓고 수정하는 것이 좋아요�.

동우님이 구상하신 삭제하는 방법 궁금해요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants