이번 주차는 리액트 심화 과정을 배우는 한주였다.
기본적인 props, state 사용법과 상태관리 미들웨어 활용법 등을 익힌것으로
로그인 플로우, 파이어베이스로 데이터 등록, 수정, 삭제
최소 컴포넌트를 작성해서 활용하는법, 무한스크롤 구현하기 정말 여러가지 개념들과 방법들이
마구잡이로 쏟아져 내려온 느낌이다.
지난주까지는 어느정도 내용을 소화해냈었지만 이번주에는 내용을 머리에 담는거 조차도 버거운 시간들이었다.
특히나 로그인 플로우는 처음 구현해 보는 내용이라 이해하는데 시간도 많이 걸렸고 잘 정리가 되지 않는 느낌이다.
처음으로 모든 강의를 수강하지 못한점도 큰 충격이다.
보통은 강의를 보며 중요한 내용들을 한번씩 정리해가면서 이론도 다지고 구현까지 해보는 시간이 있었는데
이번주는 정말 거의 밤을 새가면서 했는데도 불구하고 모든 강의를 보지도 못했고 구현까지 완벽하게 하지 못했다.
그 원인들을 조금 생각해보면
물론 6일동안 이번주차에 완성하고자 하는 앱의 구현을 완벽히 이해하며 완성하는데는 무리가 있다는것은 알았지만 생각보다 더 힘들고 어려웠다.
그래도 같이 고생하는 동기들과 소통하면서 의견을 공유했던것이 나한테 큰 도움이되었고 구현의 어려움이 있을때 많은 도움이 되었다.
이럴 때 일수록 멘탈을 더 잘 잡아야 하겠다는 생각이든다.
이 생각은 내가 동기들과 소통하면서 느끼게된 점이다.
아직 개발자라고 할 수 없지만 현재 항해 동기들은 개발자가 되기위해서 같은 위치해서 비슷한 수준의 공부량을 갖고 발전하고 있다.
진행하면서 많은 동기들이 느끼는 점은 자신이 하고 있는 구현에서 문제가 생겼을때 다른 누군가와 소통하며 그 문제에 대해 의논하고 싶어한다는 것이다. 나 또한 마찬가지 였다.
실제로 이렇게 소통하는 과정중에 내가 먼저 구현한 내용이 있으면 상대방에게 도움을 줄 수 도 있고 역으로 내가 도움을 받을 때도 많이 있었다.
혹여라도 내가 모르는 내용의 부분을 다른 사람이 나에게 같이 소통하기를 요청해도 그 부분에서 같이 고민해 나가는것 자체가 큰 공부가되고 재미도 느껴지는 부분이다.
그래서 나는 개발을 할때 어떤 문제에서든 내 문제라고 생각하고 해당 문제에 대해서 의논할수 있는 사람이되고싶다. 이런 사람이 되기 위해선 물론 마음이 넓고 상대방의 이야기를 잘 들어주는것이 중요한 덕목이 되겠지만
좀더 토론이 나은 방향으로 이어지고 문제를 해결하기 위해서는 코드를 잘 작성하는 능력뿐만아니라 기본적인 CS지식이나 웹 구동의 전반적인 지식들이 많다면 문제의 해결방법에 접근하는 시간을 많이 줄일수 있는것 같다고 생각한다.
내 주변에 이런 사람이 있다면 정말 소통하고 싶고 '이 사람과 일하고 싶다' 라는 마음이 진심으로 나올것 같다.
이번 주차 내용은 인스타와 비슷한 앱을 만드는 과제였는데
점점 구현해나야되는 내용이 많아지고 페이지가 늘어나는 만큼 컴포넌트를 쪼개서 작성해야할 일이 많아진다.
그럼 단순이 Props Drilling으로 하위 컴포넌트로 상태값을 넘기는것은 무리가 있다.
때문에 redux를 사용하여 전역에서 상태를 관리하면 데이터를 주고받는데 훨씬 간단하고 편하게 사용할수가있다. 이런 상태관리 도구로는 contextAPI, mobx, recoil 등등 많은 상태관리 라이브러리가 존재 한다고한다.
상태관리 라이브러리에대한 개념은 이제 어느정도 기본은 잡힌것 같다.
하지만 지난주부터 느낀것은 이런 상태관리 라이브러리를 사용하면서 렌더링과 관련된 문제가 생기면
정확히 문제를 캐치하기 어렵다는것이다.
뭐 답답한 점을 나열하자면 정리가 안되서 다 나열할수 없을 정도다..
특히나 useCallback useMemo와 같은 것들은 어떨게 실제로 유용하게 사용될수있을지 제대로 겪어보지 못해서 뜬구름 잡듯 개념만 이해하였다는게 아쉽다.
여태 사용했던 CSS 관련 라이브러리는 Material UI이다.
그런데 CSS 라이브러리라는 표현이 맞는지 좀 의문이다. 세세하게 컬러부터 크게는 컴포넌트의 UI부터 기능까지 포함된 하나의 완성본을 우리가 라이브러리를 통해 따서 쓸수가 있는데 이런점에서보면
UI 라이브러리가 더 맞을 것 같다는 생각이다.
Material UI 말고 많이 들어본 라이브러리는 Tailwind 라이브러리이다.
써본 사람들 말로는 좀더 직관적이고 사용하기가 쉽다고하는데
이것또한 공부해보고 사용해볼 기회가 없어서 호옥시나.. 다음 실전프로젝트때 사용해볼수있다면 써보고싶다.
무튼 아직 공부할게 너무나도 많고 점점 소화 해야 할 양이 많아서 숙제가 밀린 느낌이다..
부디 나의 멘탈이 잘 견뎌주길 바랄뿐이닷!