TIL35. 7월 11일 TIL

imloopy·2022년 7월 11일
0

Today I Learned

목록 보기
41/56

오늘 배운 것들

  • 알고리즘
  • React
  • strapi

알고리즘 문제 풀이

알고리즘 문제 풀이
해설 보러가기

리액트

리액트에 대하여 말하면서 배워요 스터디를 했다. 기존에 했던 것이지만, 그래도 리액트 부분은 어려웠다.

특히 어려웠던 질문들

  • [단방향으로 데이터 흐름을 제어하는 이유]
    • 해당 질문에 대해서 나는, 리액트는 컴포넌트를 함수를 이용하여 호출하고, 렌더링시 해당 함수를 다시 호출하는, 함수형 패러다임을 따르고 있기 때문에, 위에서 아래 방향의 단방향 데이터 흐름이 함수 호출 과정과 흐름이 동일하다고 이해하기 쉽다고 생각했다. 이게 맞는지 맞지 않는지 모르겠다.
    • 다음은 공식 홈페이지의 설명이다.
  • [**리액트의 내부 작동 원리를 재조정 (Reconciliation) 개념과 함께 설명하세요.]**
    • 재조정 과정이란? 이전에 반환된 virtual DOM 트리와 현재 반환된 virtual DOM 트리를 비교하여 변화가 있는 부분을 찾아 DOM 업데이트를 하는 과정
    • 이때 두 트리를 비교하는 알고리즘으로 diffing 알고리즘을 사용한다.

다음 자료는 그냥 궁금해서 찾아봤다.

  • 리액트 fiber architecture

React Fiber Architecture

  • 재조정 알고리즘
    • 재조정 알고리즘은 구현상의 세부사항이라는 것을 명심하세요. React는 항상 전체 앱을 재렌더링할 수도 있지만, 최종적으로 출력되는 결과는 항상 같을 것입니다. 좀 더 정확히 말하자면, 여기서 말하는 재렌더링은 모든 컴포넌트의 render
      를 호출하는 것이지 React가 언마운트시키고 다시 마운트하는 것은 아닙니다. 즉, 앞서 설명했던 규칙에 따라 렌더링 전후에 변경된 부분만을 적용할 것입니다.

Strapi 트러블 슈팅

QuizPack 만들 때 Tags를 relation 해주어야 하는 이슈

  • lifecycleHook, afterCreate 로 시도 ⇒ 실패 , 모델 별 처리의 한계
  • controller의 명령을 통해 해결 시도 ⇒ 실패
  • API 요청시 relation 모델객체의 소문자명으로, relation 걸어줄 id만 같이 보내준다. 해결
    {
    	"title" : "title명",
    	"description": "description --",
    	"tags" : 1 | [1,2,3]	 // 하나일 경우 number, 여러개일 경우 배열로
    }
  • 출처
  • 트러블 슈팅 하고 나니까, 해당 내용은 공식 문서에 있었다. -_-

REST API - Strapi Developer Docs

[ 변경 사항 ]

  • profile 모델 삭제, user로 통합
    • user password, token 등 민감 정보문제 때문에 profile과 user 객체 두 가지로 나누고자 하였으나, password field가 private field로 설정되어 외부에 노출되지 않음

느낀 점

  • strapi의 도큐멘테이션은 참 불친절한 것 같다… ㅜㅜ 도대체 날려먹은 시간이 얼마냐..

내일 볼 것

출처

0개의 댓글