본문 바로가기

verdantjuly/Today I Learned

TIL 20231020

728x90

이번 주 목표

자료구조 기본 이해하기 > CS 자료 찾아보기

Node.js 코드 작동 원리 이해하기 > 노드교과서 1장 정독 

오늘 목표

Node.js 코드 작동 원리 이해하기 > 노드교과서 1장 정독 

오늘 한 것

Node.js 코드 작동 원리 이해하기 > 노드교과서 1장 정독 

 

1. Node.js 코드 작동 원리

function run(){
	console.log("3초후 실행")
}
console.log("시작")
setTimeout(run,3000)
console.log("끝")

1. call stack 에 annonymous, setTimeout() 순으로 들어감

2. setTimeout이 실행 됨. 타이머 3초가 백그라운드로 들어감

3. 태스크 큐로 run을 3초 뒤에 run을 보냄

4. setTimeout 호출 스택에서 제거 됨.

5. 전역 컨텍스트 annonymous가 호출 스택에서 제거 됨.

 

* 스택 : LIFO 나중에 들어간 데이터가 먼저 나옵니다.

* 큐 : FIFO 먼저 들어간 데이터가 먼저 나옵니다.

 

* 콜 스택 : 실행 컨텍스트를 저장하는 스택 자료 구조

* 백그라운드 : setTimeout 같은 타이머나 이벤트 리스너들이 대기하는 곳입니다.여러 작업이 동시에 실행될 수 있습니다.

* 태스크 큐 : 콜백이 줄지어 서 있음. 보통 완료된 순서로 줄을 서 있지만 특정한 경우 순서가 바뀜.

* 실행 컨텍스트 : 실행할 코드에 제공할 환경 정보들을 모아놓은 객체

* annonymous : 전역 콘텍스트 global context

 

2. 면접 후기

 

[인성]

자기소개

간호조무사에서 전향하는 이유

간호조무사 경력이 아깝지는 않은지?

인상적이었던 코딩테스트 문제

이전에 사용했던 차트

이전에 사용했던 차트의 장단점 및 개선 방안

몇 번째 면접?
저번 면접 후기

이번 면접 후기

모르는 게 있으면 해결방법

 

[기술]

[답변 못한 것]

자료구조!!!!

스택 

Node.js는 스택일까 큐일까

having 

호이스팅

인덱스

인덱스를 모든 컬럼에 넣으면 어떻게 될까?

NoSQL RDBMS 각각 어떤 물리 저장소를 사용하는지

 

[답변한 것]

객체 지향 프로그래밍이란?

다형성이란?

이벤트루프

호이스팅

프로세스

쓰레드

노드는 싱글스레드 멀티스레드?

JWT

Access Token Refresh Token

비동기랑 동기

비동기보다 동기가 효율적인 경우

GROUP BY

ORM과 raw query의 차이
Node.js란?

NoSQL과 RDBMS의 차이

소켓이란?

SELECT FROM WHERE LIMIT 순서

 

Node.js가 스택을 쓰는가 큐를 쓰는가 라는 질문이 있었는데

중간에 부끄럽지만 스택과 큐가 기억이 안 나서 면접관 님한테 역질문을 하였다.

면접관님께서 친절하게 스택과 큐에 대해 설명해 주시고 다시 질문해 주셨다.

답변은 스택으로 했는데 콜스택과 태스크 큐에 대해 더 이해하고 말하는 게 좋았을 뻔했다.

 

2차 면접 시에는 자료구조에 대해 더 깊이 공부해 오면 좋다고 조언해 주셨으며

정말 면접관을 떠나 선배 개발자님처럼 잘 알려 주시고 답변을 기다려 주셨다. 

가끔 내가 답변을 잘 못하면 우회해서 뭐든 답변할 수 있게 도와 주셨다.

(having절이 귀에 안 들려서 모른다고 했는데 GROUP BY를 듣고 이해하였다.)

 

개발자들의 공유하고 공부하고 서로 알려주는 문화가 좋다.

이번 면접은 어떻게 될 지 모르고 조금 많이 아쉬웠지만

더 열심히 공부해야겠다고 생각하였다.

 

아무도 안 볼 것 같았던 나의 TIL 을 유심히 지켜봐 주시고

2달? 3달 전에 그만둔 코딩테스트까지 알고 계셔서 놀랐다. 

TNH는 회사 이름처럼 Trust And Hope 가 가득해서 멋진 회사인 것 같다.

간호조무사 업무 시 해당 차트들은 써보지 못했지만, 이렇게 정성들여 신입 개발자를 뽑는 만큼

정말 멋진 프로그램일 것 같다고 생각하였다. 


정리 

* 스택 : LIFO 나중에 들어간 데이터가 먼저 나옵니다.

* 큐 : FIFO 먼저 들어간 데이터가 먼저 나옵니다.

 

* 콜 스택 : 실행 컨텍스트를 저장하는 스택 자료 구조

* 백그라운드 : setTimeout 같은 타이머나 이벤트 리스너들이 대기하는 곳입니다.여러 작업이 동시에 실행될 수 있습니다.

* 태스크 큐 : 콜백이 줄지어 서 있음. 보통 완료된 순서로 줄을 서 있지만 특정한 경우 순서가 바뀜.

* 실행 컨텍스트 : 실행할 코드에 제공할 환경 정보들을 모아놓은 객체

* annonymous : 전역 콘텍스트 global context

 

KPT

Keep

질문하는 자세

Problem

더 열심히 하지 않은 것

Try

열심히 공부

소감

열심히 공부하자

 

 

 

 

 

'verdantjuly > Today I Learned' 카테고리의 다른 글

TIL 20231022  (0) 2023.10.23
TIL 20231021  (0) 2023.10.21
TIL 20231019  (2) 2023.10.19
TIL 20231018  (0) 2023.10.18
TIL 20231017  (2) 2023.10.17