개발일지 - 4일차

김현수·2021년 9월 24일
1

개발일지

목록 보기
3/15

오늘은 라우팅과 리덕스에 대해 배웠다. 강의가 다음 강의로 넘어 가면서 새로운 개념이 "안녕? 나 새로운 개념. 전 것보다 어렵고 많아 하하"인사하며 등장해서 정말 오랜만에 머리가 터지는 줄 알았다
우선 라우팅은 싱글페이지어플리케이션(SPA)에서 페이지를 넘나드는 방법이다. url파라미터를 통해 넘나 드는 것이 가능하다. Switch컴포넌트를 활용해 사용자가 요상한 페이지가 접속했을 때의 처리도 배웠다. 또한 부모 자식 컴포넌트 사이에 데이터를 주고 받아 원하는 기능을 구현하기도 했다. 리액트에서 데이터는 단방향이라 부모에서 자식으로 밖에 데이터를 줄 수 없다. 이는 자식의자식의자식의자식의... 등으로 엄청 새끼를 쳤거나 형제간의 데이터를 주고 받을 때 매우 곤란한 데이터 전달 방식인데 이것을 해결해줄 영웅이 리덕스이다
리덕스는 전역 상태 관리 라이브러리로써 데이터를 공동으로 저장해주는 저장소 역할과 동시에 그것을 수정해주는 역할까지 수행한다. 정확히는 스토어와 리듀서로 나뉘어서 말이다. 때문에 매우 호감을 느끼고 리덕스를 배웠으나 배우면 배울 수록 "안녕? 나 새로운 개념 ㅎ?이 넘쳐나서 머리가 터지는 줄만 알았다. 터지고 흐르는 머리를 부여 잡으며 나름 리덕스에 대한 개념을 정리하긴 했다
우선 리덕스는 모듈이라는 것 안에 다 때려 박는다(옵션 제외) 그 모듈 안에는 크게는 스테이트(정보)와 액션과 액션 생성 함수 리듀서가 있다. 정보를 사용하기 위해선 useSelector() 수정하기 위해선 useDispatch()를 사용해야한다. useDispatch()에는 액션 생성 함수를 넣는데 외부에서 액션 생성함수를 사용하면 그 함수의 리턴값이 action으로 되어 자동으로 리듀서의 파라미터로 간다(맞는진 모르겠는데 그냥 이렇게 외웠다)그리고 최종적으로 값을 수정해 주는 것은 리듀서이다.
길고 두서 없이 썼지만 이도 많은 과정을 생략한 것이다. 누락된 것도 있을 것이다. 이 리듀서라는 거대한 괴물은 리액트의 필수 짱친 같아 보이는데 나는 앞으로 빠른 시간 내에 이것을 정복할 것이다.

profile
사용자에게 편안함을 주는 개발자가 되고 싶습니다

0개의 댓글