본문 바로가기
728x90

전체 글202

클래스 컴포넌트에서 함수 컴포넌트로 전환기 목차 전환 배경 상태 변이 콜백 함수 Context Api 마무리 참조 배경 사내 코드에 아직 클래스 컴포넌트로 이루어진 프로젝트가 있습니다. 현재 그 프로젝트는 정상적으로 동작하고 간단한 기능 추가 및 유지보수에는 문제 없습니다. 하지만 서비스가 고도화 될수록 복잡한 기능 구현하기 위해 hook으로 지원하는 라이브러리를 자유롭게 사용하지 못했습니다. 고차 컴포넌트(HOC)를 이용하여 사용하는 방법이 있긴 하지만 매 라이브러리마다 고차 컴포넌트를 만드는 것은 유지보수 비용을 더 크게 만드는 것 같다고 판단하여 함수 컴포넌트로 전환하기로 결정했습니다. 이 전환 과정에서 고려해야하는 점들이 있어서 글로 작성하였습니다. 상태 변이 콜백 함수 클래스 컴포넌트의 상태변이는 콜백을 지원합니다. 이 콜백함수는 상태가.. 2024. 3. 17.
테크니컬 라이팅에 고민이 있다면 목차 개요 단계별 글쓰기 업무와 관련된 예시 후기 개요 우리는 업무를 하며 글쓰는 상황을 마주하게 된다. 동료에게 간단한 메시지를 작성하거나 사내외로 보여질 문서를 작성하는 등 다양한 경우가 있다. 필자는 글이 발행되어도 마음이 쉽게 놓이지 않는다. 왜냐하면 독자가 글을 읽고 동일한 생각을 하길 바라기 때문이다. 그래서 한눈에 이해하도록 여러가지 방법을 적용해본다. 글머리 기호를 이용하여 목록으로 작성하기도 하고, 예시를 들어서 추가 설명하기도 한다. 하지만 결국 되물어보는 응답이 발생한다. 무엇이 문제일지 가늠이 되지 않아서 글쓰기 역량이 부족한지 성찰하게 된다. 이와 비슷한 고민이 들면 기술블로그로 알아보는 테크니컬 라이팅 강의로부터 많은 도움받을 수 있어서 추천한다. 필자는 아래 강의에서 받은 도움.. 2024. 3. 3.
fireEvent와 userEvent 구현체 살펴보기 목차 userEvent는 fireEvent를 사용하여 구현되어있었다. userEvent는 async, await가 왜 필요한 것일까? Testing Library를 공부하던 중 fireEvent와 userEvent의 다른점을 학습하면서 fireEvent는 왜 필요한 것일까라는 궁금증을 시작으로 탐구하게 되었다. userEvent는 fireEvent를 사용하여 구현되어있었다. 이 두가지를 비교하거나 소개하는 오래된 글들을 보면 userEvent가 fireEvent로 구성되어있다고 이야기합니다. 하지만 이는 버전에 따라 맞을수도 있고 틀릴수도 있습니다. React-testing-library: fireEvent vs userEvent 먼저 fireEvent의 구현체를 확인해보겠습니다. 실제 fireEvent.. 2024. 1. 21.
2023 회고 2023년을 돌아보며 참여했던 활동과 영감받은 생각들을 정리해보았습니다. 목차 활동 DevOcean 스터디 OSSCA - 한국인 모두가 볼 수 있도록! MDN 문서 한글화 글또 9기 생각 돈보다 시간 갖기 위해 가진 것을 포기하기 고민보다 실패를 활동 DevOcean 스터디 지난 4월 즈음 우연히 기회가 되어 React-Native 스터디에 참여하게 되었다. 6월 말까지 진행하는 스터디로 주 1회 주말마다 모여서 북 스터디와 사이드 프로젝트를 진행했다. 그동안 온라인으로 스터디했지만, 오프라인으로 진행한 스터디는 처음이었다. 스터디를 통해 React-Native책을 완독할 수 있었고, 재밌고 좋은 사람들과 대면으로 스터디하다보니 면접에 대한 부담이 많이 줄었다. 스터디의 메인이었던 React-Native.. 2023. 12. 24.
컴포넌트 상태 변이 흐름에 대한 고찰 목차 도대체 어디서 상태 변이시키는거야? 상태 변이 흐름 개선하기 상태 변이 일원화 상태 돌려놓기 부적절한 UX 마무리 도대체 어디서 상태 변이시키는거야? 컴포넌트 상태가 복잡해져서 예상치 못한 변이 흐름이 생기지 않을까 고민하셨나요? 아니면 의도하지 않은 상태로 변이되어서 당황하신 적이 있으신가요? 컴포넌트에 기능이 많아지고 비즈니스 로직이 복잡해질 수록 더 많은 상태가 생기게 됩니다. 특히 api 호출에 의존되는 경우 예외처리까지 고려해야합니다. 생각만해도 사이드 이펙트로 화면에 이상한 값이 보여질까 걱정되는데 여러분들은 어떻게 상태 변이 흐름을 관리하시나요? 상태 변이 흐름 개선하기 먼저 상황을 가정해보겠습니다. 화면은 필터링, 상품의 목록과 페이지네이션으로 이루어져있습니다. 첫 화면이 렌더링이 완.. 2023. 12. 9.
리액트의 렌더링이란? 목차 우리가 말하는 렌더링 리액트가 말하는 렌더링 Trigger Render Commit 리액트의 화면 그리기 렌더링을 알면 보이는 것들 우리가 말하는 렌더링 프론트 공부를 하다보면 렌더링이라는 어휘를 자주 접하게 됩니다. 이러한 렌더링은 화면을 그리는 작업을 의미합니다. 그 중 브라우저에서 렌더링은 브라우저 렌더링 엔진이 렌더 트리를 만들어 paint하는 것을 의미합니다. 하지만 많은 인기를 얻고 있는 React는 조금 다른 의미로 렌더링을 소개합니다. 리액트가 말하는 렌더링 리액트에서 렌더링은 컴포넌트를 호출하는 것입니다. 하지만 컴포넌트를 호출한다고 무조건 화면을 그린다는 것은 아닙니다. 리액트가 화면을 그리는 과정의 일부가 렌더링이라고 생각하는 것이 이해하기 쉬울 것이라고 생각합니다. 왜냐하면 공.. 2023. 2. 28.
728x90