✅ 비동기 제어하기 Promise "Promise는 프로미스가 생성될 때 꼭 알 수 있지는 않은 값을 위한 대리자로, 비동기 연산이 종료된 이후의 결과값이나 실패 이유를 처리하기 위한 처리기를 연결할 수 있도록 합니다. 프로미스를 사용하면 비동기 메서드에서 마치 동기 메서드처럼 값을 반환할 수 있습니다. 다만 최종 결과를 반환하지는 않고, 대신 프로미스를 반환해서 미래의 어떤 시점에 결과를 제공합니다. 간단히 말하면 비동기 처리에서 사용하는 객체다. Promise는 다음 중 하나의 상태를 가집니다. 대기(pending): 이행하지도, 거부하지도 않은 초기 상태. 이행(fulfilled): 연산이 성공적으로 완료됨. 거부(rejected): 연산이 실패함. 대기(pending) new Promise(exe..
비동기 정말 어렵다..... 수업을 들어도 정말 이해가 안가는 녀석.. 이번 정리를 통해 비동기 용어 개념은 확실히 알아놔야겠다. 🔥 사전에 알아야 될 용어 - 동기 동기란 요청이 들어온 순서에 맞게 하나 씩 처리하는 방식으로, 요청 들어온 작업이 끝날 때 까지 기다렸다가 응답을 즉시 처리하고 다음으로 넘어간다. ex) 카페 알바생이 주문을 하나씩 받고 하나 완료 하면 다음 손님으로 넘어간다. - 비동기 비동기란 하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식이다. 요청 들어온 작업을 수행하는 대기시간 동안 다른 요청을 처리하다가 요청이 완료됬다는 이벤트 핸들러 (callback 함수)의 알림이 오면 처리한다. ex) 카페 알바생이 손님들 음료를..
프로토타입 체인(Prototype Chain) 자바스크립트는 특정 객체의 프로퍼티나 메소드에 접근시 객체 자신의 것뿐 아니라 __proto__가 가리키는 링크를 따라서 자신의 부모 역할을 하는 프로토타입 객체의 프로퍼티나 메소드를 접근할 수 있다. 즉, 특정 객체의 프로퍼티나 메소드 접근시 만약 현재 객체의 해당 프로퍼티가 존재하지 않는다면 __proto__가 가리키는 링크를 따라 부모 역할을 하는 프로토타입 객체의 프로퍼티나 메소드를 차례로 검색하는 것이 바로 프로토타입 체인이다. 모든 프로토타입 체이닝의 종점은 Object.prototype 이다. 하위 객체는 상위 객체의 프로퍼티나 메소드를 상속받는 것이 아니라 공유한다. 해당 객체에 없는 프로퍼티나 메소드를 접근할 때 프로토타입 체이닝이 일어난다...
✅ 프로토타입이란? JavaScript는 프로토타입 기반 언어이다. 프로토타입(Prototype)은 원형 객체를 말한다. JavaScript의 모든 객체는 각자의 부모 객체와 연결되어 있으며 부모 객체의 프로퍼티나 메서드를 상속받아 사용할 수 있다. 이러한 부모 객체를 프로토타입이라고 한다. 위의 사진에서는 위에서부터 차례대로 클래스, 프로토타입, 인스턴스이다. 상속은 .protorype 프로퍼티를 통해서 가능하다면 인스턴스가 자신의 프로토타입은 .__proto__를 통해서 가능하다. 💡 .prototype : 내가 원형일 때 존재함. 함수 객체만 가지고 있다. 생성자를 가지는 원형으로 선언 가능 💡 __proto__ : 나의 원형을 가리킴 모든 객체가 가지고 있다. 하나의 Link 라고 할 수 있다.
✅ 객체지향프로그래밍 (object-oriented programming(OOP)) 프로그램 설계방법론이자 개념의 일종으로, 명령형 프로그래밍에 속한다. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음으로 봐야 한다. object-oriented programming(OOP) OOP는 프로그램 설계 철학입니다. OOP의 모든 것은 "객체"로 그룹화됩니다. OOP의 4가지 주요 개념을 통해 재사용성을 얻을 수 있습니다. OOP는 객체로 그룹화된다. 이 객체는 한번 만들고 나면, 메모리상에서 반환되기 전까지 객체 내의 모든 것이..
✅ 클래스(Class)와 인스턴스(Instance) 객체 지향 프로그래밍 패러다임을 따른다는 것은 하나의 모델이 되는 청사진(blueprint)를 만들고, 그리고 그 청사진을 바탕으로 한 객체(object)를 만든다는 것을 의미한다. 하나의 모델이 되는 청사진, 바로 이것이 클래스(class)가 되는 것이고, 그 청사진을 따라 만들어진 것이 객체이면서 그 클래스의 인스턴스(instace)가 된다. 클래스(class)는 한마디로 말하자면 '틀'이라고 생각할 수 있다. 무언가를 만들 때, 그 만들 물건의 겉 모양을 미리 만들어놓고 그대로 찍어낼 수 있게 하는 "틀" 말이다. 간단하게 붕어빵을 만드는 모습을 생각해보자. 붕어빵을 만드는 행동을 코딩이 생각하고 대입시켜보면 아래와 같은 그림을 생각할 수 있을 것..
저번주 금요일부터 월요일까지 수업 정규시간으로는 2일을 걸쳐 페어와 함께 koans 문제를 풀었다. 문제를 풀면 풀 수록 성취감이 있고 문제의 난이도도 적당해서 알아가는 재미가 있었다. 검색만 1시간 넘게 했던 부분들이 많았는데 페어분의 도움으로 문제를 잘 풀어나갔던것 같다. ✅ expect 함수 : 테스트 하는 값과 기대하는 조건(matcher)을 비교한다 expect(테스트하는값).(기대하는조건=expression 또는 value) expect(A === B).to.be.true expect(A + 1).to.equal(B) expect(A[1]).to.deep.equal('young') // to.deep.equal ---> 배열의 요소나 객체의 속성이 서로 같은지 확인하는 matcher '==' ..
오늘은 Linux와 Git의 기초학습을 하였다. 오늘은 실습하는 시간 보다 설치하고 어디가 왜 설치가 안되는지 구글링 하고 해결하는데 시간을 더 많이 쓴 것 같다. terminal를 이용하여 파일을 생성하고 이동하고 복사하고 등 많은 것들을 할 수 있음에 놀라웠고 이 안에서 과제를 제출을 할 수 있다는 사실에 정말 신기했다. Bare Minimum Requirements node.js 프로그램인 index.js를 실행시켜서 CLI에서 결과를 확인하세요. range 모듈을 설치하고, 사용법을 알아보세요. 짝수를 생성하는 getListMultiplesOfTwo 함수를 range 모듈을 이용해서 작성하세요. npm run test 스크립트를 통해 제대로 작성했는지 테스트할 수 있습니다. 테스트 케이스를 전부 ..
오늘은 3일동안 배운 js 기초를 활용하여 계산기가 구현이 되도록 코드를 입력해보았다. 오늘도 하면서 정말 많은 멘붕이 있었다... 그래도 Pair와 함께해서 좀 더 수월하게 풀어나갈 수 있었던 것 같았다. ✍️ 계산기 구현 Bare Minimum Requirements 계산기에는 5가지 종류의 버튼이 있습니다. 숫자 버튼 연산자 (+, -, *, /) 버튼 소수점 버튼 계산 (Enter) 버튼 초기화 (AC) 버튼 ⭐️ 기능 구현 순서 1. 화면의 첫 번째 칸에 숫자 나타내기 2. 화면의 두 번째 칸에 숫자 나타내기 3. 화면에 출력된 숫자와 연산자로 계산하기 4. 화면 상의 값을 초기화하기 코드 실행 calculate 함수 계산기 작동 해설 1. 연산시 script.js의 calculate 함수를 활..