Today I Learned
1. 리액트 :
컴포넌트(Compenent) :
클래스형과 함수형이 있다. 리액트가 레고라면, 컴포넌트는 레고블록이다. 컴포넌트를 잘 이해하고 쓰려면 뷰를 잘 조각낼 줄 알아야 한다.
ex)
1. <header/>
2. <container/>
a. <imagebanner/>
b. <contents1/>
3. <footer/>
이렇게 있다면 크게 세 개의 컴포넌트가 있고, container컴포넌트는 두개의 컴포넌트로 이루어져 있다.
컴포넌트는 웹의 조각이고, 이 조각들을 모아서 웹에 뿌려준다.
State
state는 컴포넌트가 가지고 있는 데이터
Props
props는 컴포넌트가 부모 컴포넌트로부터 받아온 데이터
양방향 바인딩 :
부모 컴포넌트나 자식 컴포넌트가 변경되면, 서로 영향을 끼쳐 바로 변경되게 할 수 있다. 대표적으로 Vue.js가 양방향이다. 리액트는 단방향 바인딩이다.
양방향의 단점: 변화가 생기면 돔 객체 전체를 랜더링하거나 데이터를 바꾸므로 성능이 저하될 수 있다.
단방향의 단점: 변화를 감지하고 화면을 업데이트 하는 코드를 매번 작성해야한다.
2. 모던 자바스크립트 Deep Dive :
8장 제어문
블록문
0개 이상의 문을 중괄호로 묶은것. js는 하나의 실행 단위로 취급한다. 일반적으로 제어문이나 함수를 정의할때 사용. 블록문은 자체 종결성을 갖기 때문에 세미콜론을 붙이지 않는다.
조건문
- if ..else 문 : 논리적 참 또는 거짓에 따라 실행할 블록을 결정한다.
- switch 문 : 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮긴다. 일치하는 case가 없다면 default문으로 이동한다. 원하는 case를 얻었다면 break를 걸어줘야한다. 그렇지 않으면 default case로 이동한다.
반복문
- for 문 : 조건이 거짓으로 평가될 때까지 블록을 반복 실행
- while 문 : 조건식의 결과가 참이면 블록을 계속해서 반복 실행
- continue : 반복문의 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다. 반복문을 탈출하지 않는다.
- break : continue와 다르게 반복문을 탈출한다.
3. CS 스터디 :
1장 컴퓨터 내부의 언어 체계 (p.56 ~ p.68)
정수로 비트를 표현하는 방법
- 양의 정수
- 10진수
- 2진수
- 음수
- 1의 보수: 양수의 모든 비트를 뒤집는다
- 2의 보수: 비트 패턴을 찾아 -1을 표현 가장 널리 쓰인다
To Do
1. 이코테: 구현(2/2)
2. 完) Codewars - two fighters one winner
3. BOJ 오늘의 문제
4. 完) solved class 2 - 4153
5. 完) Programmers level 1 - 12906
Today's Short Report
주어진 과제와 공부할 양이 너무 많아서 다른 것을 줄여야하나 고민하고 있다.
잠을 줄이고 부가적인 나만의 과제도 해내고 싶지만 쉽지 않다.