본문 바로가기

분류 전체보기

(22)
콜백함수란 무엇인가요? 📕 오늘의 질문 콜백함수란 무엇인가요? 함수에 파라미터로 들어가는 함수를 말하며, 순차적으로 코드를 진행하고 싶을 때 사용합니다. //예시 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 처리, 이벤트 기반 노드는 싱글 스레드로 작동하여 오래 걸리는 작업을 기..
[TIL] 실전주차, 로드밸런서와 HTTPS의 늪 📍오늘 한 일 1. 깃허브 액션과 빈스톡 사용하여 배포 시 발생하는 에러 해결 - 잘못된 경로 설정으로 빈스톡 배포 부분에서 zip파일을 못 찾는 에러를 해결했다. - 무사히 샘플 코드로 CICD 파이프라인 구축을 성공했다. 2. 로드밸런서 및 HTTPS 관련 공부 3. 빈스톡에서 로드밸런서 리스터 설정해주기 📗 오늘의 어려움 1. 무사히 샘플 코드로 CICD 파이프라인 구축을 성공했지만, 우리 앱으로 배포를 하는데 실패. Environment health has transitioned from Pending to Severe. ELB processes are not healthy on all instances. None of the instances are sending data. 50.0 % of t..
코딩 3개월 차의 첫 회고 ⭐️ 부트캠프를 통해 코딩 공부를 시작한지도 어느덧 3개월 차에 접어들었다. 그전에도 독학으로 공부를 하긴 했지만, 실제로 코드를 짜보기 시작한 것은 항해를 통해서니 항해의 시작이 나의 개발 여정의 시작이라고 봐도 무방할 것 같다. 지금 시점에서 내가 절실하게 느끼는 점이 있다. 무엇 하나 허투루 공부하지 말 것. 3개월을 무언가를 터득하기에 굉장히 짧은 시간이다. 그렇기 때문에 부트캠프에서 다루는 내용을 전부 완벽하게 이해하지 못할 거란 건 예측했다. 하지만 주 단위로 반복되는 스프린트, 계속해서 이어지는 팀 단위 협업으로 인해 내가 하는 일에 대해 제대로 공부를 하기 보다는 프로젝트를 쳐내는데 급급했던 것 같다. 강의나 구글링으로 찾아낸 내용을 필사적으로 적용해 보고, 안 되면 그때 그때 나타나는 에러로 ..