일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- VPC
- DynamoDB
- Endpoints
- prometheus
- 자바스크립트
- Service
- transit gateway
- Custom Resource
- null 병합 연산자
- docker
- On-Premise
- CloudFormation
- JavaScript
- 구조분해 할당
- api gateway
- 비구조화 할당
- Proxy Resource
- elasticsearch
- Await
- 옵셔널 체이닝
- grafana
- vgw
- 온프레미스
- optional chaining
- docker swarm
- AWS
- cognito
- Kubernetes
- Site-to-Site VPN
- 단축 평가
- Today
- Total
목록JavaScript (14)
만자의 개발일지
프로미스(Promise) 자바스크립트는 비동기 처리를 위해 콜백함수를 사용합니다. 하지만 콜백을 너무 남용하게 되면 우리가 흔히 부르는 콜백 지옥에 빠질 수가 있습니다. 또한 에러처리도 힘들 뿐더러 여러 개의 비동기 처리를 한번에 하는데 한계가 있습니다. 이런 콜백 함수의 단점을 보완하며 비동기 처리에 사용되는 객체를 프로미스(Promise)라 합니다. 프로미스를 사용하면 다음과 같은 이점을 얻을 수 있습니다. 비동기 처리 시점을 명확하게 표현할 수 있다. 연속된 비동기 처리 작업을 수정, 삭제, 추가하기 편하고 유연하다. 비동기 작업 상태를 쉽게 확인할 수 있다. 코드의 유지 보수성이 증가한다. 프로미스는 객체이기 때문에 생성자 함수를 호출하여 인스턴스화할 수 있습니다. 프로미스의 생성자 함수는 res..
클로저는 함수와 함수가 선언된 어휘적 환경(Lexical enviroment)의 조합입니다. 클로저를 이해하기 위해서는 먼저 어휘적 범위 지정(Lexical scoping)에 대해 이해할 필요가 있습니다. 어휘적 범위 지정(Lexical scoping) 스코프는 함수를 호출할 때가 아니라 함수를 어디에 선언했냐에 따라 결정됩니다. 이를 어휘적 범위 지정(Lexical scoping)이라 합니다. 예제를 통해 살펴보도록 하겠습니다. outerFunc()(외부함수)는 지역 변수 name과 함수 innerFunc()을 생성합니다. innerFunc()은 outerFunc()안에서 정의된 내부 함수 입니다. innerFunc()을 보면 외부함수인 outerFunc()에 정의된 지역변수에 접근할 수 있는 것을 보..
콜백함수(Callback Function) 콜백함수는 함수를 활용하는 방법중 하나입니다. 정확하게는 콜백함수는 파라미터로 전달받은 함수를 말합니다. 파라미터로 콜백함수를 전달받고 함수 내부에서 필요할 때 콜백함수를 호출할 수 있습니다. 예제를 통해 살펴보겠습니다. add함수로 리턴된 값을 printResult함수의 인자로 전달해 주었습니다. function add(x, y) { return x + y } function printResult(result) { console.log(result) } printResult(add(10,20)) 위 코드를 콜백함수로 구현하면 다음과 같이 변경할 수 있습니다. add함수에 콜백함수를 받을 print라는 파라미터를 추가하고 내부에서 x와 y의 합을 인자로 전달해 ..
Private Methods and Fields 자바스크립트에서 클래스의 속성들은 기본적으로 Public이기 때문에 클래스 외부에서 접근할 수 있습니다. 하지만 ES2019부터 #prefix 를 추가해 클래스 내부에서 Private하게 메소드와 필드를 선언할 수 있게 되었습니다. Private한 메소드와 필드는 클래스 내부에서만 불러올 수 있습니다. class ClassWithPrivateMethodAndField{ field = 'public field' #privateField = 'private field' publicMethod() { return 'call private method: '+ this.#privateMethod(); } #privateMethod() { return this.#pr..
호이스팅에 들어가기 앞서 먼저 자바스크립트에서 어떻게 변수를 생성하는지에 대해 이해할 필요가 있습니다. 자바스크립트에서의 변수 처리 자바스크립트에서는 총 3단계에 걸쳐 변수를 생성합니다. 선언 단계(Declaration phase) 변수 객체(Variable Object)를 생성하고 변수를 등록한다. 스코프는 해당 변수 객체를 참조한다. 초기화 단계(Initialization phase) 변수 객체(Variable Object)에 등록된 변수를 메모리에 할당한다. 변수는 undefined로 초기화된다. 할당 단계(Assignment phase) undefined로 초기화된 변수에 실제값을 할당한다. 자바스크립트에서는 var, let, const 키워드를 붙여 변수를 생성합니다. 이는 기본적으로 3단계를 ..
자바스크립트에서는 총 4가지 방식의 for문을 지원합니다. for 가장 기본적인 for문입니다. for(let i=0;i < 10;i++) { console.log(i) } for in 객체에 포함된 모든 프로퍼티 열거합니다. var student = { name: 'manja', age: 19, location: 'seoul' } for(let key in student) { console.log(key,':',student[key]) } name : manja age : 19 location : seoul for of 컬렉션 전용 반복문으로 for of문을 사용하기 위해서는 객체가 iterable해야합니다. var arr = [10, 20, 30]; for (let value of arr) { co..