오늘은 섹션2에서 배웠던
큼지막한 용어들을 기술면접식으로
정리하여 기술면접을 대비하였다.
꼬리질문에 대해서는 더 깊게공부하고
대비를 해야할 것 같다.
프로미스
기존에 사용했던 비동기처리방법중 하나인 콜백함수를 사용하여
처리를 하다보면 콜백지옥에 빠져버려 가독성이 매우 떨어져버린다.
Promise는 비동기 작업이완료 된 후에 다음 작업을 연결시켜 진행하기 위해
성공,실패를 리턴하고 결과값을 전달받을 수 있다.
순수함수, 불변성, 사이트이펙트
순수함수 : 함수형 프로그래밍에서 오직 함수의 입력만이
함수의 결과에 영향을 주는 함수를 의미한다. 또한 사이드 이펙트가 없어야한다.
즉, 순수함수는 함수 body 내에 있는 코드만 점검하면 되기 때문에
간결하게 코드를 작성하고 해석가능
외부변수를 변경해야만 사이드이펙트인가요??
사이드이펙트의 예시?
사이드 이펙트 : 외부 변수를 참조하거나, 변경하는 모든 종류의 코드를 의미합니다.
사이드 이펙트의 예시 : Ajax, setTimeout, console.log 등 호출이 사이드 이펙트
함수 내부를 벗어나 외부와 상호작용을 하기 때문
Ajax,setTimeout은 브라우저 API를 사용하고, console.log는 브라우저의 콘솔창에 문자열을 출력하기 때문
순수함수의 개념이 중요한이유 : 사이드 이펙트를 줄이고 모듈화 수준을 높이는 프로그래밍 패러다임인 '함수형 프로그래밍'에서
순수함수는 평가 시점이 무관하다는 특징 때문에 효율적인 로직을 구성할 수 있다.
데이터 불변성 : 함수의 전달인자로 참조 자료형이 전달되는 경우,
의도치 않게 해당 객체 자체를 바꾸는 사이트이펙트를 만들 수도 있고,
이는 해당 데이터의 불변성을 손상시킴.
따라서 불변성을 보장하는 메서드인 map, filter, reduce를 사용권장
React
프로퍼티(props) : 상위 컴포넌트가 하위 컴포넌트에게 값을 전달할때 사용된다. (단방향 데이터 흐름)
프로퍼티는 수정할 수 없는 특징이 있다. (자식입장에선 읽기 전용인 데이터)
state : props와 다르게 컴포넌트 내부에서 변경 가능한 데이터를 관리할 때 사용
값을 저장하거나 변경할 수 있는 객체로, 보통 이벤트와 함께 사용
key속성 : 사용목적은 요소의 리스트를 만들 때, react에서 컴포넌트를 렌더링 했을때
어떤 아이템이 변경(추가,변경,삭제 등)되었는지 빠르게 감지하기 위해 사용한다.
의존성 배열 : useEffect 훅에 입력하는 두번째 매개변수.
의존성 배열이 없으면 컴포넌트가 렌더링 될때마다 호출됨.
의존성배열이 빈값으로 있으면 첫번째 렌더링 후에만 호출.
의존성 배열에 값이 들어가있으면 첫번째 렌더링 후에 호출되고,
이후에 배열에 들어간 값이 변경될때마다 호출.
HTTP / 네트워크
SSR : 서버쪽에서 렌더링 준비를 끝마친 상태로 클라이언트에 전달하는 방식
CSR : 렌더링이 클라이언트에서 일어남.
서버가 요청을 받으면 클라이언트에게 HTML,JS를 함께 보내준다. 클라이언트는 그것을 받아 렌더링시작.
차이점: 첫 웹페이지 로딩시간 SSR이 CSR보다 빠름.
나머지 로딩시간은 CSR이 SSR보다 빠름.
SEO대응 : SSR이 서버사이드에서 컴파일되어 클라이언트로 넘어오기 때문에 용이
GET, POST 차이
GET은 클라이언트가 서버로 데이터를 요청하기 위해 사용되는 메서드이다.
POST는 클라이언트가 서버로 데이터를 전송해 리소스를 추가하거나 생성하기 위해 사용되는 메서드.
GET과는 다르게 HTTP 패킷의 헤더에 Body의 콘텐츠 타입을 명시하는 Content-Type 헤더 필드를 포함하고,
HTTP 패킷의 Body에는 데이터를 담아 서버로 전송
웹서버 기초
HTTP 메세지 구조 : HTTP 메세지란 클라이언트와 서버 사이에서 데이터가 교환되는 방식
메세지는 두가지 유형이 있다- 요청, 응답
start line-
요청이나 응답 상태를 나타낸다.
항상 첫번째 줄
HTTP headers -
요청을 지정하거나 본문을 설명하는 헤더의 집합
body -
요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서
요청과 응답의 유형에 따라 선택적으로 사용
SOP, CORS :
SOP : 웹 브라우저에 내장된 보안정책으로, 동일한 origin을 보유한 리소스만 접근 가능하도록 제한하는것.
CORS : 예로 API서버와 웹사이트간 데이터를 주고받을 때, 도메인이 달라서 SOP정책에 의해 차단되면 데이터를 읽을 수 없다.
따라서 CORS를 통해 다른 origin을 가진 리소스의 자원을 read할 수 있다.
첫 질문의 답변은 이런식으로 답변을하고,
그 다음의 깊이까지는 꼬리질문을 예상하고 준비를 해야할 것 같다.