TIL/2023
0906-TIL-기술 면접 답변 정리
var, let, const의 차이에 대해 알려주세요. var 변수가 함수 외부에서 선언된다면, 범위는 전역이고, 함수 내에서 선언될 때는 함수 범위로 지정됩니다. 같은 범위 내에서라면 재선언과 업데이트 둘 다 가능합니다. 또한, var 변수는 범위 내에서 맨 위로 호이스팅 됩니다. let으로 선언된 변수는 해당 블록 내에서만 사용가능 합니다. var 처럼 범위 내에서 업데이트가 가능하지만, 동일한 범위 내라면 다시 선언할 수는 없습니다. var처럼 맨 위로 호이스팅되지만, 초기화는 되지 않습니다. const는 해당 범위 내에서 일정한 상수값을 유지합니다. const는 재선언과 업데이트가 둘 다 불가능합니다. let과 동일하게 호이스팅되고, 초기화되지 않습니다. Async/Await와 Promise의 차..
0904-TIL-데이터베이스 유형
관계형 데이터 베이스 (SQL) 관계형 데이터 베이스 (SQL) 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성 선언적인 질의어를 통한 데이터 접근을 제공 응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성됨. 사용자는 원하는 데이터(what)만 명시하고, 어떻게 이 데이터를 찾을 것인가(how)는 명시할 필요가 없음. 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델 입니다. SQL의 특징 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용 중첩된 복잡한 구조가 없음 집합 위주로 데이터를 처리 숙련되지 않은 사용자도 쉽게 이해할 수 있음 표준 데이터베이스 응용에 대해 좋은 성능을 보임 SQL 용어 릴레이션(rela..

0831-TIL-useEffect와 useLayoutEffect
useEffect와 useLayoutEffect Render : Dom Tree를 구성하기 위해 각 엘리먼트의 스타일 속성을 계산하는 과정 Paint : 실제 스크린에 Layout을 표시하고 업데이트하는 과정 useEffect 컴포넌트가 render와 paint 된 후 실행 비동기적 실행 paint된 후에 실행되기 때문에, useEffect 내부에 Dom에 영향을 주는 코드가 있을 경우 화면의 깜빡임이 일어날 수 있음 useLayoutEffect 컴포넌트가 render 된 후 실행, 그 이후에 paint 동기적 실행 paint 전에 실행되기 때문에 dom을 조작하는 코드가 존재해도 화면의 깜빡임이 일어나지 않음 단, 로직이 복잡할 경우 사용자가 레이아웃을 보기까지 시간이 오래걸릴 수 있음 기본적으로는 u..
0830-TIL-useEffect의 동작
useEffect useEffect란? 컴포넌트가 렌더링 될 때마다 특정 작업을 실행할 수 있도록 하는 훅 Side Effect useEffect는 컴포넌트가 마운트 됐을 때, 언마운트 됐을 때, 업데이트 됐을 때 특정 작업을 처리할 수 있음 클래스형 컴포넌트에서 사용했던 생명주기 메소드와 유사함 Side Effect란? 함수가 실행되면서 함수 외부의 값이나 상태를 변경시키는 것 컴포넌트의 렌더링과 무관한 연산들 무관한 연산을 컴포넌트 내에서 직접 수행하는 것은 개발자가 컴포넌트의 렌더링을 통제할 수 없으므로 지양해야 함 예시 데이터를 가져오는 외부 API 호출 네트워크를 통해 Request 전송 setTimeout, setInterval 등 타이머 함수 컴포넌트의 DOM을 직접 수정 useEffect의..
0829-TIL-DB(데이터베이스) 구조와 유형
DB(데이터베이스) 구조와 유형 DB란? Database 정보를 체계적으로 분류하여 조합할 수 있는 단위 정보와 다름 (정보는 여러 종률의 문서로 흩어져있어 조합하기 어려운 단위) DB 특징 데이터의 대규모 저장소로서, 여러 사용자에 의해 동시에 사용됨 모든 데이터가 중복을 최소화하면서 통합됨 데이터베이스는 운영 데이터뿐만 아니라 그 데이터에 관한 설명까지 포함 데이터베이스 스키마 또는 메타데이터(metadata) 프로그램과 데이터 간의 독립성이 제공됨 프로그램 메모리가 아닌 개별적인 저장공간에 저장 효율적으로 접근이 가능하고 질의를 할 수 있음. 질의? 엑셀의 수식기능과 비슷함 데이터베이스 관리 시스템(DBMS: Database Management System) 데이터베이스를 정의하고, 질의어를 지원하..
0828-TIL-쓰레드와 쓰레드 풀
쓰레드 쓰레드 작업을 처리하는 주체 필요할때마다 생성됨 프로세스와 쓰레드의 차이 프로세스 자신만의 고유 공간과 자원을 할당받아 사용 메모리 상에서 실행중인 프로그램 프로세스는 최소 하나의 쓰레드를 보유하고 있음 각각 별도의 주소공간을 독립적으로 할당 받음 (code, heap, stack) 쓰레드 다른 쓰레드와 공간과 자원을 공유하면서 사용 자원 중에 stack만 따로 할당받고, 나머지 영역(Code/Data/Heap)은 쓰레드끼리 서로 공유 각각의 쓰레드는 별도의 스택을 갖고 있지만, 힙 메모리는 서로 읽고 쓸 수 있음 프로세스 안에서 실행되는 흐름 단위 프로세스 안에서 작업을 처리하는 주체 프로세스 만으로 작업을 처리할 때의 문제점 프로세스 생성에 큰 오버헤드 발생 생성시 많은 시간 소요 프로세스 컨..
0824-TIL-프로세스 생명주기
프로세스 생명주기 프로세스 상태 (Status) 신규 (New) 프로세스가 막 메인메모리에 올라온 상태 아직 실행은 불가능 수용 (admit) 동작을 거쳐야 준비단계로 넘어감 준비 (Ready) 변수 초기화 등 기초 준비작업을 모두 끝내고 실행을 할 수 있는 상태 스케쥴러를 통해 dispatch되어야 수행상태가 됨 준비상태가 되는 경우 신규 프로세스가 수용됐을 때 대기 프로세스의 입출력/이벤트가 완료됐을 때 수행 프로세스가 중단됐을 때 수행 (Running) CPU가 실제로 프로세스를 수행하는 상태 선점 스케쥴링에 의해 중단되면 준비상태가 됨 (CPU 과부하) 입출력/이벤트가 필요하면 대기상태가 됨 수행이 완료되면 종료상태가 됨 수행상태가 되는 경우 준비 프로세스가 스케쥴러를 통해 발송될 때 대기 (Wa..