목록개발 (301)
데이터베이스 SQL : 데이터가 엑셀과 같은 표(Table)안에 행렬(row & column)와 같은 형태로 저장되어 있음 데이터끼리 상호연결 (관계형 데이터베이스) / MySQL, Oracle, PostgreSQL noSQL : 데이터가 컬렉션(collection)안에 객체(dacument)와 같은 형태로 저장되어 있음 데이터끼리 비교적 유연하게 연결(비관계형 데이터베이스) / MongoDB / Redis / Firebase 데이터베이스에서 사용하는 명령어 : 쿼리문(Query Language)이라고 함 SQL : ex) select(조회) 'name' from(출처) 'user' / ORM(sequalize / typeorm / prisma)를 통해 명령어 변경 noSQL : db.user.find(..
비동기적 프로그래밍 자바스크립트는 동기적 실행이 기본적이지만, 비동기적 실행이 필요할 때가 있다. 예를 들어, 스크립트에서 A와 B 두 가지의 API 를 요청한다고 했을 때, 두 API 끼리 상호 간 연결고리가 없다라고 한다면 A의 요청과 응답이 끝날 때까지 B를 가만히 두는 것은 시간 낭비이기 때문. 따라서 위와 같은 문제를 해소하기 위해 상호 간 응답을 기다리지 않고 코드를 진행시키는 방식을 비동기적 프로그래밍이라고 한다. 비동기적 프로그래밍 유형은 세 가지 정도로 볼 수 있다. 콜백 함수 (callback) promise (프로미스 객체) ansync & await 콜백 함수(callback) 콜백 함수에 대해 가볍게 정의하자면, '함수에 인자로 넘겨지는 함수'라고 볼 수 있다. 예를 들면 아래와 ..
문제 풀이에 사용된 메서드 : new Array(length) / fill / map function solution(x, n) { return new Array(n).fill(x).map((a,i)=>a*(i+1)) } solution(2,5)// 테스트 코드 [ 2, 4, 6, 8, 10 ] // 1. new Array(n) 으로 n개 만큼 배열 내 공간 생성 // 2. fill을 통해 생성된 배열에 x로 공간을 모두 채움 // 3. map을 통해 배열마다 x만큼의 간격을 줌 fill 메서드는 처음 써본 것 같은데, 편한 기능이다. ^_^ 재밌다 알고리즘
두 정수 사이의 합을 구하는 문제이다. 해당 문제를 풀이하기 위해 활용한 메서드 : new Array(length) / fill / map / reduce 문제 설명 풀이 방식 function solution(a, b) { let arr = new Array(Math.abs(b-a)+1) .fill(ax+i) return arr.reduce((q,w)=>{ return q+w }) } // 1. new Array의 길이로 Math(b-a)+1 만큼 설정 // 2. 해당 배열을 a,b 둘 중 작은 값으로 채움 // 3. 채워진 값마다 1씩 증가시켜 map으로 리턴 // 4. 배열 안에 채워진 값을 reduce를 통해 누산시켜 반환 보다 쉬운 풀이 방법도 있겠지만, reduce 메서드를 써보고 싶었다.
데이터베이스 (DB) 데이터베이스는 데이터의 집합, 여러 정보들을 저장하여 운영하는 데이터의 묶음이다. 어떤 의미에선 아래와 같이 내가 작년 산책하던 기록을 저장한다면 그 또한 데이터베이스라고 볼 수 있다. 미래 개발자로서의 입장으로는 '컴퓨터 시스템에 저장되는 조직화된 데이터 모음'이라고도 정의할 수도 있다. 데이터베이스의 유형을 구분하는 것은 여러 갈래로 표현할 수 있겠지만, 오늘은 SQL 과 noSQL 에 대해 공부한 내용에 대해 다뤄보려고 한다. 먼저 SQL과 noSQL 에서 QL이 무슨 의미를 갖는지 알 필요가 있는데 다음과 같다. QL(Query Language) : QL은 '질의어'라는 의미를 갖는데, 이는 DB에 저장되어 있는 데이터를 꺼내거나 저장시킬 수 있는 언어라는 의미를 가지고 있다..
가상 머신 기존 운영 체제(OS)안에 다른 OS(일반적으로는 리눅스)를 추가로 설치하여 운용하는 것을 가상 머신이라 한다. 가상 머신의 장단점을 나열하자면, 장점 : 무료(리눅스)이며 서버로 쓰기에 가장 안정적이지만, 단점 : 부팅을 두 번해야 할뿐더러 용량을 많이 차지하여 성능 저하가 우려된다. Docker 위와 같은 단점을 보완하기 위해 나온 것이 Docker. (docker 또한 기본적으로 리눅스 os를 채택함) Docker 의 핵심적인 장점을 나열하자면 1. 개발 / 배포환경 통일 : 한 사람이 설치한 내용을 타인에게 파일처럼 효율적으로 공유할 수 있음 2. 프로그램 미리 설치 : 이미지를 저장해놓고 컨테이너로 불러와 사용하기 때문에 굳이 새로 설치할 필요 없음 3. 가벼운 가상컴퓨터 :커널(운영..
async-await async-await를 이해하기 위해선 동기와 비동기 개념을 이해해야 한다. 동기 : 등록이 될 때까지 기다림 / 서버 컴퓨터가 작업이 끝날 때까지 기다리는 통신 비동기 : 요청들이 서로 기다릴 필요 없을 때 사용 / 동시에 여러 일을 할 때 / 서버 컴퓨터가 작업이 끝날 때까지 기다리지 않는 통신 => axios 와 같은 API 관련 기능들은 '비동기'가 기본값 vscode 내에서 비동기 // 비동기 통신 // 비동기로 실행되기 때문에 생기는 Promise const data = axios.get(url - / 중략 / ) // API정보를 받아오기 전에 저장 console.log(data) // 비동기 통신 (async / await) // async : 함수 앞 / await ..
axios axios는 node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리다. 쉽게 말해, 백엔드와 프론트엔드 간 통신을 쉽게하기 위해 사용한다. (백엔드, 프론트엔드 둘다 가능) 이번 포스팅에서는 HTML내에 axios를 설치하고 적용하는 방식에 대해 설명한다. 해당 코딩은 이전에 만든 휴대폰 번호 토큰 전송 기능을 활용한다. axios 설치는 npmjs에 제시된 cdn을 통해 완료했다. 먼저 프론트엔드(가상) 내에 axios 통신이 구현됨을 확인하기 위해 HTML을 만들었다. 이때, '인증하기' 버튼을 누르면, zzz() 라 이름지은 함수가 실행되게 되는데 그 함수의 모습은 이렇다. function zzz(){ // 1. 입력한 휴대폰 번호 가져오기 const myP..