이번 주 목표
2차 면접 준비
오늘 목표
2차 면접 준비
- 1차 면접 질문 보완
- 자료구조 공부
오늘 한 것
2차 면접 준비
- 1차 면접 질문 보완
1. 1차 면접 답변 보완
[답변 못한 것]
스택
나중에 들어간 데이터가 나중에 나오는 자료구조. LIFO
큐
먼저 들어간 데이터가 먼저 나오는 자료구조. FIFO
Node.js는 스택일까 큐일까
Node.js는 콜 스택과 태스크 큐를 사용합니다.
having 절
GROUP BY를 통해 묶인 레코드 그룹에 대해 조건을 거는 역활을 합니다.
SELECT [컬럼명] FROM [테이블명] GROUP BY [컬럼명] HAVING [조건절]
SELECT 취미, AVG(나이) AS 평균나이 FROM dbo.취미 GROUP BY 취미 HAVING AVG(나이) = 16
호이스팅
인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 이동시키는 과정
인덱스
데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조
인덱스를 모든 컬럼에 넣으면 어떻게 될까?
데이터베이스에 레코드가 삽입, 삭제될 때마다 인덱스가 변경되어야 합니다.
데이터의 삽입, 삭제 속도가 느려집니다.
NoSQL과 RDBMS가 각각 어떤 물리 저장소를 사용하는지
RDBMS (관계형 데이터베이스 관리 시스템)는 주로 디스크 기반의 저장소를 사용합니다. 이는 데이터를 테이블 형태로 저장하고, 테이블 간의 관계를 유지하며 쿼리를 실행하는데 적합한 방식입니다.
반면에 NoSQL 데이터베이스는 다양한 유형의 물리 저장소를 사용할 수 있습니다. 예를 들어, document-oriented NoSQL 데이터베이스는 JSON 또는 XML과 같은 문서 형식으로 데이터를 저장하며, 이를 파일 시스템 또는 메모리에 저장할 수 있습니다. 다른 유형의 NoSQL 데이터베이스는 wide-column stores, key-value stores, 그리고 graph databases 등 다양한 방식으로 데이터를 저장합니다.
[답변한 것]
객체 지향 프로그래밍이란?
객체 지향 프로그래밍이란 필요한 데이터를 추상화 시켜 객체로 만들고,
객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
특징으로는 첫번째 추상화, 객체의 공통적인 속성과 기능을 추출하여 정의하는 것,
두 번째 상속, 상위클래스의 기능을 하위 클래스에서 사용하거나 오버라이딩을 통해 재정의하는 것.
세 번째 다형성, 상위 클래스의 참조변수로 하위 클래스의 객체를 참조할 수 있게 하는 것
네 번째 캡슐화, 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이 있습니다.
다형성이란?
상위 클래스의 참조변수로 하위 클래스의 객체를 참조할 수 있게 하는 것입니다.
이벤트루프?
여러 이벤트가 동시에 발생했을 때 어떤 순서로 콜백 함수를 호출할 지를 결정하는 것입니다.
프로세스와 쓰레드, 둘의 차이
프로세스는 컴퓨터에서 실행되는 독립적인 프로그램의 인스턴스입니다.
쓰레드는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 독립적인 실행 흐름의 단위입니다.
프로세스는 서로 완전히 독립되어 있어 하나의 프로세스의 오류가 다른 프로세스에 영향을 미치지 않지만,
프로세스 간의 통신이 복잡하고 비용이 많이 들고, 자신만의 고유 공간과 자원을 할당받아 사용합니다.
반면에, 쓰레드는 같은 프로세스에서 실행되며,
쓰레드 간의 통신 비교적 간단하고 빠른 것에 비해,
다른 스레드의 공간과 자원을 공유하면서 사용한다는 차이점이 있습니다.
노드는 싱글스레드 멀티스레드?
노드는 싱글 스레드입니다.
JWT
JWT는 웹에서 사용되는 JSON 형식의 토큰에 대한 표준 규격입니다.
Access Token Refresh Token
Access Token은 액세스 권한을 부여하기 위해 사용되는 토큰 유형이다
Refresh Token은 액세스 토큰이 만료될 때 새로운 액세스 토큰을 발급받기 위해 사용됩니다.
비동기랑 동기
동기는 말 그대로 동시에 일어난다는 뜻입니다. 요청과 결과가 동시에 일어납니다.
비동기는 동시에 일어나지 않는다를 의미합니다. 요청과 결과가 동시에 일어나지 않습니다.
하나의 요청에 따른 응답을 즉시 처리하지 않아도,
그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식입니다.
비동기보다 동기가 효율적인 경우
단순한 계산은 비동기로 구현할 경우 코드가 복잡해지고 유지보수가 어려워질 수 있습니다
다음 단계로 넘어가면 안되는 계산이라면 동기로 구현하는 것이 좋습니다
GROUP BY
같은 값을 가진 행끼리 하나의 그룹으로 뭉쳐줍니다
ORM과 raw query의 차이
ORM을 쓰면 프로그램의 생산성이 올라간다.
raw query 를 사용하면 속도가 빨라진다.
raw query는 다양한 문법을 사용할 수 있다.
Node.js란?
Chrome V8 자바스크립트 엔진으로 빌드한 자바스크립트 런타임입니다.
논블로킹 I/O와 싱글스레드를 특징으로 갖습니다.
NoSQL과 RDBMS의 차이
NoSQL는 비관계형 데이터베이스로 고정된 스키마가 없어 자유로운 데이터 저장이 가능합니다.
데이터가 규격화 되어 있지 않아 Key값에 대한 입, 출력만 지원합니다.
RDBMS는 관계형 데이터베이스로 데이터를 테이블로 구성하고 이들 간의 관계를 정의하여 데이터 탐색 속도가 빠릅니다.
하지만 반드시 스키마 규격에 맞춰서 데이터를 다뤄야 합니다.
소켓이란?
네트워크를 경유하는 프로세스 간 통신의 종착점이다.
SELECT FROM WHERE LIMIT의 순서
SELECT > FROM > WHERE > LIMIT
KPT
Keep
잠을 적게 자려고 하는 것
Problem
너무 졸린 것
Try
잠죽자
소감
파이팅하자!
'verdantjuly > Today I Learned' 카테고리의 다른 글
TIL 20231023 (1) | 2023.10.23 |
---|---|
TIL 20231022 (0) | 2023.10.23 |
TIL 20231020 (2) | 2023.10.20 |
TIL 20231019 (2) | 2023.10.19 |
TIL 20231018 (0) | 2023.10.18 |