프로그래밍 (68) 썸네일형 리스트형 Codestate 프로젝트 회고 프로젝트 소개 Right Now 기간 : 2021-12-27 ~ 2022-01-21 사용자의 현재 위치를 기반으로 주변의 같은 관심사의 다른 사용자들과 자동으로 모임을 매칭 시켜 주는 위치기반 서비스 배포 | 깃허브 | 프로젝트 소개 왜 이 프로젝트 주제를 선택했나? 요즘 같은 모두 바쁜 시대에 특정인들과 약속을 잡기 쉽지 않고, 또 같은 취미를 가진 사람들을 찾기에는 더욱 쉽지 않습니다. 이러한 불편함을 해결하기 위해 시간을 절약하며 내 주변에 있는 나와 취미가 맞는 사람들과 빠르게 모임을 만들 수 있는 프로그램을 개발하면 어떨까 해서 이러한 프로젝트를 시작하게 되었습니다. Right Now 만의 특징은? rightnow 는 소모임 참가 시 다른 소모임 플랫폼들과는 다르게 유명 게임 '리그오브 레전드'.. [Javascript] 프라미스 체이닝(Promise Chaining) 프라미스 체이닝 순차적으로 처리해야 하는 비동기 작업이 여러개 있을 시 아래와 같이 프라미스 체이닝을 사용하여 작업을 할 수 있음 let myPromise = new Promise((resolve,reject) => { setTimeout(() => resolve(20),500); // 1 }); myPromise .then(res => { // 2 console.log(res); return res+res; }) .then(res => { // 3 console.log(res); return res+res; }) .then(res => { //4 console.log(res); }) 결과 then 핸들러를 사용하면 프라미스를 반환하기 때문에 체인처럼 계속해서 .then 을 사용하며 원하는 순서대로 비동.. [Javascript] 프라미스(Promise) 프라미스(Promise)란? 프라미스란 자바스크립트에서 비동기 처리에 사용되는 객체로써 콜백을 조금 더 효율적이고 깔끔하게 처리하기 위해 사용됨. 프라미스를 사용하면 비동기 처리되는 코드를 마치 동기적으로 처리될 수 있게 할 수 있음. 프라미스는 아래와 같이 사용할 수 있음 let myPromise = new Promise(fucntion(resolve,reject){ if(success){ resolve(someData); someData = 11; //이 코드는 무시됨 }else{ reject(error); } }) Promise에 넘겨준 콜백함수는 executor(실행자) 라고 하며 new Promise 가 생성될 때 자동으로 실행됨. resolve는 성공했을때 아래 value를 결과와 함께 호출하.. [Javascript] 콜백 콜백함수 콜백함수란 어떤 고차함수에 해당 함수를 인자로 넘겨주어 사용되는 함수를 말함 어떤 코드가 비동기적으로 실행될 때 콜백함수를 유용하게 사용할 수 있음 인자로 넘겨받은 스크립트를 html문서에 추가시켜주는 함수가 있다고 가정 function load(src){ let script = document.createElement("script"); script.src = src; document.head.append(script); } //함수를 실행 load("scripts/scriptOne.js"); 위와같이 load라는 함수를 실행하면 비동기적으로 동작함 load로 불러온 "scripts/scriptOne.js" 에 myFunc(){} 라는 함수가 있다고 가정 function load(src){ l.. [Javascript] Javascript 내장 클래스 확장 내장 클래스의 확장 map, array같은 자바스크립트 내장 클래스들도 확장하여 사용할 수 있음 class MyArray extends Array{ getConstructor(){ return this.constructor; } } let myArr = new MyArray(10,11,12,13); console.log(myArr); console.log(myArr.getConstructor() === MyArray) console.log(myArr.getConstructor() === Array) 결과 Array를 확장한 MyArray클래스의 생성자는 Array가 아니라 MyArray 인 것을 알 수 있음 [Javascript] private, protected 내부, 외부 인터페이스 객체지향 프로그래밍을 할 시에는 외부인터페이스와 내부인터페이스를 구분하는것이 필요함 내부인터페이스는 외부에서 접근이 불가능해야하고 오로지 외부인터페이스를 통해서만 외부에서 접근해야 함 내부 인터페이스(internal interface) : 동일한 클래스 내의 다른 메서드에선 접근할 수 있지만, 클래스 밖에선 접근할 수 없는 프로퍼티와 메서드 외부 인터페이스(external interface) : 클래스 밖에서도 접근 가능한 프로퍼티와 메서드 자바스크립트에서는 아래와 같은 2가지 타입의 객체필드가 있음 public : 어디에서든지 접근이 가능하고 외부 인터페이스를 구성하는데 사용됨 접근 필드를 명시하지 않을시 디폴트 private : 클래스 내부에서만 사용 가능하고 내부 인터페이스를.. [Javascript] static 메서드와 프로퍼티 정적(static) 메서드 prototype 이 아닌 클래스 함수 자체에 메서드를 설정한 것을 static 메서드 라고 함 class MyClass{ static staticMethod(){} method(){} } console.dir(MyClass); 결과 위의 MyClass 의 구조를 보면 static 키워드를 사용한 staticMethod는 MyClass에 바로 설정되어 있고 사용하지 않는 method 는 prototype 내부에 설정되어 있는것을 볼 수 있음 정적(static) 메서드의 사용 정적 메서드는 클래스 함수에 직접 할당되어 있으므로 new 를 이용하여 객체를 생성하지 않아도 실행 될 수 있음 //정적 메서드를 이용하여 객체를 생성 class Person{ constructor(name.. [Javascript] 클래스 상속 클래스 상속을 위한 'extends' 클래스 선언 시 클래스명 옆에 extends '부모 클래스명' 을 이용하여 부모 클래스를 상속받을 수 있음 클래스를 상속받으면 부모 클래스의 메서드를 사용할 수 있음 class Parent { method(){ console.log("Im a parent class"); } } class Child extends Parent {} let MyObj = new Child(); //Child에는 method라는 메서드가 존재하지 않지만 부모로부터 상속을 받았으므로 사용 가능 MyObj.method(); 결과 extends 를 통해 Child.prototype.[[Prototype]] 을 Parent.prototype 로 설정하므로 Child.prototype 에서 메서드.. 이전 1 2 3 4 ··· 9 다음