본문 바로가기

분류 전체보기

(112)
프로세스와 스레드에 대해 설명해주세요 답변프로세스와 스레드는 컴퓨터 프로그램이 실행되는 단위를 의미합니다.먼저 프로세스는 프로그램이 실행되면서 메모리에 올라가고 해당 프로그램을 읽을 수 있는 CPU가 할당된 상태의 프로그램을 의미합니다.스레드는 프로세스 내에서 실행되는 작업 단위를 의미합니다.프로세스는 최소 1개의 스레드를 가지며, 여러 스레드가 병렬로 작업을 처리할 수 있습니다.프로세스정의:프로그램이 실행되면 메모리에서 별도의 공간을 할당받아 하나의 프로세스로 동작프로세스는 운영체제에서 실행 중인 프로그램의 독립된 작업 단위특징:독립된 메모리 공간: 프로세스는 자신만의 메모리 공간(코드, 데이터, 스택 등)을 가지고 다른 프로세스와 메모리를 공유하지 않음무겁고 독립적: 하나의 프로세스가 종료되더라도 다른 프로세스에는 영향을 주지 않음통신 ..
자바스크립트에서 일어나는 데이터 형 변환에 대해 설명해주세요. 답변자바스크립트에서 데이터 형 변환에는 크게 명시적 변환과 암시적 변환이 있습니다.명시적 변환은 개발자가 직접 데이터의 타입을 변환하는 방식이고, 암시적 변환은 자바스크립트가 해당 데이터의 타입을 유추하여 자동으로 타입을 변환하는 방식입니다.명시적 변환프로그래머가 직접 함수를 호출하거나 코드를 작성해서 데이터 타입을 변환하는 방식숫자(Number)로 변환Number()를 사용하여 다른 데이터 타입을 숫자로 변환javascript코드 복사Number("123"); // 123 (문자열 → 숫자)Number(true); // 1 (불리언 → 숫자)Number(false); // 0 (불리언 → 숫자)Number("abc"); // NaN (문자열이 숫자로 변환 불가)문자열(String)로 변환Str..
자바스크립트가 유동적인 언어인 이유는 무엇인가요? 답변자바스크립트가 유동적인 언어인 이유는 동적 타입 시스템과 타입 추론 덕분입니다. 변수의 타입이 고정되지 않고, 런타임에 따라 숫자, 문자열 등 다양한 타입으로 변경될 수 있습니다. 또한, 객체의 속성을 런타임 중 자유롭게 추가/삭제할 수 있어 데이터 구조 변경에 유연합니다. 예제 코드를 통한 추가 설명동적 타입 시스템변수의 타입이 고정되지 않고, 할당된 값에 따라 언제든지 변경될 수 있습니다.let variable = 42; // 변수는 처음엔 숫자console.log(typeof variable); // "number"variable = "Hello"; // 문자열로 변경 가능console.log(typeof variable); // "string"타입 추론자바스크립트는 ..
불변성을 유지하려면 어떻게 해야하나요? 답변자바스크립트에서 불변성을 유지하려면 객체나 배열을 직접 수정하는 대신 새로운 객체나 배열을 생성하여 변경 사항을 반영하는 방식을 사용할 수 있습니다.예시로 스프레드 연산자를 사용하여 복사본을 생성하고 map, filter, reduce와 같은 메서드로 배열을 변경시킬 수 있습니다. 자바스크립트에서 불변성을 유지하는 코드// 객체에서 불변성 유지하기const originalObj = { name: "Alice", age: 25 };const updatedObj = { ...originalObj, age: 26 }; // 새로운 객체 생성console.log(originalObj); // { name: "Alice", age: 25 }console.log(updatedObj); // { name: "A..
브라우저 렌더링 과정을 설명해주세요. 먼저 서버로부터 HTML 문서를 전달받으면, 브라우저 엔진은 위에서 아래로 순차적으로 파싱하며 태그와 속성을 발견합니다.이 태그와 속성들은 트리 형태로 변환되어 메모리에 저장되는데, 이를 DOM 트리라고 합니다.HTML 파싱 중 CSS 링크나 스타일 태그를 만나면 이를 파싱하여 CSSOM 트리로 변환합니다.문서의 파싱이 완료되면 DOM과 CSSOM 트리를 결합하여 렌더 트리를 생성합니다.렌더 트리는 브라우저 상에서 요소의 위치와 크기를 결정하는 리플로우 과정을 거치며,마지막으로 요소의 색상, 경계선 등 시각적 요소를 그리는 페인팅 과정이 진행됩니다.리플로우웹 페이지 내에서 요소의 위치와 크기를 결정하는 과정리페인트요소의 생상 등 시각적 요소를 업데이트하는 과정HTML 파싱 중간에 script 태그를 만나..
CSR과 SSR의 차이는 무엇인가요? 답변CSR은 클라이언트 측에서 JavaScript로 페이지를 렌더링하는 방식이며, 초기 로딩이 느릴 수 있으나 이후 상호작용이 빠릅니다. 반면, SSR은 서버에서 HTML을 미리 렌더링해 보내므로 초기 로딩이 빠르고 SEO에 유리합니다. CSR은 SPA에 적합하고, SSR은 SEO가 중요한 서비스에 주로 사용됩니다. CSR서버에서 인덱스라는 HTML 파일을 클라이언트에 보내주면 클라이언트에서 알아서 처리하는 방식 심플한 CSR 예제 index.html을 보면 body 안은 위와 같이 심플하게 생겼다.따라서 처음에 접속하면 빈 화면만 보이고, 링크된 app.js를 서버로부터 다운로드 받게 된다.이때 해당 js에는 해당 애플리케이션에서 필요한 로직들 뿐만 아니라 애플리케이션을 구동하는 프레임워크와 라이브러리..
렉시컬 환경(Lexical Environment)에 대해 설명해주세요. 답변렉시컬 환경은 코드가 실행될 때 변수를 저장하고 참조하는 구조를 나타내는 개념입니다.자바스크립트에서 함수나 블록이 실행될 때마다 렉시컬 환경이 생성되고, 그 안에서 변수들이 어떻게 선언되고 참조되는지 정의됩니다. 개념 정리스코프 개념 다시 잡기스코프란, 변수나 함수의 유효 범위를 의미함특정 변수나 함수를 어느 위치에서 참조할 수 있는지를 나타내며, 스코프에서 벗어난 위치에서 참조할 경우 Reference Error가 발생한다.자바스크립트의 스코프는 크게 전역 스코프와 로컬 스코프로 나눌 수 있음이 둘은 렉시컬 스코프 규칙에 따라 결정됨→ 렉시컬 스코프 규칙 : 변수가 선언된 위치에 따라 접근 가능 범위가 결정됨로컬 스코프로컬 스코프는 다시 함수 스코프와 코드 블록 스코프로 나눌 수 있음→ 이때 let..
CORS는 무엇인지, 이를 처리를 해본 경험을 말씀해주세요. 답변CORS(Cross-Origin Resource Sharing)란 웹 브라우저에서 다른 출처(domain, protocol, port)에서 리소스를 요청할 때 발생하는 보안 정책으로, 웹 애플리케이션이 다른 출처의 리소스에 접근할 수 있도록 권한을 제어하는 메커니즘입니다. 이를 통해, 웹 애플리케이션이 악의적으로 다른 도메인의 자원에 접근하지 못하도록 방지할 수 있습니다. 추가 정리CORS란?Cross-Origin Resource Sharing의 약자웹 브라우저가 다른 출처(도메인, 프로토콜, 또는 포트)에서 리소스를 요청할 때 발생하는 보안 기능예를 들어 https://example.com에서 호스팅된 웹 페이지가 https://api.example.com와 같은 곳에서 데이터를 요청하려고 할 때 ..