본문 바로가기

분류 전체보기

(107)
[10장] 객체 리터럴 객체자바스크립트에서 원시 값을 제외한 나머지 값(함수, 배열, 정규표현식 등)은 모두 객체원시 값은 변경 불가능한 값이지만 객체 타입의 값, 즉 객체는 변경 가능한 값이다.객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다.var person = { name : 'Lee', // 프로퍼티 age : 20};프로퍼티 : 객체의 상태를 나타내는 값(data)메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)인스턴스란?클래스에 의해 생성되어 메모리에 저장된 실체객체지향 프로그래밍에서 객체는 클래스와 인스턴스를 포함한 개념클래스는 인스턴스를 생성하기 위한 템플릿의 역할을 한다.인스턴스는 객체가 메모리에 저장되어 실제로 존재하는 것에 초점을 맞춘 용어자..
CORS와 Preflight의 개념 출처웹 개발자 면접 단골 질문 1 | CORS와 Preflight의 개념CORS란 무엇인지 설명해주세요CORS는 Cross Origin Resource Sharing의 약자로 교차 출처 리소스 공유라고도 불립니다.2009년에 HTML5 표준으로 채택된 프로토콜이며, SOP에 의해 제한된 교차 출처 간 리소스 공유를 허용하기 위한 방법입니다.애플리케이션의 요구사항이 복잡해지면서, 다른 도메인의 리소스를 활용하는 경우가 많아졌기 때문에 등장한 프로토콜로, 서버에서 CORS 관련 헤더를 설정하여 다른 도메인에서의 리소스 요청을 허용할 수 잇습니다.→ www.google.com에서 현재 서버로 리소스 요청하는 것을 허용, origin 외에도, 허용할 HTTP 메서드 종류, 요청 헤더 등 여러 옵션 설정이 가능C..
로그인 처리를 할 때 쿠키와 세션을 어떻게 사용하시나요? 답변사용자가 로그인을 성공하면 서버는 세션을 생성하고 세션 ID를 브라우저에게 쿠키로 전달합니다.이때 클라이언트는 서버에 요청을 보낼 때마다 세션 ID가 담긴 쿠키를 서버에 전송하여 사용자 인증을 진행합니다.서버는 클라이언트에서 보낸 세션 ID를 확인하여 사용자의 로그인 상태를 유지하거나 필요한 데이터를 제공합니다. 쿠키와 세션의 기본 개념쿠키주로 서버와 클라이언트 간 상태를 유지하거나 인증 정보를 저장할 때 사용됩니다.클라이언트(브라우저)에 저장되는 데이터세션세션 ID가 쿠키에 저장되며, 서버가 클라이언트의 인증 상태를 추적함서버에서 관리하는 사용자 상태 정보로그인 처리에 쿠키와 세션 활용사용자가 로그인하면 서버는 세션을 생성하고, 세션 ID를 브라우저에 쿠키로 저장이후 클라이언트는 요청마다 이 세션 ..
프로세스와 스레드에 대해 설명해주세요 답변프로세스와 스레드는 컴퓨터 프로그램이 실행되는 단위를 의미합니다.먼저 프로세스는 프로그램이 실행되면서 메모리에 올라가고 해당 프로그램을 읽을 수 있는 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 태그를 만나..