자바스크립트 21

[JavaScript] - 호출 스택, 콜백 큐, 이벤트 루프: 실행 프로세스 이해하기

호출 스택, 실행 프로세스 복습 하기  호출 스택(call stack), 콜백 큐(callback queue), 이벤트 루프(event loop)  자바스크립트 코드가 실행되고 자바스크립트 엔진은 각각의 함수 호출을 호출 스택에 추가, call stack 에 푸시(push) 되고 , 실행이 완료되면 stack 에서 팝(pop)된다.    호출스택(call stack) 함수의 호출을 기록 하는 자료 구조 만약 함수가 동기적일 경우 해당 연산이 완료될 때까지 다른 모든 작업은 대기하게 된다.  JS 엔진은 단일 스레드로 동작하기 때문에 한 번에 하나의 작업만 처리한다.   만약 함수가 비동기적일 경우 예를 들어 setTimeout 또는 fetch,promise 등 해당 연산은 백그라운에서 처리되는데해당 함수..

JavaScript 2023.10.06

자바스크립트(javascript) - 엔진,런타임,힙,스택,이벤트루프,프로세스

자바스크립트 엔진(javascript engine) JavaScript 엔진은 JavaScript 코드를 해석하고 실행하는 역할을 담당. 주요 JavaScript 엔진에는  V8(Chrome 및 Node.js에서 사용),  SpiderMonkey(Firefox에서 사용),  JavaScriptCore(Safari에서 사용),  Chakra(이전 버전의 Microsoft Edge에서 사용)가 포함. 주요 역할파서 (Parser): 자바스크립트 코드를 읽고 추상 구문 트리(Abstract Syntax Tree, AST)로 변환하는 역할을 한다. AST는 코드의 구조를 표현하며, 엔진은 이를 분석하여 실행에 필요한 정보를 추출한다.인터프리터 (Interpreter): 변환된 AST를 실행 가능한 명령어로 해석..

JavaScript 2023.09.25

React(리액트) 하위 컴포넌트에서 데이터(data) 받아서 상위 컴포넌트로 전달.

state. - 현재 컴포넌트에 렌더링에 영향을 미치는 객체 형태의 데이터 props. - 상위 컴포넌트에서 하위 컴포넌트로 객체 형태의 데이터를 전달 (읽기 전용) state 또는 props 업데이트 시 리렌더링된다. 리액트(react) 데이터 흐름 리액트는 기본적으로 단방향 데이터 흐름을 지닌다. 일반적으로 상위 컴포넌트에서 가진 데이터를 하위 컴포넌트로 props 객체를 통해서 전달하는데 이를 props drilling 이라고 한다. 하지만 함수를 통해서 하위 컴포넌트의 데이터를 상위 컴포넌트로 전달받아서 사용할 수도 있는데 상태 끌어올리기 state lifting 이라고 부른다. 예제 - 어떻게 전달되고 끌어 올려지는지 만 보면 된다. //App.js import NewExpense from '...

React 2022.05.17

객체지향 복습 OOP , 객체지향 개념정리

OOP - 객체지향 개념 정리 캡슐화 데이터와 데이터를 활용하는 함수를 캡슐 혹은 컨테이너 안에 두는 것을 의미하는데 이 경우 캡슐은 class를 의미한다. (함수와 데이터가 개념적으로 연관되어 있으면 캡슐화를 사용해서 코드를 개선할 수 있다.) 장점은 코드가 구조화되고 함수나 메서드가 인수를 취할 필요도 없다. (this키워드로 데이터에 직접 액세스 할 수 있기 때문) 캡슐화를 사용하여 표시할 클래스의 속성과 숨길 속성을 선택할 수 있다. 캡슐화는 어떻게 클래스 정보에 접근 혹은 수정하는지를 결정하는 권한을 제공한다. 캡슐화는 데이터 그리고 class 안에 있는 해당 데이터를 이용하는 함수를 잘 정리하는 방법론 상속 코드를 더 작은 단위로, class로 쪼개고 재사용할 수 있다. 클래스를 extends..

JavaScript 2022.05.10

오늘의 에러 <리액트,react 에러> (You are running `create-react-app` 5.0.0, which is behind the latest release (5.0.1))

You are running `create-react-app` 5.0.0, which is behind the latest release (5.0.1) 얼마 전에 리액트로 프로젝트 완성 후에 웹의 이론적인 부분하고 타입스크립트 그리고 뷰를 조금 공부하느라 리액트를 안 쓰다가 오랜만에 강의를 보면서 시작하려는데 기본 세팅에서 에러가 발생했다. npx create-react-app my-app 입력후 아래 처럼 에러 메세지가 나왔고 내용은 더 이상 글로벌(전역) 설치를 지원하지 않으니 글로벌 설치를 제거하라는 거였다. You are running `create-react-app` 5.0.0, which is behind the latest release (5.0.1). We no longer support ..

Server , etc 2022.04.29

typeScript (타입스크립트) 시작하기

typeScript (타입스크립트) 는 자바스크립트(javaScript)의 슈퍼셋으로 오픈소스 프로그래밍 언어이다. MS - 마이크로소프트에서 개발 유지 관리하며 동적인 자바스크립트를 정적으로 사용할 수 있게 해 준다. 자바스크립트 동적 타입 언어로써 다른 정적 언어 타입보다 유연하지만 그만큼 안정성이 보장받지 못한다. 자바스크립트에서 타입을 제어함으로써 좀더 안정성 있는 개발을 할 수 있게 도와준다. 시작하기 1. node.js 설치 - https://nodejs.org/ko/ 2. 설치후 에디터 터미널에 npm install -g typescript 입력 3. tsconfig.json 만들기 (작업할 폴더에) 4. tsc -w 터미널에 입력 (ts 파일을 실시간으로 js파일로 컴파일 시켜준다.) 5...

TypeScript 2022.04.18

리액트(React)에서 Sass(SCSS)사용하기

Sass(SCSS) 는 CSS 전처리기 (CSS Preprocessor) 이다. ※ 웹에서는 CSS 만 작동하므로 전처리기로 작성 후 CSS로 컴파일해야 한다. 기존의 CSS에서 사용할 수 없었던 많은 기능들이 추가되어 사용에 있어 편의성과 가독성이 더 좋은 거 같다. SCSS는 CSS와 완전히 호환되도록 구문을 도입해 만든 Sass의 모든 기능을 지원하는 CSS의 상위 호환 전처리기이다. 라이브러리 설치 (npm global 설치) $ npm install -g node-sass (yarn 설치) yarn add node-sass 확장자는 scss이다. 중첩(Nesting) Sass(SCSS)에서는 중첩기능(Nesting)을 사용할 수 있다. 중첩을 사용하여 상위 선택자의 반복을 줄이고 가독성을 더 좋..

React 2022.03.07

ES5 prototype(프로토타입) 상속기능.

Object.create() ES5 문법 중 하나인 프로토타입 상속 기능으로 간단하게 사용 가능하다. let parents = { name: "Oh", age: 50}; let child = Object.create(parents); console.log(child) let grandChild = Object.create(child); console.log(grandChild) 상속할 부모(parents)에 속성 데이터를 할당하고 첫 번째 자식(child)에게 Object.create(parents); 을 할당하여 부모의 속성을 상속한다. 그리고 콘솔을 출력하면 {} 이렇게만 출력되는데 그건 child에 가 따로 속성 값을 부여하지 않아서 이다. 하지만 더보기 버튼을 누르면 [[Prototype]] : ..

JavaScript 2022.02.16

React Router v6 업데이트, 바뀐점

멋사 프론트엔드 과정을 종료하고 리액트를 따로 공부해야 될 거 같아 애플코딩님의 강의를 듣던 중 강의에서 라우터 관련해서 강의대로 했음에도 안 되는 부분들이 몇 가지 있어 찾아보던 중에 react-router 가 업데이트하면 문법이 조금 바뀐 걸 알게 되었다. 아직 리액트 자체가 입문 수준이라 몇 가지만 정리하기로 했다. Switch 로 감싸진 들중에 가장 먼저 매칭 된 하나만 보여준다. Routes 는 Switch의 대체로 나왔는데 Switch 와 다르게 가장 일치하는 항목을 기반으로 선택된다. component , render 에 화살표 함수를 사용하지 않는다. element 속성에 JSX 컴포넌트를 전달할 수 있다. Router 에 component , children 대신 element를 사용 R..

React 2022.02.09

Javascript <자바스크립트> this

this this 는 함수가 호출되는 방식에 따라서 동적으로 결정된다. 1. 일반 함수에서 this 는 전역 객체인 window와 바인딩 된다. console.log(this); //window{...} function a (){ console.log(this) } a(); //window{...} 2. 메소드 안에서 this 는 메소드를 가지고 있는 오브젝트(객체)에 바인딩 된다. let x = { data: "oh", a : function(){ console.log(this) } } x.a(); // { data:"oh", a: f } 3. 생성자 함수로 호출시 생성자 함수가 생성할 객체에 바인딩 된다. function name() { this.first = "oh", this.last = "ahh..

JavaScript 2022.01.27
반응형