220211 TIL

Dzeko·2022년 2월 10일
0

개발일지

목록 보기
28/112
post-thumbnail

Today I Learned

1. 리액트 :

돔(DOM) : html 단위 하나하나를 객체로 생각하는 모델 트리구조로 되어있다.
가상돔은 메모리 상에서 돌아가는 가짜 DOM입니다.
가상돔의 동작 방식: 기존 DOM과 어떤 행동 후 새로 그린 DOM(가상 돔에 올라갔다고 표현)을 비교해서 정말 바뀐 부분만 갈아끼워준다 → 돔 업데이트 처리가 간결

컴포넌트의 생명주기(Life-Cylce) : 컴포넌트가 렌더링을 준비하는 순간부터, 페이지에서 사라질 때까지
https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

  • 컴포넌트는 생성되고 → 수정(업데이트)되고 → 사라진다.
  • 생성은 처음으로 컴포넌트를 불러오는 단계.
  • 수정(업데이트)는 사용자의 행동(클릭, 데이터 입력 등)으로 데이터가 바뀌거나, 부모 컴포넌트가 렌더링할 때 업데이트 된다.
    • props가 바뀔 때
    • state가 바뀔 때
    • 부모 컴포넌트가 업데이트 되었을 때(=리렌더링했을 때)
    • 또는, 강제로 업데이트 했을 경우 (forceUpdate()를 통해 강제로 컴포넌트를 업데이트할 수 있다.)
  • 제거는 페이지를 이동하거나, 사용자의 행동(삭제 버튼 클릭 등)으로 인해 컴포넌트가 화면에서 사라지는 단계.



2. 모던 자바스크립트 Deep Dive :

    7장 연산자

산술 연산자: 수학적 계산을 수행해 새로운 값을 만든다. 불가능한 경우, NaN을 반환

  • 이항 산술 연산자 : +, -, *, /, %
  • 단항 산술 연산자 : ++, --, + , -
  • 문자열 연결 연산자 : +

할당 연산자 : 좌항의 변수에 값을 할당 (=, +=, -=, *=, /=, %=)

비교 연산자 : 좌항과 우항의 피연산자를 비교한 후 결과를 불리언으로 반환한다.

  • 동등/일치 비교 연산자 : ==, ===, !=, !== (NaN은 자신과 일치하지 않는 유일한 값, 숫자가 NaN인지 조사하려면 Number.isNaN(n)을 사용)
  • 대소 관계 비교 연산자 : >, <, >=, <=

삼항 조건 연산자 : 첫 번째 피연산자가 true로 평가되면 두 번째 피연산자를 반환하고, 첫 번째 피연산자가 false로 평가되면 세 번째 피연산자를 반환한다. if, else문은 값처럼 사용할 수 없지만 삼항 조건 연산자는 값으로 사용할 수 있다.

논리 연산자 : 언제나 불리언 값을 반환. (||(논리합), &&(논리곱), !(부정))

typeof 연산자 : 데이터 타입을 문자열로 반환한다. null타입을 확인할 떄는 ===를 사용




3. CS 스터디 :

    1장

  • 비트
    • 기호가 들어갈 상자 → 자연어 : 문자(character) → 컴퓨터 : 비트(bit) / binary(2진법) + digit(10진수)
      (컴퓨터에서 왜 비트를 사용하는가 : 2장 내용 / 적은 비용, 편리하게 기호를 담을 수 있다)
    • 비트 : 2진법 사용 참고 : 2진법에서의 기호 : 점, 선 / on, off / 낮, 밤 ...(기호는 무엇이든 관계x, 그래서 문맥이 중요하다)
  • 논리 연산
    • 다른 비트들이 표현하는 내용으로부터 새로운 비트를 만들어내는 동작
    • 비트 사용법 중 하나 : 참true, 거짓false로 답을 표현 (한 비트로 표현 가능)
    • 밖에 비가 내리고 있거나 춥다면 코트를 입어라
      (밖에 비 OR 춥다) AND 코트 입기
    • 눈이 오고, 학교에 가는 날이 아니라면 스키를 타러 가라
      (눈 AND NOT 학교 가는 날) AND 스키 타러 가기
    • 불리언 대수(boolean algebra) : 비트에 사용할 수 있는 연산 규칙의 집합
      • NOT, AND, OR, XOR(exclusive OR)
      • 결합 법칙, 교환 법칙, 분배 법칙 적용 가능
        • 결합 (a AND b) AND c = a AND (b AND c)
        • 교환 a AND b = b AND a
        • 분배 a AND (b OR c) = (a AND b) OR (a AND c)
      • 참고 : a XOR b = (a OR b) AND (NOT(a AND b))
    • 드모르간의 법칙 a AND b = NOT(NOT a OR NOT b)
      • NOT을 사용하면 AND와 OR이 서로를 대신할 수 있다
      • 입력을 원하는 형태로 얻지 못할 때 사용 : 입력으로 춥다 필요한데 입력이 NOT 춥다
      • 연산을 줄여 비용을 최소화, 연산을 연쇄적으로 사용하면 계산이 느려진다





To Do

  1. 이코테: 구현(2/2)

  2. Codewars

  3. 完) BOJ 오늘의 문제 - 1259

  4. 完) solved class 2 - 1085

  5. 完) Programmers level 1 - 42862

  6. 파이썬 알고리즘 인터뷰 DP






Today's Short Report

드디어 리액트를 시작했다. 갑자기 많은 할일이 쏟아진 것 같지만 재밌고 기대된다. DP 또 못했다. 하..ㅋㅋㅋ 리액트 하는 동안에는 할 수 없을 것 같다. 날 잡고 제대로 해야겠다.
profile
Hound on the Code

0개의 댓글