setTimeout(callback, millisecond) : 밀리초(1/1000) 이후에 콜백함수 실행. 임의의 타이머 ID 리턴 clearTimeout(timerId) : 타이머 ID를 받아 setTimeout 타이머를 종료. 리턴값 없음 setInterval(callback, millisecond) : 밀리초의 주기로 콜백함수 실행. 임의의 타이머 ID 리턴 clearInterval(timerId) : 타이머 ID를 받아 setInterval 타이머를 종료. 리턴값 없음 22.11.22 코스 S2U3 타이머API 진행중
동기적 synchronous : blocking. 앞 작업이 완료되어야 뒷 작업을 시작할 수 있음 요청 후 응답이 올 때까지 멈춰있어야 함 비동기적 asynchronous : non-blocking. 앞 요청의 응답이 오지 않은 상태여도 계속해서 요청 다양한 작업을 동시에 시작하고 작업이 완료되는 순서로 응답하여 작업 완료 순서를 예상할 수 없음 => callback 함수로 순서 제어(handle) promise, async/ await // synchronous 동기적 예시 // 함수 시작 시간에서 현재 시간의 차이가 ms를 넘으면 종료되는 함수 function waitSync(ms) { var start = Date.now(); var now = start; while(now - start < ms)..
좋은 이름을 지으려면 시간이 걸리지만, 좋은 이름으로 절약하는 시간이 더 많다. 그러므로 이름을 주의깊게 살펴 더 나은 이름이 떠오르면 개선 코드 작성의 목표: 이해하기 쉬운 코드(집중적인 탐구가 필요한 것이 아닌 대충 봐도 이해할 코드) 이름을 잘 짓는 규칙 1. 의도를 분명히 밝힐 것 - 존재 이유 - 수행 기능 - 사용 방법 // 주석으로 설명하려하지 말고 이름에 담기 => 코드 이해와 변경이 쉬워짐 2. 그릇된 정보를 피할 것 - 널리 쓰이는 의미가 있는 단어를 다른 의미(혹은 줄임말)로 사용하지 말 것 - 비슷한 변수 이름을 사용하지 말 것 - 유사한 개념은 유사한 표기법 사용(일관성이 떨어지지 않도록) // 아래와 같이 혼란을 주는 변수명을 사용하지 말 것 l 1 // 알파벳 L 숫자 1 O ..
프로토타입 체인(Prototype Chain) 프로토타입을 상속하는 방법(ES5. class 키워드가 없었음) 1. 부모 클래스에서 필요한 전달인자를 받는 자식 클래스 함수 생성 - call 함수로 부모 클래스 호출 2. Object.create(부모class)로 메서드까지 전달 3. 생성자 함수 자식 클래스 함수로 다시 선언하기 // 부모 class가 될 Person 함수 function Person(first, last, age, gender, interests) { this.name = { first, last }; this.age = age; this.gender = gender; this.interests = interests; }; Person.prototype.bio = function() ..
Clean Code 애자일 소프트웨어 장인 정신 로버트 C. 마틴 * 애자일:처음부터 끝까지 계획을 수립하고 개발하는 폭포수(Waterfall) 방법론과는 달리 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법 세 파트로 나눠짐 - 깨끗한 코드를 작성하는 원칙, 패턴, 실기 - 사례 연구(복잡하기 때문에 집중력 필요) - 결말(사례 연구를 만들면서 수집한 냄새와 휴리스틱 열거) * 휴리스틱: 발견법. 합리적인 판단을 할 수 없거나 필요하지 않은 상황에서 빠르게 사용할 수 있게 구성된 간편추론의 방법(단순화) 킬러앱을 개발한 회사가 망한 이유: 나쁜 코드 킬러앱 : 주로 컴퓨터 프로그래밍 소프트웨어 제품 중에 그 인기나 유용성이 아주 높아서 그 제품을 사용하기 위해서 필요한 하드웨어나 운영체제 등..
