본문 바로가기
반응형

Javascript11

Queue으로 작업실행 🏒 Task 를 Queue를 이용하여 작업 처리 하기회사에서 작업을 하던 도중 해당시간이 되면 Queue에 담긴 순서대로 작업을 처리해야 하는 경우가 발생하였다.로직은 아래와 같다A음원 실행특정시간이 되면 B 음원 시작B음원이 끝나면 C음원 시작C음원 끝나면 D음원 시작D음원 끝나면 다시 A음원 시작단 2~4는 A음원이 음소거가 되어야 한다 🤿 TaskQueue 클래스 작성class TaskQueue { constructor() { this.queue = []; this.isRunning = false; } add(task) { this.queue.push(task); this.runNext(); } isLast() { return this.queue.leng.. 2025. 5. 19.
💿 상태 패턴 🕹️ 상태 패턴이란객체의 상태를 조건문으로 검사해서 행위를 달리하는것이 아닌상태를 객체화 하여 상태가 행동할 수 있도록 위임하는 패턴.객체의 상태에 따라 행동을 변경videoPlayer를 상태패턴 만들기VideoPlay클래스를 통해 상태를 인자로 받고, setState를 통해 상태를 바꾸도록 한다class VideoPlay { constructor(state) { // Object.create를 통해 새로운 객체로 받고, Object.assign을 통해 객체복사를 진행한다 this.state = Object.create(Object.assign({ videoplayer: this }, state)); } setState(state) { this.state = Object.creat.. 2024. 11. 25.
❄️ 전략 패턴 🥹 전략 패턴이란여기저기 조사한 바로는 전략패턴은 아래와같다동일 계열의 알고리즘을 정의하고,각 알고리즘을 캡슐화하여,상호교환 가능하도록 만든다. 비슷한 계열의 객체를 if/else문 대신에, 객체의 메소드를 호출하는 방식으로 이해가 된다.다만 이렇게 했을때는 if/else으로 하지 않는 장점은 있지만, 객체수가 늘어난다.  😚 if/else으로 작성Video라는 객체가 있고, play 메소드에서는 생성자에서 어떤값을 받느냐에 따라 log가 다르게 나온다.그것을 If/else 문으로 작성하면 아래와 같다class Video { constructor(videoType) { this.videoType = videoType; } play() { if (this.videoType === "St.. 2024. 11. 19.
☂️ 커링 🍋 커링이란???"커링은 함수 인자를 받는 대신, 한개만 받는 여러개의 함수를 리턴"이다 라고 대부분 설명이 나온다.나의 생각으로는 함수 안에 함수 안에 함수를 리턴해주는 방식으로 이해했다.덧셈,곱셈을 통해서 커링을 어떻게 사용했는지 알아보자 🍈 덧셈,곱셈 을 커링으로 만들기덧셈,곱셈에 인자를 똑같이 받고, 결과값만 다르게 커링을 만들어보면 아래와 같다.화살표 함수로 만들었으며, a,b,fn을 받고  a,b는 덧셈,곱셈 할 숫자를 입력하는 것이고, fn은 두개의 인자를 통해서 함수의 결과를 리턴한다. 그리고 sum,multipy 함수를 만든다./** * 인자를 똑같이 받고 결과값만 다르게 받고 싶다 * ex) 5,4를 받는 인자가 존재하고, 결과(곱셈,덧셈)이 달랐으면 좋겠다 */const curry.. 2024. 5. 29.
반응형