본문 바로가기
TIL

GDSC Ewha 아침 스터디 TIL 6일차 💛

by 치우치지않는 2022. 3. 31.

오늘 GDSC 아침 스터디 시간에는 1. 생활코딩 리덕스 강의를 듣고 2. 책 총 균 쇠를 읽었습니다! 

1. 리덕스를 사용한 프로그램이 동적으로 실행될 경우 이벤트가 실행되게 되고, 이벤트가 실행되면 이벤트는 store에 있는 dispatch 함수에 객체를 전송합니다. 이때의 전송되는 객체의 이름은 action 입니다. 

객체를 전송받은 dispatch 는 두 가지 역할을 하게 되는데, 

1. reducer 를 호출해 state 값을 바꾸는 것

2. subscribe 를 이용해 render 함수를 호출함으로써 화면을 갱신하는 것 

입니다. 

먼저 dispatch가 render 함수를 호출해 state 값을 바꾸는 방법은 dispatch가 reducer 함수로 현재의 state값과 action 데이터를 전송하면 reducer 가 action을 참조해 새로운 state 값을 만들어 return 하게 되는 방식입니다. 

두 번째로 state 값이 바뀌었을 때 subscribe 가 render 를 호출해 화면을 갱신하는 과정은 먼저 dispatch가 subscribe 에 등록된 컴포넌트를 모두 호출한 후 render 를 호출, render 가 getState 함수를 이용해 변경된 state 값을 가져옴으로써 화면을 갱신하는 것입니다. 

 

리덕스를 사용하면 좋은 이유는, 만일 리덕스를 사용하지 않을 경우 서로 상호작용하는 요소들이 많을수록 작성해야 하는 코드가 많아지고 수정이 힘들기 때문이며 부가적으로 리덕스를 사용할 경우 time traveling 기능을 이용하여 이전에 작성했던 코드와 그에 따른 결과를 구글 개발자 도구를 이용해 볼 수 있기 때문입니다. 

 

리덕스가 없다면 n 개의 상호작용하는 요소들이 있을 때 이들을 연결해주기 위한 n*n 줄의 코드가 필요합니다. 그러나 만약 리덕스를 사용한다면 2 * n 줄의 코드만으로 동일한 작업을 할 수 있어 프로그래밍의 복잡성을 크게 낮출 수 있습니다. 

 

2. 총균쇠 독서를 통해 폴리네시아의 정치 발전 속도의 차이가 지리적, 환경적 요인에 있었음을 알 수 있었고, 폴리네시아에 관한 이야기를 마무리 지으며, 개연성을 가질 뿐인 하나의 모델을 어떻게 논리적으로 전 세계에 적용시킬 수 있을지 궁금해졌습니다. 

오늘의 구절 : "간단히 말해서 폴리네시아는 환경과 관련해서 인간 사회가 다양하게 변화하고 발전하는 모습을 설득력 있게 보여주는 좋은 예라고 하겠다. 그러나 여기서 우리가 알게 되는 것은 폴리네시아가 그랬으므로 그러한 관련성이 있을 수도 있다는 개연성뿐이다. 과연 다른 대륙에서도 그랬을까? 만약 그렇다면 다른 대륙에서 다양화를 야기시킨 환경적 차이에는 어떤 것들이 있었으며 그 결과는 어떠했을까?"

댓글