목차 클로저란? 이해하기 클로저의 특징 클로저(Closure)란? Javascript로 개발을 하다보면 알든 모르든 자주 쓰게 되는 기법입니다. 클로저(Closure)의 사전적 정의는 폐쇄입니다. MDN 에서는 `함수와 함수가 선언된 어휘적 환경(Lexical Environment)의 조합`이라고 말합니다. 생활 코딩에서는 클로저(Closure)가 `내부 함수가 외부 함수의실행 문맥에 접근할 수 있는 것`이라고 합니다. ※실행 문맥(Execution Context)이란? JS가 실행되는 환경을 말하며 각 실행 문맥은 식별자(변수, 객체, ...) 및 this, outer 등JS 코드가 실행되는데 필요한 모든 상태들을 가지고 있습니다.함수가 실행되면 해당 함수의 실행 문맥이 생성되며 종료될 때 소멸합니다...
목차 실행 문맥(Execution Context)이란? Execution Context Stack this 실행 문맥(Execution Context)이란? 말 그대로 JavaScript가 실행되는 환경을 일컫는 개념입니다. 모든 실행 문맥은 다음과 같이 구성되어 있습니다. code evaluation state(해당 실행 문맥의 실행, 중단 등에 필요한 모든 상태를 가지는 컴포넌트) Relam(활성 객체를 가진 컴포넌트) Function(함수 실행 문맥일 때 해당 함수 객체를 가지는 컴포넌트) ScriptOrModule(해당 실행 문맥의 스크립트 요약 정보와 연관된 모듈 정보를 가지는 컴포넌트) 그리고 ECMAScript Code의 실행 문맥은 추가적으로 아래의 컴포넌트를 가지며 해당 포스팅에서 중점적..
※이 글은 Rhino(Mozilla, Java)엔진을 기준으로 작성하였습니다. # 호이스팅(Hoisting)이란? 호이스팅이란 코드가 실행되기 전(컴파일 시점), 선언을 실행 문맥(컨텍스트)에 저장하고 이후 코드가 실행되는 것을 말합니다. 즉, 선언 코드보다 초기화 등의 코드가 먼저 작성되어도 정상적으로 동작하는 것이죠. 선언이란 함수 선언(function, function*, class) , 변수 선언(var, const, let)을 말하며 이 중에서 const, let은 호이스팅의 대상이지만 TDZ(Temporal Dead Zone)의 제한으로 초기화 전까지 해당 변수에 접근할 수 없으며 class은 호이스팅의 대상이 아닙니다. 종종 끌어올리다라는 표현 때문에 선언 코드가 물리적으로 상단으로 옮겨진 ..
# 스코프(Scope)란? JavaScript에서 변수, 객체, 함수가 접근할 수 있는 유효 범위이며 현재 실행되는 실행 문맥의 어휘적 환경(Lexical Environment)을 말합니다. 어휘적 환경은 어휘 중첩 구조(Logical nesting of Lexical Environment values)를 기반으로 특정 변수 및 함수에 식별자를 연결하는 사양입니다. Scope는 전역 스코프와 지역 스코프가 있습니다. 또한 함수나 객체, 변수가 선언(function, function*, class, var, const, let)될 때 결정이 되며 이러한 특성을 Lexical Scope라고 합니다. # 알아보기 전역 스코프 함수의 안이든 밖이든, 어느 위치에서나 접근할 수 있는 스코프를 말합니다. ES5 문..

1.문제 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개의 나선 모양처럼 점점 큰 타일을 붙인 형태였다. 타일 장식물의 일부를 그리면 다음과 같다. 그림에서 타일에 적힌 수는 각 타일의 한 변의 길이를 나타낸다. 타일 장식물을 구성하는 정사각형 타일 한 변의 길이를 안쪽 타일부터 시작하여 차례로 적으면 다음과 같다. [1, 1, 2, 3, 5, 8, .] 지수는 문득 이러한 타일들로 구성되는 큰 직사각형의 둘레가 궁금해졌다. 예를 들어, 처음 다섯 개의 타일이 구성하는 직사각형(위에서 빨간색으로 표시한 직사각형)의 둘레는 26이다. 타일의 개수 N이 주어질 때, N개..

1.문제 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 2.제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 3.입출력 예 4.나의 풀이 function solution (arr) { var answer = 0; let leftParent = 0; let rightPa..
# 시작 지난 포스팅까지 기본적인 애플리케이션 구성을 마쳤습니다. 이번 포스팅의 주제는 웹 개발의 기본 중 기본인 게시판입니다. 간단하게 구현할 계획이며 먼저 Back End 세팅을 진행합니다. # 준비 @Lombok 사용을 위한 세팅 VS Code의 확장 프로그램( Ctrl + Shift + X )에서 `Lombok Annotations Support for VS Code`을 설치합니다. @GraphQL 스키마 파일을 병합하기 위한 세팅 src/main/resources/static/graphql/schema.graphqls 파일에 현재 샘플 Schema가 있습니다. src/main/resources/static/graphql/sample/sample.graphql 파일을 생성한 뒤 여기에 옮겨주세요...
#개념 해시 함수는 임의의 길이를 갖는 임의의 데이터에 대해 고정된 길이의 데이터로 매핑하는 함수를 말한다. 이러한 해시 함수를 적용하여 나온 고정된 길이의 값을 해시값이라고 한다. 이 값은 해시 코드, 해시 섬(sum), 체크섬 등으로도 불린다. 대표적으로 해시 테이블, 해시 셋 등에서 유용하게 사용된다. 위 자료구조들은 인덱스에 해시값을 사용하는 자료 구조로, 정렬을 하지 않고도 빠른 검색, 빠른 삽입이 가능하다. 해시를 사용하다 보면 동일한 해시 코드가 얻어지는 경우가 있는데 이를 해시 충돌이라 하며 해시 함수의 알고리즘이 뛰어날수록 충돌 확률이 낮다. 해시 충돌의 대표적인 대안으로써 다음과 같은 방법들이 있다. @Chaining 해시 충돌이 일어날 경우 해당 해시 코드로 최초 저장된 데이터를 시작..
- Total
- Today
- Yesterday
- 알고리즘
- 프로그래머스[스택/큐]
- 실행 문맥
- Kubernetes
- Web
- javascript
- 프로그래머스[힙]
- Jenkins
- CD
- Apollo
- 프로그래머스[정렬]
- 프로그래머스[Lv1]
- JPA
- 프로그래머스
- 프로그래머스[이분탐색]
- Handshake
- typescript
- Pipeline
- 프로그래머스[해시]
- 동적계획법
- Docker
- CRP 최적화
- Spring Boot
- Nashorn
- graphql
- execution context
- react
- PostgreSQL
- CI
- 웹 사이트 최적화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |