자바스크립트에서 단락 평가 (Short-Circuit Evaluation) 이해하기
·
웹개발/JavaScript
단락 평가는 논리 연산에서 첫 번째 피연산자의 값에 따라 두 번째 피연산자의 평가 여부를 결정하는 기법입니다.AND 단락 평가'&&' 연산자는 첫 번째 피연산자가 거짓일 경우, 두 번째 피 연산자를 평가하지 않습니다.이를 통해 필요한 계산을 줄이고, 조건문에서 오류를 방지할 수 있습니다.function calcA() { console.log("a"); return false;}function calcB() { console.log("b"); return true;}if (calcA() && calcB()) { console.log("둘 다 참");}// 결과: "a"만 출력됨위 코드에서 'calcA()'가 거짓을 반환하므로, 'calcB()'는 호출되지 않습니다.이는 '&&' ..
자바스크립트에서 Truthy와 Falsy 이해하기
·
웹개발/JavaScript
자바스크립트에서 조건문을 작성할 때, 변수의 값이 참(Trythy)인지 거짓(Falsy)인지를 이해하는 것이 중요합니다.Truthy와 Falsy는 논리적 평가에서 사용되는 개념으로, 불리언 값이 아닌 값들이 참 또는 거짓으로 평가되는 방식을 설명합니다.Falsy값Falsy 값은 논리적 평가에서 거짓으로 간주되는 값입니다. 주요 Falsy 값은 다음과 같습니다.false0" " (빈 문자열)nullundefinedNaN이 값들은 조건문에서 모두 거짓으로 사용됩니다.if (!false) console.log("Falsy"); // 출력됨if (!0) console.log("Falsy"); // 출력됨if (!"") console.log("Falsy"); // 출력됨if (!null) ..
커널 오브젝트의 두 가지 상
·
전공 공부/네트워크프로그래밍
커널 오브젝트는 2가지의 상태를 가지고 있다.1. non-signaled 상태-> 이벤트가 발생하지 않은 상태, 해당 리소스가 특정 상황에 이르지 않은 상태2. signaled상태-> 이벤트가 발생한 상태, 해당 리소스가 특정상황에 도달한 상태ex) 프로세스나 쓰레드의 커널 오브젝트는 프로세스, 쓰레드 생성시에 non-signaled상태에 있다가, 종료 시에 signaled상태가 된다 커널 오브젝트의 상태 확인함수가 값을 반환하기 위해서는 커널 오브젝트가 signaled상태가 되어야 한다.signaled상태로 반환시에 WAIT_OBJECT_0 을 반환한다. auto-reset 모드 커널 오브젝트 : 특정 커널 오브젝트가 signaled상태에서 non-signaled 상태로 자동으로 변경되는 커널 오브젝트..
flag변수가 뭐에요? 깃발..?
·
웹개발/JavaScript
컴퓨터과학(Computer Science)를 공부하다 보면 신호처리 부분에서 'flag'변수를 사용하시는 모습을 본 적이 있을겁니다. int 정수형은 integer,char 문자형은 character,flag는 뭘까요? 검색해도 깃발이라 나오던데,,,프로그래밍에서 flag는 신호처리를 받는 역할을 합니다.컴퓨터의 신호처리는 1과 0으로 이루어지죠.더보기*TMI : 컴퓨터는 전기신호를 기본적으로 사용하고, 2진수가 정보 표현에 가장 간단하고 효율적이기 때문에 1과 0만을 사용합니다. 1) 컴퓨터는 전기 신호를 이용하여 작동합니다.-> 전기신호는 켜져있는 상태와 꺼져있는 상태로 표현될 수 있으며, 이를 숫자로 나타내면 1과 0이 됩니다. 컴퓨터는 트렌지스터와 같은 전자 소자를 이용하며 이러한 전기 신호를 처..
자바스크립트의 객체
·
웹개발/JavaScript
객체란?숫자형이나 문자형과 같은 원시 자료형과 달리 다양한 값을 담는 자료형입니다.객체 생성자바스크립트에서 객체 생성은 2가지 방법이 있습니다.let objA = {}; ① // '객체 리터럴' 문법let objB = new Object(); // '객체 생성자' 문법1) dbjA에 리터럴(고정된 값) 문법을 사용한다. { } 를 사용하여 객체를 선언한다.let person = { name: "이정환", ① age: 25 ②}key(name, age)와 value(이정환, 25) 값으로 이루어진 property(캡슐화 된 객체)를 작성하면 된다.let person = { name: "이정환", age: 25, age: 30 // 알아두세요 key가 중복되면 가장 마지막 프로퍼티만 남게 됩니다.}..
자바스크립트와 스코프
·
웹개발/JavaScript
자바스크립트에서 변수와 함수는 생성과 동시에 자신에게 접근하거나 호출할 때 제약범위를 갖습니다.이 범위를 스코프(Scope)라고 합니다. 쉽게 말해 변수나 함수에 접근하거나 호출할 수 있는 범위를 말합니다. 전역, 지역 스코프변수가 전역 스코프를 갖는다는 것은 해당 변수를 어디에서든 접근할 수 있다는 의미입니다.반면 전역이 아닌 지역 스코프라는 것은 해당 영역에서만 접근할 수 있다는 의미입니다.다음 코드는 함수 외부에 선언한 변수(전역 스코프)를 내부에서 접근하는 예입니다.let a = 1; // ①function foo() { console.log(a);}function bar() { console.log(a);}foo(); // ② 1 bar(); // ③ 1 console.log(a); // ④..
운영체제 병행성 : 상호배제와 동기화
·
컴퓨터과학/운영체제
멀티프로세스란?-> 프로세스/쓰레드 관리를 위한 운영체제 설계의 중심!!1) 멀티프로그래밍 : 다수의 프로세스가 메모리 상에 올라와서 CPU를 번갈아가며 사용 및 실행한다.2) 멀티프로세싱 : 여러 개의 CPU 실행3) 분산프로세싱 : 서로 다른 머신에서 연산을 수행 Serial processing-> 하나의 프로세스가 싲가되면, 독점적으로 모든 컴퓨터의 자원(CPU, 메모리, I/O장치)을 사용하는 것. 사용이 다 끝나야만 다음 프로세스 실행이 가능하다.Concurrent processing(병행처리)-> 여러개의 프로세스를 동시에 실행한다. *인터리빙 방식과 오버래핑 방식으로 나뉜다.1) Interleaving(인터리빙) 방식-> CPU가 1개일 때, 여러 작업이 CPU를 번갈아가면서 사용한다.2) ..
자바스크립트 함수
·
웹개발/JavaScript
자바스크립트 언어로 코딩을 하다보면 동일하거나 유사한 코드를 반복해서 사용해야 된다는 필요성을 느낄 때가 있습니다.이럴때 함수로 묶어서 사용을 할 수가 있습니다.예시를 통해 알아보겠습니다.다음은 주어진 높이와 너비를 이용해서 직사각형의 면적을 출력하는 예제입니다.let width = 10;let height = 20;let area = width * height;console.log("면적: ", area); // 면적: 200만약 두개를 구한다면 다음과 같아집니다.let width1 = 10;let height1 = 20;let area1 = width1 * height1;let width2 = 100;let height2 = 200;let area2 = width2 * height2;console.l..