2022-01-10 TIL

Fact

  • 가장 짧은 문자 거리, 문자열 압축 문제를 풀었다.
  • 바닐라 자바스크립트로 TODO 리스트를 만드는 법을 공부했다.

Feelings

  • 매일 리액트만 공부하고 리액트로만 프로젝트를 하다 보니, 순수 자바스크립트로 코드를 짜려고 하니 멘붕이왔다. 프로그래머스에 있는 취업 과제들을 다 구현해 보고 싶은데, 꼭 이번 달 안에 해보고 싶다.
  • 매일 규칙적으로 알고리즘 2문제를 푸니 습관화된 것 같다… 안 풀면 허전하다

Findings

  • SSR(Server-Side Rendering) 5년 전까지만 해도 JSP PHP ASP를 많이 사용했다. 이것들은 서버에서 HTML을 만들어서 클라이언트에 넘겨주는 것, 즉 Server Side Rendering이다. 따라서 클라이언트에서는 굳이 데이터를 깉은 단계까지 정교하게 관리할 필요가 없었다.
  • CSR(Client-Side Rendering) Javascript가 발전하면서 아예 클라이언트에서 모든 렌러딩을 처리하려는 시도가 계속되었고, 그렇게 React Vue Anfular 같은 프레임워크와 라이브러리가 탄생했다. 여기서 클라이언트(브라우저)가 렌더링을 하기 위해선, 렌더링에 필요한 상태를 정교하게 관리해야 한다. 그래서 Redux같은 상태관리 라이브러리가 생겨났다.
  • 컴포넌트 Angular가 CSR의 시작이였다면, React는 컴포넌트 기반 개발의 시작이었다. 그리고 Angular와 React의 장점을 모두 수용한 Vue가 나왔다.

여기서 중요한점은 현 시점의 웹 어플리케이션은 컴포넌트 단위로 설계되고 개발된다는 것이다. 그리고 컴포넌트마다 컴포넌트를 렌더링할 때 필요한 상태를 관리하게 되었으며, Proxy 혹은 Observer Pattern 등을 이용하여 이를 구현한다.

Future Action

  • 책도 읽어야하는데, 시간이 너무 부족해 ~