드림오구
article thumbnail

🌊 TIL : 2023년 3월 20일  

 

오늘의 알고리즘

: 문제 자체 유출이 금지되어 있기 때문에 내가 푼 방법만 표시.. 

 

문제

: 문자열을 입력받아 순서가 뒤집힌 문자열을 리턴

 

내가 푼 방법

  1. 문자열이 0인 것은 빈 문자열로 리턴
  2. Array.from을 이용하여 주어진 문자를 배열로 만들기
  3. sort 이용하여 정렬 후 리버스를 하고, 문자열이기 때문에 + 연산자를 사용하고자 결심
  4. 그리하여 reduce로 문제 풀이!

 

 

타이머 API

질문 리스트

  • Promise 실행 함수가 가지고 있는 두 개의 파라미터 resolve 와 reject 는 각각 무엇을 의미하나요?
    → 
    resolve : 주어진 값으로 이행하는 Promise 객체 반환. 이때 지정한 값이 then 가능한 값인 경우 Promise.resolve()가 반환하는 promise는 then 메서드를 따라가서 자신의 최종 상태를 결정, 그 이외의 경우 반환된 promise는 주어진 값으로 이행. 
    reject : 주어진 사유로 거부하는 Promise 객체를 반환

  • resolve, reject함수에는 전달인자를 넘길 수 있습니다. 이때 넘기는 전달인자는 어떻게 사용할 수 있나요?


  • new Promise()를 통해 생성한 Promise 인스턴스에는 어떤 메서드가 존재하나요? 각각은 어떤 용도인가요?

    then : promise에 이행과 거부처리기 콜백을 추가, 콜백이 호출될 경우 그 반환값으로 이행하며 호출되지 않을 경우 처리된 값과 상태 그대로 처리 되는 새로운 Promise를 반환
    catch : Promise에 거부 처리기 콜백을 추가하고 그 반환값으로 이행하며 호출되지 않을 경우, 즉 이전 프로미스가 이행하는 경우 이행한 값을 그대로 사용해 이행하는 새로운 Promise 반환
    finally : Promise의 이행과 거부 여부 상관 없이 처리될 경우 항상 호출 하는 처리기 콜백을 추가하고 이행한 값 그대로 이행하는 새로운 Promise를 반환

  • Promise.prototype.then 메서드는 무엇을 리턴하나요?
    → 필요한 일을 수행(콜백함수)

  • Promise.prototype.catch 메서드는 무엇을 리턴하나요?
    → 에러를 처리한다.

  • Promise의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가지나요?

    대기(pending) : Promise를 이행하지도, 거부하지도 않은 초기상태.
    이행(fulfilled) : Promise의 연산이 성공적으로 완료 됨.
    거부(rejected) : Promise가 에러가 난 상태, 연산이 실패함,

  • await 키워드 다음에 등장하는 함수 실행은 어떤 타입을 리턴할 경우에만 의미가 있나요?
    → Promise를 기다리기 위해 사용된다. 

  • await 키워드를 사용할 경우, 어떤 값이 리턴되나요?

 

 

오늘 배운 것

: 비동기를 왜 고민하게 되었나? 다른사람에게 일을 시키는 것처럼 다른 사람 혹은 내 컴퓨터의 유휴 자원을 활용하기 위해서 고민하다가 생겨난 방법이다. 

 

동기적 : 하나의 작업이 끝나면 다음 작업이 진행되는 형태

비동기적 : 하나의 작업이 끝나지 않아도 다음 작업이 같이 진행되는 형태

 

비동기의 방식 3가지

  • callback
  • promise
  • async/await

비동기 작업을 할 때 순서를 지켜야만 하면 callback 내에다가 코드를 적을 수 있다.

let promise = new Promise((resolve, reject) => {
  // 1. 정상적으로 처리되는 경우
  // resolve의 인자 값을 전달할 수 있다.
  //무언가 비동기 작업을 한다.
  resolve('ok');

  // 작동이 문제가 되면 reject
  reject(new Error('error'));
});

 

자칫하다간 callback hell이 될 수 있으니 주의할 것~

 

 

어려웠던 부분

: Promise 방식으로 .then을 연결할 때 제대로 연결 된게 맞는지 자꾸 확인 하게 됨.. 그리고 코드 생략 하는 것도 조금 어려운 듯..

 

느낀점

: 아직 가슴으로 와닿는 개념은 아니고 조금 더 연습해봐야할 것 같다. 

 

더 공부할 것

: 아마 내일 마저 페어프로그래밍 진행하고 공부할 듯 하다 b 

 

 

profile

드림오구

@드림오구