백엔드 면접질문1. 객체지향프로그래밍 OOP에서 지향하는 바가 무엇일까요?더보기객체지향프로그래밍(OOP, Object Oriented Programming)은 컴퓨터 프로그래밍 패러다임 중 하나로, 데이터를 추상화시켜 상태(attribute)와 행위(Method)를 가진 객체로 만들고 그 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 장점 : 코드 재사용 및 유지보수 용이, 대형 프로젝트에 적합단점 : 처리속도 느림, 설계 시 많은 시간이 필요, 객체가 많을 시 용량이 커짐- 객체지향의 특성 1. 캡슐화 : 변수와 함수를 하나의 단위로 묶는 것, 정보 은닉2. 상속화 : 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것3. 추상화 : 객체들의 공통적인 특징을 ..
면접준비

1. 프로세스와 스레드▪프로세스: 운영체제로부터 자원을 할당받은 작업의 단위.▪스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위. 프로그램 → 프로세스 먼저 프로세스와 스레드에 대해 본격적으로 설명하기 전에 프로그램에 대해서 설명하고 가야 한다. 프로그램이란, 컴퓨터에서 어떤 작업을 위해 실행할 수 있는 '정적인 상태'의 파일을 말한다.ex) 윈도우의 *.exe 파일이나 MacOS의 *.dmg 파일 등등 사용자가 눌러서 실행하기 전의 파일을 말한다프로세스는 프로그램이 실행되서 돌아가고 있는 상태, 컴퓨터에서 연속적으로 실행되고 있는 '동적인 상태'의 컴퓨터 프로그램이다.즉, 프로그램이 운영체제로부터 실행에 필요한 자원을 할당받아 프로세스가 되는 것이다. 프로세스 → 스레드과거에는 프로그램을..

state란?state는 React Component의 변경 가능한 데이터, 간단하게 말해서 변수이다. 하지만 const, let 등으로 선언한 변수와 다르게 값이 변하면 관련 있는 컴포넌트들이 재렌더링되어 화면이 바뀐다.state는 컴포넌트의 내부에서 변경 가능한 데이터를 다루기 위해 사용하는 객체이다.왜 state를 직접 바꾸지 않고 useState를 사용해야 하나? 주요 이유는 React의 상태 관리 방식과 성능 최적화와 관련이 있습니다. 1. 상태 변경 감지:React는 useState를 통해 상태가 변경될 때마다 컴포넌트를 다시 렌더링합니다. 상태를 직접 변경하면 React는 상태가 변경된 것을 알 수 없기 때문에 컴포넌트가 업데이트되지 않습니다. 반면에, useState를 사용하면 상태가 ..

JSX (JavaScript XML) 우선 JSX 문법이란? JSX(JavaScript XML)는 JavaScript를 확장한 문법으로 React에서 UI를 구성할 때 사용됩니다. JSX는 기존의 JavaScript 코드 안에 HTML과 유사한 구문을 인라인으로 작성하여 UI 요소를 표현하는 방법입니다. 이를 통해 React 컴포넌트를 선언적으로 작성할 수 있습니다. JSX의 주요 특징 1. 태그 사용: JSX에서는 HTML과 유사한 태그를 사용하여 요소를 생성합니다.const element = Hello, World!; 2. 표현식 삽입: 중괄호 {}를 사용하여 JavaScript 표현식을 JSX 안에 삽입할 수 있습니다.const name = "John";const greeting = Hello..

리액트 컴포넌트는 컴포넌트에는 라이프사이클(LifeCycle) 즉, 컴포넌트의 생명주기가 존재하며컴포넌트는 생성, 업데이트, 제거의 생명주기를 갖습니다. 1. 클래스 생명주기 메서드 리액트 컴포넌트의 생명주기 메서드는 컴포넌트가 생성되고, 업데이트되고, 사라지는 과정에서 호출되는 특별한 메서드입니다. 이 메서드들은 클래스 기반 컴포넌트에서 사용되며, 다음과 같은 세 가지 카테고리로 나눌 수 있습니다. 1. 마운트 (Mount): 컴포넌트가 DOM에 생성되고 웹 브라우저에 나타나는 단계입니다. - constructor: 컴포넌트를 새로 만들 때마다 호출되는 클래스 생성자 메서드입니다. - getDerivedStateFromProps: props에서 값을 가져와 state에 넣을 때 사용하는 메서드입니다...

클래스형 컴포넌트와 함수형 컴포넌트는 리액트 애플리케이션에서 컴포넌트를 구성하는 두 가지 주요 형태입니다. 클래스형 컴포넌트는 상태값을 가질 수 있고, 리액트 컴포넌트의 생명 주기 함수를 작성할 수 있습니다. 함수형 컴포넌트는 이 모든 일을 할 수 없습니다.그래서 간단하게 이 둘의 차이점을 살펴보면 상태값과 LifeCycle 가질 수 있느냐 없느냐입니다. 다음은 이 두 가지 컴포넌트 유형의 주요 차이점에 대해 더 자세히 을 살펴보겠습니다.클래스형 컴포넌트클래스형 컴포넌트는 class 키워드를 사용하여 작성됩니다.Component 클래스를 상속받아서 작성됩니다.render() 메서드를 사용하여 JSX를 반환합니다.props를 조회할 때 this 키워드를 사용합니다.상태값을 가질 수 있으며, constr..

Virtual DOM이란? Virtual DOM은 메모리에 저장되어 있는 JavaScript 객체로, 실제 DOM의 복사본입니다. 이를 사용하여 실제 DOM과의 변경사항을 효율적으로 비교하고 조작합니다. 애플리케이션의 상태가 변경될 때마다 먼저 가상 DOM이 업데이트되고, 그 후에 실제 DOM과 비교하여 변경된 부분만을 최소한의 업데이트로 반영합니다. 일반적으로 다음과 같은 과정으로 작동합니다애플리케이션의 상태가 변경되면 가상 DOM이 업데이트됩니다.가상 DOM은 이전 상태와 비교하여 변경된 부분을 찾습니다.변경된 부분만을 실제 DOM에 반영하여 화면을 업데이트합니다.이렇게 함으로써 DOM 조작이 느린 문제를 최소화하고, 빠른 렌더링을 가능하게 합니다.DOM과 Virtual DOM의 차이점1. DO..
async/await먼저 async/await는 비동기 처리를 위한 방법 중 하나로, Promise를 더 읽기 쉽게 사용할 수 있도록 하는 문법입니다. async/await 은 자바스크립트에서 비동기 처리는 기존의 동기식 처리 방식을 보완하면서도 간단하게 코드를 작성할 수 있도록 해줍니다. async/await 의 특징1. async 함수 선언async 키워드를 함수 앞에 붙여 비동기 함수를 선언합니다.async 함수는 항상 Promise 객체를 반환합니다.2. await 사용await 키워드는 Promise 앞에 붙여 해당 프로미스가 완료될 때까지 기다립니다.await는 프로미스가 resolve한 값을 반환합니다.3. 예외 처리(try/catch)async 함수 내에서 try/catch를 사용하여 예외..