본문 바로가기

전체 글

(97)
비동기 Achievement Goals 어떤 경우에 중첩된 callback이 발생하는지 이해할 수 있다. 중첩된 callback의 단점, Promise의 장점을 이해할 수 있다. Promise 사용 패턴을 이해할 수 있다. resolve, reject의 의미와, then, catch와의 관계를 이해할 수 있다. Promise에서 인자를 넘기는 방법을 이해할 수 있다. Promise의 세 가지 상태를 이해할 수 있다. Promise.all 의 사용법을 이해할 수 있다. async/await keyword에 대해 이해하고, 작동 원리를 이해할 수 있다. Node.js의 fs 모듈의 사용법을 이해할 수 있다. 콜백함수 1. 콜백함수는 함수 그자체를 연결하는거지 함수의 실행을 통한 return 값을 보내주는 것이 아니..
다차원 배열을 계속 접근하여 새로운 배열을 추출 문제 :중첩 배열에 접근하여 새로운 배열 추출 주의사항 함수 flattenArr는 재귀함수의 형태로 작성합니다. Array Method flat()과 flatMap() 사용은 금지됩니다. 반복문(for, while) 사용이 가능합니다. 입력받은 배열은 함수의 호출 뒤에도 처음 상태를 유지해야 합니다(immutability). 입력으로 전달되는 다차원 배열이 중첩된 정도(중첩의 깊이)는 정해져 있지 않습니다. 빈 배열을 입력받은 경우, 빈 배열을 리턴해야 합니다. 입출력 예시 let output = flattenArr([[1], 2, [3, 4], 5]); console.log(output); // --> [1, 2, 3, 4, 5] output = flattenArr([[2, [[3]]], 4, [[[5..
데이터 타입이 배열인 변수의 문자열 만들기(JSON 연습) 문제 데이터 타입이 배열인 변수를 JSON 형태로 바꾸자(쉽게 말해 [1,2,3,4] => '[ 1,2,3,4]' 푸는 순서 코드 1. 문자열의 형태를 생각해서 일일이 붙이기 if( typeof obj === 'object'){ //배열인경우 if(Array.isArray(obj)){ //[4,5,6]=>"[4,5,6]"를 만들어라 //result에 꺽쇄를 넣자 result +="["; //요소를 넣기 위해서는 하나씩 반복해서 문자열화 시켜서 더해주면 된다. for(let i=0; i
자료구조 기초 스텍 & 큐 자료구조를 왜 배울까? 자료구조란? 자료구조는 자료(데이터)를 다루는 구조 그 자체를 뜻한다. 즉 자료를 어떤 순서로 다룰 것인지에 대한 설계도라고 이해하면 쉽다. 목적: 원하는 데이터를 쉽게 찾기 위해서 만약 [1,2,3,4,....10000]중에서 원하는 데이터를 찾아 처리를 해야 한다고 한다면?? 당신은 어떤 방식을 쓰겠는가? 에 대한 물음이라는 생각. 스택(first in last out) 스택의 사전적 의미는 쌓다. 쌓았기 때문에 처음에 들어가기는 쉽지만 나오기 위해서는 마지막으로 나가야 함. ex) 1차선에 차들이 들어섰을 때 첫번째 차량은 먼저 들어갈 수 있지만 나가고 싶을 때는 마지막으로 나가는 구조. 생각해보기 1. 데이터가 만들어진다 객체에 순서를 만들어준다. 2. 그에 따라 속성이 하..
JSON형식 문제 컴퓨터간 데이터를 주고받을 때는 1.같은 프로그래밍 언어를 쓰던가 2. 문자열 형태 두 가지 중에 하나를 만족해야 합니다. 같은 프로그래밍 언어를 두 컴퓨터가 만족하기란 쉽지 않으므로 객체를 문자열 형태로 변경하여 진해해야 합니다. 그러나 우리가 아는 문자 열 객체.toString() 을 쓰게 된다면 객체의 속성과 값은 변하지 않기 때문에 순서 1. 직렬화 즉 stringfy 를 진행하기 데이터 const message = { sender: "배현철", receiver: "레샤", message: "레샤야 오늘 저녁 같이 먹을래?", createdAt: "2021-01-12 10:10:10" } stringfy (문자열 객체로 전환) let transferableMessage = JSON.strin..
html 데이터 삭제 방법 문제 : html 의 데이터 삭제하기 생각: '/write' 액션에 'post' 을 방법을 한 것 처럼 'delete' 요청을 할 수 있지만 그럴려면 라이브러리 필요. 순서 :ajax (서버와 통신할 수 있는 자바스크립트 문법) :새로고침 없이도 통신 할 수 있음 jquery 라이브러리를 이용해서 1. 제이쿼리 cdn 2. ajax를 이용해서 서버와 통신하기 $.ajax({ method : 'delete', url: '/delete', data: '{_id :1}' }).done(function(result){ }) 3. 서버에서는 method를 했을 때 data를 요청에 받아온다. (*body._id 가 문자열로 읽히기 때문에 정수로 전환이 필요함) app.delete('/delete', functio..
재귀 재귀의 이해 arr[5,3,2] 리스트의 합을 구하는 방법을 생각할 때 let sum=0; for(let i=0; i
db에 아이디 달기(영구 결번의 중요성) 문제 데이터의 아이디는 삭제와 추가에 상관 없이 id의 영구결번이 있어야 한다. 순서 1. count라는 collection 추가 2. name: 총개수 countTotal: 0 객체 만들기 3. db.collection 3개 3.1 name: '총개수'인 객체에서 countTotal 속성 찾기 이 데이터를 result에 저장후 새로운 변수에 저장 3.2 같은 전역 안에 넣기 위해 insertOne을 findOne에 넣어주면 totalcount를 쓸 수 있음 post 하여 하나씩 넣어줄 때마다 totalCount에 1를 더하기 3.insertOne을 한 후에는 기존에 있던 속성 counter 에 속성 countTotal에 1을 더하기 app.post('/add',function(request,respon..