전체 글 320

[TypeScript] Decorator

Decorator - TypeScript와 ES6의 Class 도입으로 클래스 및 클래스 멤버에 주석을 달거나 수정하는 것을 지원하기 위해 도입 - 클래스 선언과 멤버에 대한 주석과 메타 프로그래밍 구문을 모두 추가할 수 있는 방법을 제공 - JavaScript에 대한 stage 2 proposal - 향후 변경될 가능성 有 - @expression 으로 사용 -- expression은 decorate된 선언(declaration)에 대해 정보와 함께 런타임에 호출될 함수를 평가(evaluate)함 예제 // @sealed 라는 decorator 생성 function sealed(target) { // do something with 'target' ... } - 선언에 적용할 decorator를 커스터..

카테고리 없음 2020.10.21

[TypeScript] Type Annotation

Type Annotation TypeScript는 type이 있는 언어 (※ JavaScript는 loosely typed 언어, dynamic 언어 - 타입 지정이 필요 없고, 같은 변수에 여러 타입의 값을 넣을 수 있음) 변수나 함수, 객체 속성의 데이터 타입을 지정 변수명, 함수명, 객체 속성명 뒤에 : type 을 써서 데이터 타입을 지정 TypeScript는 JavaScript의 primitive type(number, string, boolean)을 사용 가능 Type annotation을 사용하여 type 검사를 수행 필수사항 X 사용 시 장점 컴파일러가 type을 확인하는 데에 도움 data type을 처리하는 오류 방지에 도움 협업을 할 때 읽기 쉬운 코드가 됨 유지보수에 장점 예제 //..

[Git] merge와 rebase 차이

git에서 서로 다른 브랜치를 합치는 방법은 1. merge 2. rebase 가 있다. merge $ git checkout master $ git merge 마스터에_병합하고_싶은_브랜치 - 병합을 하면 합쳐진 브랜치의 커밋 메시지가 중복으로 쌓인다. rebase $ git checkout 리베이스할_브랜치 $ git rebase master --리베이스할 브랜치를 마스터 브랜치에 머지-- $ git checkout master $ git merge 리베이스한_브랜치 - 병합을 하면 브랜치의 커밋 메시지가 시간 순서대로 합쳐진다. 어쨌든 rebase도 브랜치를 합치려면 merge 명령어를 써야한다. 왜 나는 정리되어 있는 글을 읽으면 더 이해가 안될까? 이해력이 부족한건가 출처 https://back..

기타 2020.10.20

[JavaScript] map, for...in, for...of, forEach문

map() - 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환 구문) arr.map(callback(currentValue[, index[, array]])[, thisArg]) paramter callback - 새로운 배열의 element를 생성하는 함수 currentValue : 현재 처리할 element index (Optional) : 처리하는 현재 element의 index array (Optional) : map()을 호출한 배열, 원래 배열 thisArg (Optional) - callback을 실행할 때 this로 사용되는 값 return value 배열의 각 element를 callback 수행 후 나온 결과를 순서대로 모든 새로운 배열 예제) ..

[MongoDB] collection or index disappeared when cursor yielded: CappedPositionLost: CollectionScan died due to position in capped collection being deleted. 에러

{"name":"MongoError","message":"collection or index disappeared when cursor yielded: CappedPositionLost: CollectionScan died due to position in capped collection being deleted. Last seen record id: RecordId(8146548)","ok":0,"errmsg":"collection or index disappeared when cursor yielded: CappedPositionLost: CollectionScan died due to position in capped collection being deleted. Last seen record id..

Database 2020.10.15

[JavaScript] closure (클로저) 란?

클로저(closure) 함수와 함수가 선언된 어휘적 환경의 조합 엥 이게 무슨 말이지;; mdn 도와줘!!! 소스코드로 이해를 해보자. 예제) function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName; } var myFunc = makeFunc(); //myFunc변수에 displayName을 리턴함 //유효범위의 어휘적 환경을 유지 myFunc(); //리턴된 displayName 함수를 실행(name 변수에 접근) - "displayName()"이 실행되기 전에 "makeFunc()"에 의해 "displayName()"이 return되어 "myFunc" 변수에 저장됨 (클로저..

[Angular] Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: '' 해결 방법

URL parameter에 특수기호가 들어있으면 router 설정을 제대로 해줬다고 생각이 들어도 다음과 같은 에러가 발생할 수 있다. 나 같은 경우는 ( ) 위 괄호들이 문제를 일으켜 다음과 같은 에러를 뱉고, 페이지가 그려지지 않았다. ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'MSBlaster%2520Worm,%2520Messenger...' Error: Cannot match any routes. URL Segment: 'MSBlaster%2520Worm,%2520Messenger...' at ApplyRedirects.webpackJsonp../node_modules/@angular/route..