목록개발 (301)
graphQL graphQL 은 rest-API 와 마찬가지로 API 를 생성하는 방식이다. 요청하는 데이터 크기와 상관 없이, 관련된 모든 데이터를 응답받는 REST 방식과 달리, GRAPHQL 은 요청하는 데이터 만큼만, 데이터를 응답받을 수 있다는 장점을 가진다. graphQL 을 구현하는 방식은 두 가지로 나뉜다. Schema-first 와 Code-first Schema-first 스키마 우선 방식(=schema-first) 는 2016년 graphQL 이 출시했을 때 처음부터 사용했던 방식이다. 스키마 우선 방식은 먼저 GraphQL 의 스키마에 대해 설계하고 정의한 후에 이후 API 기능을 추가하는 것에 중점을 둔다. 예시로 위와 같은 스키마를 먼저 작성한 뒤, 해당 스키마에 정의된 내용과 ..
재귀함수 재귀함수는 어떤 함수 내부에서 자기 자신을 부르는 함수이다. 어떤 측면에서는 조건을 만족하기 전까지 무한히 반복하는 while 문과 닮아있다. 재귀함수는 두 가지 조건을 충족해야 한다. 자기 자신을 함수 내에서 반드시 return 해야 한다. 무한히 실행되는 것을 방지하기 위해 종료 조건문을 작성해야 한다. // 재귀함수 예시 function recursion () { if()// 종료 조건문 recursion() // 자기자신 실행 } 어떤 면에서는 이게 말이 되는 문법인가 싶긴 하지만, 조건을 추가해주면 가능하다. 직접 만들어본 문제 전달인자 s(5)에 대해 반복적으로 1씩 차감한다고 할 때, 's
이전에 배열에서 스프레드 연산자를 활용하는 방법에 대해서 설명한 적 있다. 오늘은 객체에서 스프레드 연산자를 활용하는 방법까지 포함하여 포스팅해보려 한다. 배열에서의 스프레드 연산자 배열 복제 let arr = [1,2,3] let copyArr = [...arr] console.log(copyArr) // [ 1, 2, 3 ] // 기존 arr 변경 arr.pop() console.log(arr) // [ 1, 2 ] console.log(copyArr) // [ 1, 2, 3 ] 배열의 복제는 스프레드 연산자를 활용하여 위와 같이 사용할 수 있다. 기존의 배열이 변경되더라도 복제한 배열이 변경되지 않는다. (참조값 복사가 아닌 값 복사라는 의미다.) 스프레드 연산자를 활용한 구조분해할당 (rest 문..
스크래핑과 크롤링 스크래핑 : 한번 가져오기 /타 웹페이지에서 데이터를 추출하는 것 / 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..