Yunseok's Dev Blog

배운 것을 적는 블로그입니다.

코드숨 리액트 스터디 회고

모던 자바스크립트 튜토리얼 스터디가 끝나고 4주 동안 리액트 공식 문서 읽기 스터디를 했다. 리액트 문서에 있는 모든 문서를 읽었다.

스터디 진행 방식

문제집 만들기에서 정교화로

기존 스터디 진행 방식은 각자 문서를 읽고, 각자 퀴즈 같은 문제를 만들어오고, 만든 질문을 가지고 질문하고 답하며 스터디를 진행했다. 이렇게 진행했던 이유는 공부를 하면서 질문을 만들면 저자의 의도를 더 잘 파악할 수 있기 때문이다. 저자가 말하고자 하는 바가 무엇이고 그러면 나는 공부를 하면서 무엇을 얻고 무엇을 할 수 있게 되는지 정리가 되고 그 질문에 답해보면서 피드백을 얻어서 내가 잘 공부를 했는지 알 수 있기 때문이다.

그리고 그렇게 모인 질문들을 다른 사람에게 질문하며 스터디를 더 능동적으로 참여할 수 있어서 좋았다. 하지만 시간은 한정돼 있고, 많이 얘기해야 할 주제에 대해서 충분히 다루지 못하는 것 같아 더 핵심적인 질문을 하기로 결정했다.

우리가 모호하게 알고 있는 지식을 정리하며 나만의 지식으로 정제하는 과정을 말하는데, 핵심 질문들에 대해서 정리를 하며 정리를 했다.

핵심 질문들

우리가 어떤 지식에 대해서 알고 있다면 그 지식은 무엇이고, 왜 사용하며 그래서 어떻게 사용하는지 설명할 수 있다면 잘 이해했다고 볼 수 있다. 그래서 스터디 시간에 이러한 질문들을 던지고 답변을 하며 스터디를 진행했다. 예를 들면 리액트의 Reconcil 이란 무엇인가에 대해서 다음과 같이 정리했다.

## Reconcil이란?

* React element들을 재귀적으로 mount 하는 과정을 말한다.

## Reconcil은 왜 필요할까?

* React element들을 DOM에 반영하려면 실제로 추가해야 할 element들을 알기위 해서 필요하다

## Reconcil은 어떻게 하는가?
{
  type: Button,
  props: {},
  children: [],
}

{
  currentElement: <Button />,
  publicInstance: [object Button],
  renderedComponent: {
    currentElement: <button />,
    node: [object HTMLDivElement],
    renderedChildren: [
      // ...
    ],
  }
}

토론

질문에 대해 답변을 하다 보면 좋은 답변도 있고 아쉬운 답변도 있다. 그리고 그 답변이 맞는지 아닌지 판단할 수 있어야 한다. 그래서 답변에 대한 생각을 다시 다른 사람에게 물어보고, 맞는 말 같은지, 아니면 틀린 말 같은지 물어보고 그렇다면 어떻게 정리하면 좋을지에 대해서 다시 물어봤다.

그러다보니 자연스럽게 토론이 진행되었다. 토론을 하면서 지식들을 정제하여 정리했고 그러다 보니 스터디 전에 애매하게 알던 것들을 확실히 알게 되었다. 또한 스터디를 더 능동적으로 참여하게 되었다.

아쉬운 점

처음부터 잘 정리를 하며 스터디를 진행했으면 좋았을 걸 생각이 들었다.

배운 점

대충 알고 작성하던 것들을 제대로 이해하고 하니 리액트로 개발하는데 자신감이 많이 생겼다. 원리를 알고 나서 하니 어떤 문제가 발생할지 미리 예상도 되고, 문제가 발생해도 더 빠르게 문제를 해결할 수 있었다.

앞으로 할 것

더 다양한 학습 패턴들을 배우고 싶다. 그리고 그것들을 같이 스터디하는 사람들에게도 익힐 수 있도록 스터디를 통해 자연스럽게 학습하게 하고 싶다.

Sources