본문 바로가기

전체 글58

모의 기술 면접 질문 리스트 JavaScript Promise.all()의 기능과 필요한 이유에 대해서 설명해주세요. Promise.all()은 여러 비동기 작업을 동시에 처리하고 순서를 유지하기 위해서 사용합니다. Promise를 요소들로 하는 배열은 전달인자로 받아 이후에 then으로 resolved된 비동기 작업을 처리할 수 있습니다. 공개 API를 쓰는 경우 필요한데, 공개 API에서 한번에 100개의 아이템만 조회할 수 있는 경우 일반적으로 Promise나 async/await을 사용하면 순차적으로 100개의 비동기 작업의 실행과 리턴을 기다려야만 합니다. 동기적인 코드 실행과 실행 시간에 별 차이가 없습니다. 하지만 Promise.all()을 쓰면 컴퓨터와 Node.js가 가능한 만큼 여러 쓰레드를 사용하여 작업할 수 있.. 2022. 6. 21.
[Web server] 기초 2 / Refactor Express 키워드 : Express, 미들웨어 Express Node.js 환경에서의 웹 서버, 또는 API 서버 제작용 프레임워크 Node.js HTTP 모듈과의 차이점 : 미들웨어 추가 가능, 라우터 제공 라우팅 : 메서드와 url(/lower, /upper 등..) 로 분기점을 만드는 것. 클라이언트 요청에 해당하는 endpoint를 따라 서버가 응답하는 방법을 결정하는 것 미들웨어 미들웨어를 사용하는 상황 : POST 요청 등에 포함된 body(payload)를 구조화할 때(쉽게 얻어내고자 할 때) 모든 요청/응답에 CORS 헤더를 붙여야 할 때 모든 요청에 대해 url이나 메서드를 확인할 때 요청 헤더에 사용자 인증 정보가 담겨있는지 확인할 때 (대충 끄적여본 연습용 예시 코드) const express .. 2022. 6. 17.
[Web server] 기초 키워드 : SOP, CORS, Web Server SOP(Same-Origin Policy) : 동일 출처 정책 같은 출처의 리소스만 공유가 가능한 정책. 출처 = 프로토콜 + 호스트 + 포트 (이 중 하나라도 다르면 동일 출처로 보지 않는다) 단, 프로토콜의 기본 포트는 생략 가능 ex) https://codestates.com:443 === https://codestates.com SOP를 사용하는 이유 : 다른 사이트와 리소스 공유를 제한함으로써 개인 정보 등이 타 사이트의 코드에 의해 유출되는 것을 방지. 기본적으로 모든 브라우저에서 SOP를 채택. 다른 출처의 리소스를 받아와야하는 경우에는 CORS를 사용. CORS(Cross-Origin Resource Sharing) : 교차 출처 리소스 공.. 2022. 6. 16.
[React] 클라이언트 Ajax 요청 키워드 : 단방향 데이터 흐름, state 끌어올리기, Effect Hook, Side effect, Pure function ... Effect Hook 들어가기에 앞서... Effect Hook를 공부하기에 앞서, React의 주요 특징을 알아야 한다. 바로, "단방향 데이터 흐름(one-way data flow)"으로, 즉, 리액트에서는 데이터의 흐름이 하향식 단방향으로 이루어진다. (참고- 리액트는 컴포넌트를 우선 만들고, 이를 바탕으로 페이지를 만드는 상향식 제작으로 이루어져야 한다.) 하지만 하위 컴포넌트에서 이벤트 핸들러가 부모의 state를 바꾸어야하는 경우가 생기는데, 이 때 사용하는 개념이 바로, "state 끌어올리기(Lifting state up)"이다. state 끌어올리기(Lif.. 2022. 6. 14.
[HTTP] Web application architecture 키워드 : 클라이언트, 서버, 프로토콜, HTTP, API, URL, URI, IP, Port, 도메인, DNS, Requests, Responses, AJAX, SSR, CSR Web Application Architecture 2 Tier Architecture Clinet : 리소스를 사용하는 앱 Server : 리소스가 존재하고 제공하는 곳 3 Tier Architecture ( = 2 Tier Architecture + 데이터베이스) Clinet : 리소스를 사용하는 앱 Server : 리소스가 존재하고 제공하는 곳 Database : 리소스를 저장하는 공간 클라이언트와 서버의 종류 클라이언트 서버 웹 사이트(웹 앱) 웹 서버 스마트폰 / 태플릿용 앱 파일 서버 데스크탑 앱 메일 서버 데이터베이.. 2022. 6. 12.
[HTTP] REST API 키워드 : REST API, REST 성숙도 모델, Open API, API key REST API API(Application Programming Interface)란? : 클라이언트가 리소스를 활용할 수 있도록 서버가 제공하는 인터페이스 REST(Representational State Transfer) API란 ? API의 대표적인 아키텍처. 웹에서 사용되는 데이터나 리소스를 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식. 즉, 쉽게 이야기하자면 ‘최적의 URI 표현 방식 및 요청&응답 설계 방식’이라고 보면 된다. REST API 기본 원칙 URI는 리소스를 표현해야 한다. 행위에 대한 표현은 지양하고, 리소스를 표현할 수 있는 명사형을 지향한다. 리소스에 대한.. 2022. 6. 10.