목록전체 글 (305)
스크래핑과 크롤링 스크래핑 : 한번 가져오기 /타 웹페이지에서 데이터를 추출하는 것 / Cheerio(도구를 사용할 수 있음) 크롤링 : 꾸준히 가져오기 / 타 웹페이지에서 '데이터들'을 추출하는 것 / Pttuppeteer(도구를 사용할 수 있음) 브라우저 주소창의 실체 이해 브라우저 주소창 == API-GET 요청하는 도구 (like 포스트맨) 응답 결과가 HTML이라면 HTML 구현 || JSON포멧이라면 json.data 를 보여준다. 오픈 그래프(Og) 특별한 기능을 하지는 않으나, 자신의 사이트를 공유하기 위해 사용하는 방식 타 플랫폼에 해당 사이트를 입력하면, 하단부에 사이트 설명이 등장하는 것과 같음 Og 예시 HTML 내 Og // meta property = og: ## 의 형태로 저장..
mongoDB-campass / schema schema 는 SQL || noSQL 의 활용을 편리하게 하기 위해 데이터 간의 연결고리 및 형식을 정의하는 것을 말한다. 아래 소스 코드에서는 Board 에 대한 스키마를 { writer / title / contents } 로 정의하였다. import mongoose from "mongoose"; const boardSchema = new mongoose.Schema({ writer : String, title : String, contents : String }) // 모델 export const Board = mongoose.model("Board", boardSchema) 앞선 포스팅에서 mongoose 는 mongoDB의 명령어를 단순화해준다고 설..
Database-tool 은 database를 관리하는 도구이다. 그래픽을 추가한 요소로 쉽게 볼 수 있다는 의미로 GUI(Graphical User Interface)라고도 한다. 해당 포스팅은 noSQL 중 MongoDB / MongoDB Campass를 기준으로 얘기하며, 먼저 바로 왜 database-tool 을 사용해야 하는지 사진 한 장으로 설명하고자 한다. 아래 사진은 noSQL 중 하나인 MongoDB 에서 터미널을 통해 임의 폴더의 데이터를 열람한 모습이다. 가독성은 당연히 떨어지며, 단어가 엉망으로 나열되어 있어 읽기가 싫을 정도. 그리고 위와 같은 날 것의 데이터에 UI를 추가하여 사용하기 편하게 만든 것이 DatabaseTool이다. 위 터미널에서 보여준 데이터와 같은 데이터를 보여..
오늘은 이전에 업로드한 포스팅에서 잠시 언급했었던 의존성 모듈(package.json)에 대해 얘기한다. 먼저 해당 파일은 yarn install || npm install 을 터미널을 통해 설치하면 다운로드가 가능하며, yarn add || npm i 를 하여 설치한 모듈들은 package.json에 추가되게 된다. 우선 package.json 은 다음과 같은 파일 형식을 보이고 있고, package.json은 상위 폴더가 지니고 있는 모듈들(의존하는 패키지들)의 이름과 각 모듈이 가지는 버전까지 포함하고 있다. **의존성 모듈들은 "dependencies" 안에 위치하고 있다. 따라서 프로젝트 파일 내에서 설치된 모듈을 파악하려면 이곳을 먼저 찾아보는 것이 좋다. package.json 뒤에 붙은 j..
데이터베이스 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 메서드를 써보고 싶었다.