코드스테이츠 부트캠프 프론트엔드 44기
Section 2 회고 (Section 2 마지막 날)
Promise
의 기능과 필요한 이유에 대해서 설명해주세요.Promise는 비동기 처리를 할 때 사용하는 object를 말합니다.
JavaScript를 비롯한 대부분의 프로그래밍 언어는 싱글 스레드 언어이기 때문에 두 가지 일을 동시에 수행하는 게 불가능합니다. 이때 비동기를 사용함으로써 여러 개의 일을 동시에 수행하는 것처럼 보이게 하는 게 가능합니다.
Promise를 안 쓰면 콜백 지옥이라는 현상이 벌어지는데요, 비동기 함수의 순서를 지정할 때 코드가 피라미드 모양이 되어서 상당히 가독성이 안 좋아집니다. 이때 Promise를 사용하면 콜백 지옥을 예방할 수 있습니다.
순수함수는 함수 중에서도 3가지 조건을 모두 충족하는 함수를 말합니다.
대표적으로 함수를 돌렸는데 함수 바깥에 있는 변수가 변경이 되었다, 이것을 Side Effect라고 합니다.
Key는 리스트의 요소에 필수적으로 들어가는 유니크한 값을 말합니다.
Key 속성이 존재하는 이유는 렌더링 최적화 때문입니다. 리액트가 리스트를 렌더링 했을 때 어떤 요소에 변동이 있었는지 알아내기 위해 사용합니다. 변함 없는 요소들까지 한꺼번에 렌더링할 경우 그만큼 속도가 느려지기 때문입니다.
일단 useEffect는 렌더링 최적화를 위해서 사용됩니다. useEffect의 2번째 인자로 종속성 배열을 할당하고, 그 배열 안에 있는 변수값이 변경이 되었을 때만 useEffect를 실행합니다. 이렇게 함으로써 하나의 컴포넌트가 업데이트되었을 때 가만히 있던 다른 모든 컴포넌트들이 업데이트되는 것을 방지합니다.
SSR은 사용자에게 먼저 HTML부터 보여주고 JavaScript를 바로 그 뒤에 로드하는 것을 말합니다.
CSR은 HTML과 JavaScript 로딩이 다 완료되면 그제서야 사용자한테 보여주는 것을 말합니다.
이러한 특징 때문에 정적인 사이트에는 SSR이 잘 쓰이고, Web-App 같은 동적이고 상호작용이 많은 사이트에서는 CSR이 잘 쓰입니다.
GET은 데이터를 받아올 때 사용하고, POST는 데이터를 새로 추가할 때 사용합니다.
HTTP 메시지는 클라이언트랑 서버 간의 통신 시스템을 말합니다. 여기서 클라이언트가 서버한테 보내는 걸 요청(Request)이라고 하고, 이거에 대해 서버가 클라이언트한테 답장하는 거를 응답(Response)이라고 합니다.
요청과 응답에는 정해진 양식이 있는데요, 대표적으로 Start line, Header, Body가 있습니다.
먼저 SOP라는 것은, 동일한 Origin의 리소스만 공유가 가능하도록 규제된 정책을 말합니다. 이는 타 사이트로의 리소스 유출을 방지하는 보안을 위해서입니다.
그런데 시대가 흐르면서 외부에서 리소스를 요청해야 하는 경우가 많아졌습니다. 그래서 허용된 출처를 서버가 명시해놓으면, 출처가 다를지라도 접속이 가능하도록 만들어놓은 정책이 바로 CORS라고 합니다.
<주의 사항>
이 게시물은 코드스테이츠의 블로깅 과제로 제작되었습니다.
때문에 설명이 온전치 못하거나 글의 완성도가 낮을 수 있습니다.