분류 전체보기
[Q&A] Const를 사용했지만, 값을 변경할 수 있는 상황은?
const는 변수를 선언할 때 사용되는 JavaScript 키워드 중 하나입니다. const로 변수를 선언하면, 이후에 변수의 값이 변경되는 것을 방지할 수 있습니다. 그러나 const로 선언한 변수의 값이 변경되는 상황은 다음과 같습니다. 1. const로 선언한 변수가 객체 또는 배열인 경우, 해당 변수가 가리키는 객체나 배열 내부의 값은 변경될 수 있습니다. 즉, 변수의 값은 변경할 수 없지만 객체나 배열 내부의 값은 변경이 가능합니다. const arr = [1, 2, 3]; arr.push(4); // 가능 arr[0] = 0; // 가능 console.log(arr); // [0, 2, 3, 4] const obj = { name: 'John', age: 30 }; obj.age = 31; /..
[TIL] 클라이언트 사이드 렌더링(CSR), 서버 사이드 렌더링(SSR)
클라이언트 사이드 렌더링? 클라이언트 사이드 렌더링(Client-Side Rendering, CSR)은 브라우저에서 JavaScript를 사용하여 웹 페이지를 동적으로 렌더링하는 방식입니다. 클라이언트 측에서 데이터를 가져와서 브라우저에서 처리하며, 브라우저에 표시될 최종 결과물을 생성합니다. CSR의 대표적인 예로 React, Angular, Vue 등의 프론트엔드 프레임워크가 있습니다. 서버 사이드 렌더링? 서버 사이드 렌더링(Server-Side Rendering, SSR)은 서버에서 HTML, CSS, JavaScript 등을 이용하여 초기 렌더링을 수행하고, 클라이언트 측에서는 서버에서 전달받은 데이터를 바탕으로 추가적인 렌더링을 수행합니다. SSR은 검색 엔진 최적화(SEO)에 유리하고 초기 ..
[Q&A] Promise의 특징과 Async/Await특징?
Promise란? Promise는 자바스크립트에서 비동기 처리를 위한 객체로, 비동기 작업의 결과를 처리할 수 있는 대기 중(pending), 이행됨(fulfilled), 거부됨(rejected)의 상태를 가집니다. Promise는 then(),catch() 메서드를 사용하여 이행됨 상태와 거부됨 상태에 대한 처리를 지정할 수 있습니다. Promise의 특징은 다음과 같습니다. 비동기 작업의 결과를 처리할 수 있습니다. 이행됨 상태와 거부됨 상태에 대한 처리를 지정할 수 있습니다. Promise 체인을 사용하여 여러 개의 비동기 작업을 순차적으로 처리할 수 있습니다. 콜백 지옥(callback hell)를 방지할 수 있습니다. Promise는 서버와의 통신, 파일 업로드/다운로드, 데이터베이스 조회 등의..
[Q&A] 동기와 비동기
자바스크립트에서 동기(Synchronous)와 비동기(Asynchronous)는 코드의 실행 순서와 관련된 개념입니다. 동기(Synchronous)? 동기적으로 코드를 실행하면, 코드는 순차적으로 실행되며, 이전 코드의 실행이 끝나기 전에는 다음 코드가 실행되지 않습니다. 이 때문에, 코드가 실행되는 동안 다른 작업을 할 수 없습니다. 예를 들어, 다음의 코드는 동기적으로 실행됩니다. console.log('start'); console.log('middle'); console.log('end'); 위 코드를 실행하면, 'start'가 출력된 이후에 'middle'과 'end'가 순차적으로 출력됩니다. 이 때, 'middle'와 'end'는 'start'가 출력된 이후에 실행됩니다. 비동기(Asynchr..
[Q&A] 변수의 생성과정과 호이스팅에 대해 설명해라
변수의 생성과정 자바스크립트에서 변수를 선언하면, 해당 변수는 생성 및 초기화 과정을 거칩니다. 변수의 생성 및 초기화 과정은 다음과 같습니다 변수 선언: 변수를 선언합니다. 이때 변수의 이름이 메모리에 등록됩니다. 메모리 할당: 변수를 위한 메모리 공간이 할당됩니다. 이때 변수의 타입에 따라 할당되는 메모리 공간의 크기가 결정됩니다. 초기화: 변수에 초기값을 할당합니다. 변수의 타입에 따라, 초기값을 할당하지 않을 수도 있습니다. 변수의 생성 과정이 완료되면, 해당 변수를 사용할 수 있습니다. 그러나 자바스크립트에서는 변수의 생성과정에서 특별한 동작인 "호이스팅(Hoisting)"이 발생합니다. 호이스팅이란? 변수의 선언 부분이 해당 스코프의 맨 위로 끌어올려지는 동작을 의미합니다. 즉, 변수의 선언이..
[Q&A] 프로세스, 스레드, 멀티스레드란?
프로세스, 스레드, 멀티스레드는 모두 컴퓨터에서 실행되는 프로그램을 구성하는 단위입니다. 각각의 개념을 설명하면 다음과 같습니다 프로세스(Process) 실행 중인 프로그램을 의미합니다. 각각의 프로세스는 운영체제(OS)에서 독립적으로 메모리 공간과 시스템 자원을 할당받으며, 다른 프로세스와는 독립적으로 실행됩니다. 스레드(Thread) 하나의 프로세스 내에서 실행되는 실행 흐름을 의미합니다. 스레드는 해당 프로세스 내에서 자원을 공유하며, 병렬로 실행될 수 있습니다. 스레드는 프로세스 내에서 동작하는 가장 작은 실행 단위이며, 프로세스의 실행 속도를 향상시키는 데에 유용하게 사용됩니다. 멀티스레드(Multithreading) 하나의 프로세스 내에서 여러 개의 스레드가 병렬로 동작하는 것을 의미합니다. ..
[면접질문] NodeJS 및 NestJS 신입 질문모음
서류를 합격해서 면접을 보러다닌 회사는 점점 늘어가는데 아직 취직을 성공하지 못했다. 진짜 빨리 취직하고싶다.. ㅠㅠㅠ 면접 당시 답을 제대로 하지 못했던 질문들을 생각해두고 매번 따로 정리해두곤 했는데 블로그에 다시 한번 공부할겸, 저같은 취업준비생분들께 도움이 됐으면 하는 작은 바램에 작성해보려합니다. 제목을 누르면 해당 글로 이동됩니다 질문들만 미리 작성해둔것이며, 전부 글 작성 예정입니다. 혹시, 제가 작성한 글에서 틀린부분이 있다면 지적 부탁드립니다! 자바스크립트 작동원리? 프로세스, 스레드, 멀티스레드란? 프로세스 스레드 멀티스레드 변수의 생성과정과 호이스팅에 대해 설명해라 변수의 생성과정 호이스팅이란? let,var,const의 차이점 함수 스코프와 블록 스코프란? 동기와 비동기? 동기? 비..
[TypeORM] Active Record vs Data Mapper
Active Record? 소규모 앱에서 단순하게 사용할 수 있도록 도와줌 import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from "typeorm" @Entity() export class User extends BaseEntity { @PrimaryGeneratedColumn() id: number @Column() firstName: string @Column() lastName: string @Column() isActive: boolean } // example how to save AR entity const user = new User() user.firstName = "Timber" user.lastName = "Saw" use..