본문 바로가기
반응형

js5

[JS] async와 await javascript로 코드를 짜다보면 비동기는 빠질 수 없는 개념입니다. 만약 비동기로 작성하지않는다면?.... 위에 사진처럼 콜백 지옥에 빠지게 됩니다.. 하하..... 코드의 가독성도 저하되고, 문제점을 바로 찾을 수가 없습니다. 이를 해결하기 위해 async와 await를 사용하는 방법과 개념을 정리해보려고 합니다. 1.async async는 function 키워드 앞에 위치하게 됩니다. async function test() { return 1; } function 앞에 async를 붙이면 해당 함수는 항상 프라미스를 반환합니다. 프라미스가 아닌 값을 반환하더라도 이행 상태의 프라미스(resolved promise)로 값을 감싸 이행된 프라미스가 반환되도록 합니다. async function te.. 2021. 9. 11.
에라토스테네스의 체 프로그래머스 소수찾기 문제를 풀면서 예전에 사용해보았던 에라토스테네스의 체라는 알고리즘을 다시 한 번 사용해보았습니다. 에라토스테네스의 체를 그림으로 한번 살펴볼까요? 이런 식으로 2의 배수부터 지워나가 3의 배수, 4의 배수... 증가시켜 제거하는 방법입니다. 코드 리뷰를 통해서 확인해보겠습니다. function solution(n) { let arr = Array(n+1).fill(true).fill(false,0,2); //n의 숫자의 크기만큼 array를 할당해주고 true로 채워줍니다. 0,1은 소수가 아니기 때문에 제외해줍니다. for(let i =2; i*i 2021. 9. 2.
[JavaScript] for in, for of , for, while 성능비교하고 서비스의 Duration을 줄여보자! 회사에서 유저에게 제공될 예약목록을 보여주는 기능을 구현하고 있습니다. 예약 건수가 별로 안되는데 timeout이 생기는 일이 종 종 생겨 Duration을 줄이기 위해 코드를 뜯어고쳐보고 있습니다. 최대한 쿼리 하는 부분을 줄였는데도 Duration을 잡을 수가 없었습니다.. 그래서 근본적인 로직을 다시 한번 분석해보기로 했습니다. 컴파일 비교는 [https://jsben.ch/BQhED] 여기서 확인했습니다. var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,15,16,17,18,23,123,12,31,23,123,123]; var newVar; 이 코드를 통해 진행해보았습니다. (배열 하나를 생성하여 확인해보았습니다.) 성능은 확실히 기본적인 for.. 2021. 6. 5.
[mongoDB, JavaScript] 시간복잡도를 줄여보자! join이 안된다고?? 회사에서 기존 서비스 기능들을 기능 개선을 하고 있다. mongoDB를 사용하는데 단점이…. join이 안된다…. ㅠㅠ 예를 들어 a class가 있는데 이 class에서 하나의 필드가 포인터로 b class의 기본키나 다른 키를 가리키고 있다고 하면 mysql이나 다른 곳에는 join기능이 있어 한번 쿼리로 b class의 객체까지 담아서 가져올 수 있지만 mongoDB에서는 그게 안된다… 그렇다면 어떻게 해야 할까? 어쩔 수 없다! 쿼리를 두 번해서 join을 직접 코드로 넣어줘야 한다! 두 번 쿼리 하는 거는 Promise chaining을 해서 비동기로 가져오면 된다.(이 것도 나중에 시간이 되면 정리해야겠다.) ex) aList = [ { _id: "dasdas", name: "name$asld.. 2021. 6. 2.
[JS] 구조분해할당 js에서 자주 사용하는 구조분해할당을 정리해보려고한다.!! 구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 표현식이다. 말로 설명하는 것보다 코드로 보면서 정리하는게 이해하기 빠르다. sungmin이라는 객체 안에 object의 값들을 다 넣어주고싶다. 그럴때 ...을 사용하면된다. ...은 객체안에있는 값들을 가져와서 넣어주는 기능을 하는 js의 특징이다. 이 방법을 통해 좀 더 쉽게 데이터를 다룰 수 있다. 다른 상황을 보자! caffee라는 객체 안에 음료정보와 가격정보가 들어가있다. 이것을 메뉴판에 넣어보고싶다. 이때 객체 안에 조건을 통해서 값을 넣을지 말지도 구조분해할당으로 해줄 수 있다. caffee라는 객체가 있으면 안에다가 값을 넣어주면된다.. 2021. 5. 1.
반응형