본문 바로가기

기술면접 준비

(8)
콜백함수란 무엇인가요? 📕 오늘의 질문 콜백함수란 무엇인가요? 함수에 파라미터로 들어가는 함수를 말하며, 순차적으로 코드를 진행하고 싶을 때 사용합니다. //예시 1. addEventListener addEventListener('click', function(){ }) //예시2. setTimeout setTimeout(function(){ }, 1000) 예시에서 보실 수 있든, 함수로 불러와지는 함수 - 함수에 파라미터로 들어가는 함수를 콜백함수라고 합니다. 더 쉽게 이해하자면 콜백함수의 이름을 떠올리시면 됩니다! "이따 전화할게!" 친구에게 조금 있다가 전화할게라고 말하는 것처럼, 콜백함수는 다른 함수(겉에 감싸고 있는 함수가) 실행되고 난 뒤에 실행됩니다. 참고자료 코딩애플, 콜백함수가 뭔지 한국어로 쉽게 설명하는 영..
스택(Stack)과 큐(Queue)란 무엇일까요? 📕 오늘의 질문 스택과 큐에 대해 설명해주세요. 스택(Stack)이란? 스택이란 객체가 한 방향으로 삽입되고 삭제되는 선형 데이터 구조입니다. LIFO (Last In First Out) 방식을 사용하여, 마지막으로 들어온 객체가 가장 먼저 팝 됩니다. 팝은 스택 내 객체의 삭제를 말하며, 스택에 객체를 삽입하는 것은 푸시라고 말합니다. 스택은 한 번에 한 가지 일만 처리할 수 있습니다. → 그렇기 때문에 자바스크립트를 single threaded 언어라고 부릅니다. 위 그림처럼 스택은 LIFO 방식대로 하나씩 객체를 처리하게 됩니다. 그렇다면 setTimeout과 같이 시간이 걸리는 함수가 포함되어 있다면 어떻게 될까요? setTimeout에 설정된 시간을 모두 기다린 뒤 다음 객체를 처리할까요? 그렇..
Node.js가 작동하는 방식: 단일 스레드(Single Thread), 비동기(Asynchronous) 📕 오늘의 질문 Single Threaded Async가 무슨 뜻인지 아시나요? 단일 스레드에 대해서도 공부해보고, 비동기에 대해서도 공부해봤지만 'Single Threaded Async'는 본 적이 없어서 조금 당황한 질문입니다. 실제로 구글링을 하거나 유튜브 검색을 했을 때에도 이 정확한 용어는 찾지 못했기 때문에, 추측으로 단일 스레드와 비동기에 대해 설명하는 질문이라고 가정하고 개념을 정리해봤습니다. 아마 Node.js가 작동하는 방식을 설명할 수 있는 지를 보기 위한 질문인 것으로 생각됩니다 (부트캠프에서 주특기로 Node.js를 선택했기 때문에 받은 질문도 이에 특정된 질문인 것을 염두했을 때의 생각입니다). 자, 그러면 어서 단일 스레드와 비동기에 대해 알아보도록 하겠습니다. 단일 스레드(S..
REST API란?🧐 REST API 개념 알아보기 📕 오늘의 질문 REST API에 대해 설명해주세요. REST API - 정말 많이 들어보셨을 거라 생각합니다. REST API 또는 RESTful API라고 불리는 이것은 REST 아키텍처 스타일에 부합하는 어플리케이션 프로그래밍 인터페이스를 말합니다. REST란? REpresentational State Tranfer의 약자입니다. 이는 컴퓨터 과학자인 로이 필딩에 의해 적립되었습니다. Representational state transfer, 한국어로는 '표현 상태 전송'으로 이해할 수 있겠습니다. 잠깐, API란 무엇일까요? 쉽게 말하자면 API란 정보제공자와 정보이용자 간의 약속입니다. API는 어플리케이션 소프트웨어를 구축하고 통합하는데 사용되는 정의와 프로토콜의 모음입니다. 다시 REST로 ..
클로저를 사용하면 외부의 함수에 접근할 수 있다고? 📕 오늘의 질문 클로저란? 외부 함수에 접근할 수 있는 내부 함수를 말합니다. MDN은 클로저를 함수와 함수가 선언된 어휘적 환경의 조합이라고 정의합니다. 하지만 제게 가장 와닿았던 정의는 제가 참조한 블로그에서 봤던 정의였습니다. "자신이 선언될 당시의 환경을 기억하는 함수입니다." > 클로저란 함수가 자신이 선언될 당시의 환경을 기억하여, 내부함수가 외부함수의 맥락(contex)에 접근할 수 있는 것을 의미합니다. function init() { var name = "Mozilla"; // name은 init에 의해 생성된 지역 변수이다. function displayName() { // displayName() 은 내부 함수이며, 클로저다. alert(name); // 부모 함수에서 선언된 변수를 ..
로그인 관련 필수 지식, JWT의 기본개념 📕 오늘의 질문 JWT에 대해 설명해보세요 오늘 질문에 대한 답을 살펴보기 전에, 여러분께 드리고 싶은 질문이 있습니다. 사이트에 로그인을 했을 때 유저의 로그인 상태는 어떻게 유지될까요? 이 질문에 대한 답을 알고 계시다면 이미 JWT가 무엇인지 알고 계실 거라 믿습니다. 답을 아직 모르신다면! 어서 이 포스팅을 통해 JWT가 무엇인지 그리고 도대체 왜 갑자기 로그인에 대한 얘기가 나왔는지에 대해 알아보도록 합시다. JWT란 JSON Web Token을 의미합니다. JWT는 인가(Authorization)를 위한 기술로, 쉽게 말해 사이트에서 로그인을 유지해서 '나만이' 할 수 있는 행동에 권한을 주는 데 사용되는 기술입니다. 토큰은 암호화된 3가지 데이터를 가지고 있습니다. JWT의 구조는 heade..
한끗차인 것 같지만 다른 URI, URL, URN의 차이점 살펴보기 📕 오늘의 질문: URI와 URL의 차이는 무엇입니까? URI: Uniform Resource Identifier 과거 URI는 위치와 이름을 표시하는 두 가지로 나뉘었습니다. 그렇기 때문에 위 그림과 같이 URI는 URL과 URN을 품고 있는 개념이라고 볼 수 있습니다. URL: Uniform Resource Location, 통합 자원 식별자 아마 가장 많이 들어본 용어일 거라고 생각합니다. 그렇다면 URL는 무엇일까요? 흔히 웹 주소라고 불리기도 하는 URL는 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약입니다. URL는 자원이 실제로 존재하는 위치를 가리킵니다. 직접적으로 리소스를 요청해야만 URL이라고 할 수 있는 것이죠. URN: Uniform Resource Name URN..
Node.js를 사용해야 하는 이유 항해99를 마치고 취업 준비 스터디인 스프린터스에 신청했습니다. 앞으로 2주 간은 기술면접 준비와 이력서 수정 등에 집중하며 보낼 예정입니다. 그래서 기술면접을 준비하는 김에 더 쉽게 기억할 수 있도록! 그리고 기술면접을 준비하는 다른 분들에게 조금이라도 도움이 될 수 있도록 블로그에 기록으로 남겨보려고 합니다. 📕 오늘의 질문 Node.js를 사용해야 하는 이유를 설명해보세요. 노드를 사용해야 하는 이유, 즉 노드의 장점을 주제로 정리하겠습니다. 먼저 간단히 노드JS의 특징을 짚어보겠습니다. 노드JS의 특징 Non-blocking I/O Event-driven Data-intensive I/O intensive 1) 비동기 I/O 처리, 이벤트 기반 노드는 싱글 스레드로 작동하여 오래 걸리는 작업을 기..