공부하게 된 이유? 미니 프로젝트를 만들기 위해서는 데이터를 가져오는 작업이 필수적이다. 작은 데이터는 상관 없겠지만 모든 데이터를 일일히 손으로 가져올 수도 없을 뿐더러, 데이터가 추가되는 경우에는 다시 수정을 해야하는 작업이 필요하기 때문이다. 웹 크롤링이 뭔데? 위키백과 웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다. 웹 크롤링을 공부하며 참고한 자료 [Youtube - 개발자의품격 ](https://www.youtube.com/watch?v=xbehh8lWy_A) 셋팅
Promise.all 마지막까지 실행하고, 배열로 return Promise.race 가장 빠른 것부터 실행 후 종료
new Promise 기본 promise hell 극복 async, await 사용 await 또한 promise를 return 따라서 then 사용 가능
new Promise promise를 만들어서 사용하는 법 보통 함수 안에서 작동하게 끔 사용(재사용 가능) resolve 네이스틱 방식 체이닝 방식 reject 체이닝 방식 catch, return Promise.reject()
Fetch API fetch 문법 const fetchResponsePromise = fetch(resource [, init]) return A Promise that resolves to a Response object. 의미 Promise를 return하는 함수 비동기적으로 동작하는 함수일 가능성이 매우 높음 두 개의 함수를 사용할 수 있음(정확히 말하면 method) 사용 Promise를 리턴 사용2 JSON -> JavaScript 정리 json 파일을 fetch().then 으로 받으면 => response 파일 fetch().then => return response.json() => promise fetch().then => return response.json() => .then => JavaScript
AJAX Asynchronous JavaScript And XML 웹페이지에서 동적으로 서버에게 데이터를 주고 받을 수 있는 기술 주로 XHR을 사용 XHR XMLHttpRequest 객체 브라우저 API에서 제공하는 객체 중 하나 fetch API XML HTML과 같은 Markup Language JSON JavaScript Object Notation 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷 객체 형태와 유사함 사용 JSON.stringify(object) JSON.parse(json)
String.prototype.split() split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
Array.prototype.filter() filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. 구문 arr.filter(callback(element[, index[, array]])[, thisArg]) 구현1 구현2 구현3
Strict mode 느슨한 모드(sloppy mode): 엄격하지 않은 기본값 적용 기능 기존에는 조용히 무시되던 에러들을 throwing합니다. JavaScript 엔진의 최적화 작업을 어렵게 만드는 실수들을 바로잡습니다. 가끔씩 엄격 모드의 코드는 비-엄격 모드의 동일한 코드보다 더 빨리 작동하도록 만들어집니다. 엄격 모드는 ECMAScript의 차기 버전들에서 정의 될 문법을 금지합니다.
Array.Concat() concat() 메서드는 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환합니다.
1️⃣ 함수 매개변수: parameter, 함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수, name 인수: argument, 함수가 호출될 때 함수로 값을 전달해주는 값, 'joong' 2️⃣ 함수 선언문 2️⃣ 함수 표현식 2️⃣ 비교 함수 선언문: 어디서나 호출 가능 함수 표현식: 코드에 도달하면 생성 3️⃣ 화살표 함수 함수 표현식에서 function 삭제, => 추가 4️⃣ 코드 본문 한 줄 {} => (), return 생략 4️⃣ return 문 한 줄 () 생략 4️⃣ 인수 한 개 () 생략
1️⃣ 프로토타입 prototype 따로 생성하지 않아도, 자동으로 존재하는 유전자 프로토타입에 추가하면, 자식들이 사용가능 2️⃣ 관계 3️⃣ prototype 부모에 있는 유전자 검사 3️⃣ proto 자식에 있는 유전자 검사
1️⃣ 객체 지향(OOP) 객체지향 프로그래밍(Object Oriented Programming, OOP) vs 절차적 프로그래밍(Procedure Programming) 데이터 모델의 청사진 '클래스'를 사용해 코드 작성 현대 언어들은 대부분 객체 지향 2️⃣ OOP Basic Concepts 3️⃣ 캡슐화 Encapsulation 데이터(속성)와 기능(메소드)을 따로 정의하는 것이 아닌, 하나의 객체 안에 넣어서 묶는 것 은닉(hiding): 구현은 숨기고, 동작은 노출시킴 느슨한 결합(Loose Coupling)에 유리: 언제든 구현을 수정할 수 있음 3️⃣ 추상화 Abstraction 내부 구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념 3️⃣ 상속 Inheritance 부모 클래스의 특징을 자식 클래스가 물려받는 것 3️⃣ 다형성 Polymorphism 똑같은