일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 블록체인
- 실행 컨텍스트
- 정렬
- 백준
- blockchain
- 자바스크립트
- Interview
- Python
- 알고리즘
- 변수
- 딥다이브
- let
- Javascript
- 솔리디티
- 함수
- BOJ
- 리액트
- var
- 파이썬
- 클로저
- Execution context
- frontend
- Queue
- Algorithm
- git pull
- 프로퍼티
- solidity
- react
- Deep Dive
- nft
- Today
- Total
목록전체 글 (80)
공부하자
stack 스택이란 어떠한 자료를 쌓아서 올려놓은 형태의 자료구조. [ stack의 특징 ] 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다. - 후입선출(LIFO) 자료의 삽입(push)과 삭제(pop)가 한 곳(top)에서만 이루어진다. 만약 스택이 비어있을 때 자료를 꺼내려고 하면 스택 언더플로우가 발생하고 스택이 꽉 차 있을 때 자료를 넣으려고 하면 스택 오버플로우가 발생한다. [ stack의 활용 예시 ] 웹 브라우저 뒤로가기 문서작업에서 ctrl + z (실행 취소) 역순 문자열 만들기 후위 표기법 계산 queue 데이터들이 일렬로 줄 서서 기다리는 것 [ queue의 특징 ] 먼저 들어온 데이터가 먼저 나가는 구조 - 선입선출(FIFO) 삭제 연산이 이루어지는 곳 프론트(enQueue) 삽입..
실행 컨텍스트와 렉시컬 환경, 클로저는 자바스크립트에서 워낙 중요한 개념들이고 다 연관이 있어서 면접 준비를 하면서 한번에 정리를 해보았습니다. 제가 이해하기 쉽게 큰 개념정도만 간략하게 정리한거라 혹시 틀린것이 있으면 댓글로 알려주세요!!😊 모든 소스코드는 실행에 앞서 평가 과정을 거치며 코드를 실행하기 위한 준비를 한다. 평가 과정에서는 실행 컨텍스트를 생성하고 변수, 함수 등의 선언문만 먼저 실행하여 생성된 변수나 함수 식별자를 키로 실행 컨텍스트가 관리하는 스코프(렉시컬 환경의 환경 레코드)에 등록된다. 평가 과정이 끝나면 선언문을 제외한 소스코드가 순차적으로 실행되기 시작한다.(런타임) 이때 소스코드 실행에 필요한 정보, 즉 변수나 함수의 참조를 실행 컨텍스트가 관리하는 스코프에서 검색하여 취득..
Get 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 Method (요청에 body 유무) URL 파라미터에 요청하는 데이터를 담아보내서 HTTP 메세지에 body가 없다. (멱등성) 리소스를 조회하는 거라 여러번 요청해도 항상 똑같은 응답을 받는다. get 요청은 캐시가 가능하다. get 요청은 브라우저 히스토리에 남는다. get 요청은 길이 제한이 있다. get 요청은 중요한 정보를 다루면 안된다. (파라미터에 다 노출이 되기때문) get 요청은 데이터를 요청할때만 사용 된다. Post 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용되는 Method (요청에 body 유무) body에 데이터를 담아보낸다. (멱등성) 리소스를 새로 생성하거나 ..
자바스크립트에서 변수를 선언할 때 var, let, const이 3가지 키워드를 사용해야 한다. ES5까지 변수를 선언할 수 있는 방법은 var 키워드였고, var 키워드의 문제점을 보완해 ES6부터 나온것이 let, const 키워드이다. let과 const 키워드의 특성은 거의 동일해서 마지막에 const 키워드만의 특징을 간략하게 얘기하고, var와 let 키워드의 차이점을 3가지 관점에서 먼저 알아보겠다. [ 변수 중복 선언 ] var는 변수 중복 선언이 가능하다. 그래서 동일한 이름의 변수가 먼저 선언되었는지 모르고 변수를 중복 선언하면서 값까지 할당하면 의도치 않게 먼저 선언된 변수 값이 바뀌는 부작용이 발생한다. 하지만 let키워드는 변수 중복 선언이 금지되어있어 같은 이름의 변수를 중복 선..
23.1 소스코드의 타입 ECMAScript 사양은 소스코드를 4가지 타입으로 구분한다. 4가지 타입이 소스코드는 실행 컨텍스트를 생성한다. 전역 코드(global code) : 전역에 존재하는 소스코드. 전역에 정의된 함수, 클래스 등의 내부 코드는 포함되지 않는다. 함수 코드(function code) : 함수 내부에 존재하는 소스코드. 함수 내부에 중첩된 함수, 클래스 등의 내부코드는 포함되지 않는다. eval 코드(eval code) : 빌트인 전역 함수인 eval 함수에 인수로 전달되어 실행되는 소스코드. 모듈 코드(module code) : 모듈 내부에 존재하는 소스코드. 모듈 내부의 함수, 클래스 등의 내부 코드는 포함되지 않는다. 소스코드를 4가지 타입으로 구분하는 이유는 소스코드의 타입에..
22.1 this 키워드 객체는 상태(statement)를 나타내는 프로퍼티와 동작(behavior)을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조이다. 동작을 나타내는 메서드는 자신이 속한 객체의 상태, 즉 프로퍼티를 참조하고 변경할 수 있어야 한다. 이때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다. function Circle(radius) { // 이 시점에는 생성자 함수 자신이 생성할 인스턴스를 가리키는 식별자를 알 수 없다. ????.radius = radius; } Circle.prototype.getDiameter = function () { // 이 시점에는 생성자 함수 자신이 생성할 인스턴스를 가..
소수(Prime Number)란? 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수 소수를 판별하는 데는 2가지 방법이 있다. 특정 수 N이 소수인지 알기위해, 2부터 N-1까지의 수로 N을 나눠보고, 어떤 수로도 나눠 떨어지지 않는 다면 N은 소수. 에라토스테네스의 체를 이용하는 방법 1. 2부터 n-1까지의 수로 n을 나눠보기 첫번째 방법을 코드로 나타내면 다음과 같다. def isPrime(n): for i in range(2, n): if n % i == 0: return False return True 이 코드는 2부터 n-1까지 모든 숫자를 확인하며 소수인지 판별하는 방법이기 때문에 시간 복잡도가 O(n)이 나온다. 숫자가 커질수록 오래걸린다. 여기서 약수의 특성인 대칭성을 사용하면 연..