본문 바로가기

📖 TIL/Node.js

(24)
[Node.js] DB Schema 💎️ 데이터베이스 스키마란? 데이터 베이스 스키마란 무엇일까. 위키백과에 따르면 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료간의 관계를 형식 언어로 정의한 구조라고 정의하고 있다. 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하고 데이터 베이스 사용자가 자료를 저장 조회, 삭제, 변경할때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다고 하는데 이때 스키마는 3층 구조로 되어있다고 한다. 한번 살펴보도록 하자. 외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것 개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로 하는 데이터..
[Node.js] DTO, DAO, VO 그리고 Entity 📖️ DTO가 무엇일까? 우리가 데이터베이스를 접하면 꼭 알아두어야할 DTO, DAO, VO에 대해 알아보도록 하자. 우선 첫번째 DTO는 무엇일까? DTO는 Data Transfer Object는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체라고 한다. 또 DB에서 꺼낸 값을 임의로 조작할 필요가 없기 때문에 DTO에서는 Setter을 만들 필요 또한 없고, DTO클래스에서는 생성자에서 값을 할당하게 된다고 한다. Request와 Response용 DTO는 View를 위한 클래스 역할을 하기도 한다. 이는 자주 변경이 필요한 클래스를 말하는데 toEntity 메소드를 통해서 DTO에서 필요한 부분을 이용하여 Entity로 만들고 Controller ..
[Node.js] Scraping & Crawling ⚡ 스크래핑이란? 스크래핑이란 원하는 자료를 모으는 행위다. 그렇다면 IT에서는 어떻게 쓰이고 있을까. 대표적으로 데이터를 스크랩핑할 수 있다. 이게 무슨소리인가 하면, 어떤 특정 사이트에서 그 사이트의 정보(데이터) 중에 필요한 정보 등을 긁어와서 정보 추출 및 가공하여 제공할 수 있는 기술을 말하는데, 그 긁어온 정보를 DB에 저장도 할 수 있다고 한다. 그렇다면 이건 언제 쓰일까? 우리가 어떤 특정 URL을 누군가에게 공유할때 링크 및에 그 링크의 사이트의 소개와 이미지가 나오는 것을 볼 수 있을 것이다. 그런 것처럼 그 사이트에가서 정보를 가져오는 것을 스크래핑이라고 할 수 있다. (이 글에 마지막에 나오는 참조 부분에, 링크를 걸면 이미지와 해당 사이트의 소개가 담긴 박스가 생성되는데 그것이 바..
[Node.js] package.json ⚡ Package.json이 뭘까 package.json은 어떤 라이브러리를 썼는지, 모듈을 썼는지를 자동으로 기록해 두는 목록 파일이라고 생각 할 수 있다. npm Docs에 따르면 package.json에서 가장 중요한 부분은 이름과 버전 필드 부분이라고 한다. 이름과 버전은 함께 완전히 고유한 것으로 간주되는 식별자를 형성하고, 패키지 변경은 버전 변경과 함께 제공되어야 한다고 한다. 또한 파일을 작성할때는 JS 객체 리터럴이 아닌 JSON 포맷을 사용해야 한다고 한다. 그렇다면 가장 중요하다고 하는 이름과 버전 필드 부분에 대해 가볍게 알아보도록 하자. Name 이름 이름은 반드시 214자보다 짧아야 하고 범위 패키지의 범위가 포함된다. 범위가 지정된 패키지의 이름은 점이나 밑줄로 시작할 수 있다..
[Node.js] REST-API REST-API 란? REST-API란 REST를 기반으로 API를 REST하게 만드는 것을 뜻하는데, 여기서 REST가 무엇일까? REST는 위키백과에 따르면 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로, 엄격하게는 네트워크 아키텍처 원리의 모음이라고 정의되어있다. HTTP 위에 쿠키 등을 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다고도 되어있다. REST 아키텍처에는 적용되는 6가지 제한 조건이 있는데 공식문서를 통해 자세히 읽어보도록 하자. 문서에 따르면 REST의 정의는 다음과 같은 것 같다. 리소스를 이름으로 구분하여 주고받는 모든 것. API는 위키백과에 따르면 컴퓨터와 컴퓨터 프로그램 사이의 연결이라고 한다. 일종의 컴퓨터..
[Node.js] Graphql-API GraphQL이란? 위키백과에 따르면 그래프QL은 페이스북이 2012년에 개발하여 2015년에 공개적으로 발표된 데이터 질의어이다. 그래프QL은 REST 및 부속 웹서비스 아키텍처를 대체할 수 있다고 한다. rest-API에 비해 GraphQL의 장점은 클라이언트의 필요한 데이터의 구조를 지정할 수 있으며, 서버는 정확히 동일한 구조로 데이터를 반환할 수 있다는 것이다. 이렇게 원하는 데이터만 골라서 가져올 수 있는 장점은 사용자가 많은 서비스에서 큰 진가를 발휘하는데, 바로 데이터 처리에 있어서 네트워크 비용절감 효과와 빠른 속도를 낼 수 있다는 점이 있다. 그래프QL은 rest-API다르게 단 두개의 쿼리문을 쓰게 되는데 다음과 같다. 요청방식 REST-API GraphQL 조회 GET QUERY 생..
[Node.js] node-module설치 node_modules? node_modules를 이용하여 좀더 다양한 오픈소스를 사용할 수 있는데 대표적으로 이러한 라이브러리 오픈 소스를 패키지로 관리하고 저장해둔 npm패키지를 이용할 수 있다. 기본적으로 npm을 이용해서도 설치가 가능하지만 페이스북(지금은 메타)에서 만든 yarn을 이용해서도 이러한 것들을 설치 가능하다. yarn 설치 ## 터미널 ## 1. yarn 설치(우분투인 경우 sudo를 꼭 쓴다.) sudo npm install -g yarn ## 2. 설치 확인 및 버전확인 yarn --version 우선 터미널을 열어보자. 위와 같이 순서대로 쳐보자 sudo : 우분투 에서 관리자 권한으로 실행 같은 존재 npm install : npm을 통해 설치(install)설치하겠다. 무엇..
[Node.js] Node.js 설치 ⚡ Node.js 란? Node.js는 공식문서에 따르면 Chrome V8 자바스크립트 엔진으로 빌드 된 자바스크립트 런타임이라고 한다. 런타임은 실행 환경이라 이해할 수 있다. 확장성 있는 네트워크 애플리케이션(서버 사이드) 개발에 사용되고 있는 소프트웨어 플랫폼으로 자바스크립트를 사용하는 논블로킹(Non-Blocking) I/O와 단일 스레드 이벤트 루프를 통해 높은 처리 성능을 갖고 있다고 하는데 특히 내장 HTTP 서버 라이브러리를 포함하고 있어서 웹 서버에서는 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이로인해 웹 서버의 동작에 있어 더 많은 통제를 가능하게 한다고 한다. 그렇지만 이게 정확하게 무슨 말인지 필자도 한번에 이해 못해서 생각을 간단하게 축약하자면 자바스크립트를 서버..