일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lightsail nodejs apache
- OOP
- 객체참조 #객체
- url #querystring
- 기후변화
- #cloudfront #s3 #html 확장자 없애기
- git pair
- ESLint
- jest
- 클로저
- NPM
- TypeScript
- this
- Today
- Total
목록분류 전체보기 (89)
Hello World...
자바스크립트 객체 참조. 객체 참조 const list = { head: null, tail: null }; let node = { value: 10, next: null }; list.tail = node; >> {value: 10, next: null} list.head = node; >> {value: 10, next: null} list.tail.next = {value: 2, next:null} >> {value: 2, next: null} list.head.next; >> {value: 2, next: null node 는 객체이므로 값 복사가 되는 것이 아니라 참조된다. list.tail 과 list.head 는 동일하게 node 객체를 가리키고 있다.
시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. -위키피디아 컴퓨터 과학에서 비효율적인 알고리즘을 사용하게 되면 경우에 따라서는 현재 컴퓨터 성능 기준으로 수억년이 걸릴 수 있다고 한다. constant logarithmic linear quadratic expoential O(1) O(log n) O(n) O(n^2) O(c^n) array - index 로 접근시 바로 접근 가능, 할당할 때도 O(1) - 추가, 삭제 하는 경우 기존 데이터의 위치를 재조정해야하므로 O(n) - 값을 찾는 경우(인덱스X) 처음부터 검색해야 하므로 O(n) Linked list - 헤드(HEAD)를 알아야 한다. - 값을 찾을 때는 헤드에서부터 찾아가는 방식이므로 찾기, 할당 O(n) - 추..
클로저란, 내부함수가 리턴되어도 외부함수의 변수를 참조할 수 있는 것을 말하는데, 객체가 리턴되어도 객체의 메소드도 외부함수의 변수를 참조할 수 있다. const L = function() { const s = []; const obj = {}; obj.push = function(v) { s.push(v); }; obj.get = function() { return s; }; return obj; }; const tl = L(); console.log(tl); tl.push(1); tl.push(2); console.log(tl.get()); // console // { push: [Function], get: [Function] } // [ 1, 2 ] obj 가 리턴되어도 obj 의 메소드를 이용해..
자료구조 Base 1.스택 Stack LIFO: 마지막에 들어간 데이터가 가장 먼저 나오는 구조이다. 비유를 들자면 장독 같은 거라고 보면 되겠다. 자바스크립트로 보자면 배열의 push 와 pop 이라고 생각하면 된다. const arr = [1,2]; arr.push(3); // [1,2,3] arr.pop(); // [1,2] 2.큐 Queue FIFO: 먼저 들어간 데이터가 가장 먼저 나오는 구조이다. 비유를 들자면 놀이동산에서의 줄서기라고 보면 되겠다. 자바스크립트 배열의 push와 shift 를 생각하면 된다. const arr = [1,2]; arr.push(3); // [1,2,3] arr.shift(); // [2,3] Advanced 1. Linked List Linked List는 Ar..
1. OOP OOP(Object-Oriented Programming) 객체지향은 프로그래밍 패러다임 중 하나로, 사람이 실제로 세계를 보고 이해하는 방식으로 프로그래밍을 하는 것을 말한다. (마치 사물 "thing"을 보는 것처럼) 객체지향 외 절차지향, 함수형 프로그래밍 등 여러 패러다임 존재한다. 객체지향은 절차형 프로그래밍으로는 복잡한 문제를 해결하기가 힘들어졌기 때문에 그 문제를 해결하기 위해 고안 되었다고 한다. 어떤 문제가 있고, 그 문제를 해결하는 과정 중에 프로그래밍 패러다임이 발전한 것이다. 그렇다고 객체지향이 만능이냐 하면 그렇지 않다. 문제를 해결하기 위한 하나의 방법일 뿐으로, 절차지향, 함수형 프로그래밍 등 다양한 방법론이 필요하다. * 중요 키워드 1. 추상화 ㄴ 불필요한 정보..
자바스크립트 this 는 정말 헷갈리는 것 중 하나다. 그래도 5가지 패턴을 잘 기억하고 있으면, 공부에 도움이 많이 된다. console.log(this); var fun = function() { console.log(this); } ------------------------ 1. 전역 Global Reference : console.log(this); => window, global 2. 함수 호출 Free Function Invocation : fun(); => window, global 3. call, apply 호출 call or apply Invocation : fun.call(obj); fun.apply(obj) => first arg 4. 생성자 Construction Mode : ne..
parseJSON 이라는 고난도 재귀 문제. 하루 이틀 가지고는 풀기 어려운 문제다 😣 거의 테스트 통과에 근접했다고 믿고 싶지만 (ㅎㅎ) 어쨌든 다른 수강생분의 코드를 참고해서 완료하였다.(정말 대단하신...) 그래도 문자열 이스케이핑 처리 부분은 머리를 짜내 나름대로 열심히 코딩하였다. const str = '["\\n"]'; >> "\n" 위 str 을 JSON.parse(str) 을 하면 어떻게 될까? 개행 문자가 배열 안에 있다. 단순히 백슬래쉬라는 문자와 n 이라는 문자의 조합이 아닌 이스케이프 문자다. ['\\n'] \\ => '\' + 'n' 이런 형식으로 배열 안에 넣으면 단순 문자열로 취급된다. 어떻게 해야 하나 고민하다 예전에 아스키 코드를 사용했던 기억을 떠올려 객체를 만들었다. c..