일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파일 url
- bucket4j
- invalid_grant
- 프리코스
- this
- oauth
- concurrency limit
- redis
- api 비동기처리
- 자바스크립트
- Deep Dive
- 프론트엔드
- 우아한테크코스
- 우아한 테크코스
- api 요청 수 제한
- 유효시간 설정 url
- 타입스크립트
- 프로그래머스
- compateto
- 모던 자바스크립트
- AWS
- 프론트엔드 과제
- NestJS
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- TypeORM
- 딥다이브
- 스프링부트
- Dev-Matching
- 음악 url 파일 다운로드
- 검색
- Today
- Total
목록전체 글 (174)
개발 알다가도 모르겠네요
실행 컨텍스트(execution context)는 자바스크립트의 동작 원리를 담고 있는 핵심 개념. 실행 컨텍스트를 바르게 이해하면 아래 이해 가능. 자바스크립트가 스코프 기반으로 식별자와 식별자 바인딩(식별자에 바인딩 된 값)을 관리하는 방식과 호이스팅이 발생하는 이유 클로저의 동작 방식 태스크 큐와 함께 동작하는 이벤트 핸들러와 비동기 처리의 동작 방식 소스코드의 타입 ECMAScript 사양은 소스코드(ECMAScript Code)를 4가지 타입으로 구분. 4가지 타입의 소스 코드는 실행 컨텍스트를 생성. 소스코드를 4가지로 구분하는 이유는 소스코드의 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리 내용이 다르기 때문. 전역 코드 global code 전역에 존재하는 소스코드. 전역에 정의된 함수..
코드의 재사용 동일한 작업을 반복적으로 수행하는 코드를 함수로 만들어 사용하는 것이 효율적. 유지보수 편의성 & 코드의 신뢰성 같은 코드의 중복으로 인한 수정에 걸리는 시간과 사람의 실수를 억제하고 재사용성을 높일 수 있음. 코드의 가독성 함수는 객체 타입의 값. 적절한 함수 이름은 함수 내부 코드를 이해하지 않고도 함수의 역할을 파악할 수 있게 돕고, 이는 코드의 가독성을 향상시킴. // 변수에 "함수 리터럴"을 할당 var f = function add(x, y) { return x + y; }; 리터럴(literal) 은 문자 or 약속된 기호를 사용해 값을 생성하는 표기 방식. 위에 코드는 함수 리터럴 을 변수에 할당 한 것. 즉, 함수 리터럴도 평가되어 값을 생성하며, 이 값은 객체(object..
1. 원시 타입의 값 === 원시 값 은 변경 불가능한 값(immutable value) 객체 타입의 값 === 객체 는 변경 가능한 값(mutable value) 2. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장. 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장. 3. 원시 값을 갖는 변수를 다른 변수에 할당하면 원시 값이 복사되어 전달 → 값에 의한 전달(pass by value) 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달 → 참조에 의한 전달(pass by reference) 원시 값 원시 값은 변경 불가능한 값(immutable value) == 읽기 전용(read only) 값 변경 불가능하다. 변수는 하나의 ..
객체란? 원시 값: 변경 불가능한 값 (immutable value) 객체 값: 변경 가능한 값 (mutable value) 프로퍼티: 객체의 상태를 나타내는 값. 메서드: 프로퍼티를 참조하고 조작할 수 있는 동작. (프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드라 부름) 프로퍼티 접근 마침표 프로퍼티 접근연산자(.)를 사용하는 마침표 표기법 대괄호 프로퍼티 접근 연산자([...])를 사용하는 대괄호 표기법 var person = { name: 'Lee' } //마침표 표기법에 의한 프로퍼티 접근 console.log(person.name); //대괄호 표기법에 의한 프로퍼티 접근 console.log(person['name']); person.last-name 에서 Node.js 환경과 ..
타입 앨리어스는 새로운 타입을 정의합니다. interface Person { name: string, age?: number } // 빈 객체를 Person 타입으로 지정 const person = {} as Person; person.name = 'Lee'; person.age = 20; person.address = 'Seoul'; // Error 타입 앨리어스도 인터페이스와 마찬가지로 타입으로 사용할 수 있습니다. // 타입 앨리어스 type Person = { name: string, age?: number } // 빈 객체를 Person 타입으로 지정 const person = {} as Person; person.name = 'Lee'; person.age = 20; person.address..
Developer과 Person이라는 인터페이스를 설정하고 함수에 두 인터페이스를 유니온 방식으로 정의해주면, interface Developer { name:string; skill:string; } interface Person { name:string; age:number; } function introduce(): Developer | Person { return { name : 'Tony', age : 33, skill: 'Iron Marking'} } let tony = introduce(); console.log(tony.skill); // error 함수를 tony 변수에 할당한뒤 정의해준 속성 skill을 출력했을때 접근하지 못하고 에러가 발생합니다. 유니온 속성은 공통된 속성에만 접근할..
let bool = true; const arr = [1, 2, 3]; const tuple = [true, 1]; bool = 1; // Error! 아래의 tuple 변수는 배열의 요소가 각각 boolean과 number이기에 최종적으로 추론되는 타입은 boolean과 number의 유니온 타입의 배열, 코드로 나타내면 (boolean | number)[]이 됩니다. 여기에서 배열에서 사용된 요소들의 타입을 각각 추론하여 유니온 타입으로 만들어 내는 방식을 Best common type이라고 부릅니다. Best common type Best common type 은 말 그대로 가장 일반적인 타입입니다. 여러가지 자료형이 배열 내부에서 사용되고 있을 때, 그 여러가지 자료형을 포괄할 수 있는 가장 일반..
TypeScript에서는 enum을 사용하는 것이 가능합니다. enum Color { RED, GREEN, BLUE } 선언 후에 아래와 같이 사용할 수 있습니다. function setColor(color: Color) { // ... } setColor(Color.RED); var Color = { RED: 0, GREEN: 1, BLUE: 2, 0: 'RED', 1: 'GREEN', 2: 'BLUE' }; enum 키워드는 기본적으로 리버스 매핑(reverse mapping)을 지원합니다. 리버스 매핑이란 키로 값을 얻을 수 있을 뿐만 아니라, 값으로도 키를 얻을 수 있는 방식을 말합니다. 선언과 값 초기화 enum으로 만들어진 변수에는 내부적으로 값이 할당됩니다. 별도의 명시가 없다면 값은 0부터..
function add(x: number, y: number): number { return x + y; } let myAdd = function(x: number, y: number): number { return x + y }; 각 파라미터와 함수 자신의 반환될 타입을 정해줄 수 있습니다. TypeScript는 반환 문을 보고 반환 타입을 파악할 수 있으므로 반환 타입을 생략할 수 있습니다. 함수 타입 작성 let myAdd: (x: number, y: number) => number = function(x: number, y: number): number { return x + y; }; 함수의 타입은 매개변수, 반환 타입이 있습니다. 전체 함수 타입을 작성하고자 한다면 이 두 가지 타입이 필요합니..
TypeScript는 인터페이스를 지원하는데 일반적으로 타입 체크를 위해 사용되며 변수, 함수, 클래스에 사용할 수 있습니다. 인터페이스는 선언된 프로퍼티 또는 메소드의 구현을 강제하여 일관성을 유지할 수 있도록 하는 것입니다. 인터페이스는 프로퍼티와 메소드를 가질 수 있다는 점에서 클래스와 유사하나, 직접 인스턴스를 생성할 수 없고 모든 메소드는 추상 메소드입니다. 단, 추상 클래스의 추상 메소드와 달리 abstract 키워드를 사용하지 않습니다. // 인터페이스의 정의 interface Todo { id: number; content: string; completed: boolean; } let todos: Todo[] = []; // 파라미터 todo의 타입으로 Todo 인터페이스를 선언하였다. f..