Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임(환경)
파일을 여러 개로 분리하여 사용하는 방법분리된 파일을 각각 모듈(module)이라고 부름 클래스 하나 혹은 특정한 목적을 가진 복수의 함수로 구성된 라이브러리 하나로 구성모듈은 단지 파일 하나에 불과스크립트 하나는 모듈 하나모듈에 특수한 지시자 export와 impor
HTTP 통신 인터넷에서 데이터를 주고받을 수 있는 프로토콜(규칙) HTTP(HyperText Transfer Protocol) : 컴퓨터 간에 텍스트 데이터를 주고받는 길 HTTP 요청(Request)과 응답(Response) 1 HTTP 요청(Request)
Express Nodejs 웹 서버 프레임워크
Express 게시글 REST-API 만들기 index.js Postman으로 확인하기 GET 요청 POST 요청 GET 요청으로 확인
미들웨어 함수 첫 번째 매개변수는 엔드포인트 두 번째 매개변수는 미들웨어 함수 미들웨어 함수는 req,res라는 두개의 매개변수를 받고 있음 req는 Request를 res는 Response를 줄여서 사용하는 변수명 Request 브라우저의 주소, 쿠키, 바
Nodejs API swagger 연결 모듈 설치 swagger-ui-express swagger-jsdoc Swagger-jsdoc 설정
index.js 작성 swagger 설정 config.js 작성 index.js 수정 api 만들기 swagger 작성 us
CORS(Cross-Origin-Resource-sharing) 교차 출처 리소스 공유 CORS 문제 서로 다른 출처(origin)를 가진 주소로 요청이 들어왔을 때 발생할 수 있는 에러 port번호가 다른 경우에도 CORS에러 발생 localhost 이지만 다른
설치package.json 수정실행 : yarn dev
GraphQL-API를 사용하기 위한 apollo-server
브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리백엔드와 프론트엔드의 통신을 쉽게하기 위해 Ajax와 더불어 사용운영 환경에 따라 브라우저의 XMLHttpRequest 객체 또는 Node.js의 HTTP API 사용
콜백 함수를 익명 함수로 전달하는 과정이 반복되어코드의 들여쓰기 수준이 감당하기 힘들 정도로 깊어지는 현상정상적으로 실행되지만 들여쓰기 수준이 과도하게 깊어져 가독성이 떨어짐axios는 기본적으로 Promise를 지원하는 라이브러리new 연산자와 함께 호출한 Promi
axios는 기본적으로 async/await를 지원하는 라이브러리비동기 작업을 수행하고자 하는 함수 앞에 async를 표기실질적인 비동기 작업이 필요한 위치마다 await를 표기뒤의 내용을 자동으로 Promise로 자동 전환하고 해당 내용이 resolve된 이후에 다음
Software Development Kit개발자가 앱을 커스텀 할 수 있도록 제공해 주는 도구 모음과 같은 개념이메일 인증전화인증발신번호 등록API KEY & API Secret 발급
npm : NodemailerNodemailer 공식 홈페이지이메일 전송을 위해 Node.js 애플리케이션에서 쉽게 메일을 전송할 수 있도록 도와주는 모듈Nodemailer 외에도 다양한 라이브러리 존재 Google 계정 로그인 Google 계정 설정 페이지 이동보안
SQL(Structured Query Language)은 데이터 베이스를 직접적으로 엑세스 할 수 있는 언어데이터를 정의(Data Definition) 조작(Data Manipulation)조작한 결과를 적용(Transaction Control)접근 권한을 제어(Dat
Docker란? 개발 환경 요소들이 설치된 모습을 이미지로 저장 이미지들이 서로 연결되어서 동작하는 설정을 문서(Dockerfile)로 저장 새 컴퓨터에 가서 복사한 문서으 ㅣ내용대로 이미지를 다운로드하여 설치 도커에서는 불필요한 추가적인 운영체제 설치가 필요 없음
FROM Dockerhub에서 검색한 이미지 편하게 사용할수 있음 node:14 이면 node, npm, yarn이 모두 설치된 리눅스 환경 구성됨WORKDIR가상 컴퓨터가 만들어지면 이후 명령어를 실행할 작업 폴더를 지정COPY. /myfolder/ 현재 디렉토리의
공식홈페이지 :URL Import the public key used by the package management system 몽고DB 설치를 위한 공개 키를 가져오기 Create a list file for MongoDB 몽고DB는 리눅스 기본 패키지로 제공되
도커로 만들어진 각자의 다른 컴퓨터들의 포트포워딩을 위해 그룹핑하는 것을 Docker-Compose복수 개의 컨테이너를 실행시키는 도커 애플리케이션이 정의를 하기 위한 툴 yaml, yml파일을 사용하여 여러 개의 docker 내부 속성을 설정하여 docker를 일괄적
Express는 Dockerfile을 이용MongoDB는 image로 사용Node.js와 MongoDB를 위한 ODM(Object Data mapping) 라이브러리호환성이 없는 JavaScript와 MongoDB의 데이터를 Mapping하여 간편한 CRUD를 가능하게
스크래핑 시스템이나 웹사이트에 있는 데이터 중 필요한 데이터만 추출 및 가공하여 제공하게 되는 기술 어떤 특정한 웹 사이트에 가서 그 사이트의 HTML을 긁어오는 것 Open Graph protocol Open Graph 프로토콜은 소셜그래프(소셜 네트워크의 특성
주기적으로 스크래핑을 여러번 하는 것을 말함크롤링하고자 하는 사이트 url/robots.txt 확인Allow에 해당하는 항목은 크롤링이 허용된 항목Disallow에 할당된 항목은 여러 이슈가 발생할수 있음Allow 해당 항목이라도 서버 과부하을 유발하거나 상업적 판매
컴퓨터 프로그래밍의 패러다임 중 하나컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위 인 "객체"들의 모임으로 파악하고자 하는 것인간 중심적 프로그래밍 패러다임필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고객체들 간의 상호
프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여특정한 "규약"을 통해 쉽게 쓸수 있는 형태로 만드는 것하나의 애플리케이션, 프로젝트를 구성할 때 그 구성 요소를 세가지의 역할로 구분한 패
Tight Coupling(강한 결합)을 Loose Coupling(느슨한 결합)으로 전환 시키는 방법제어의 역전(Inversion of Control)의 기술 중 하나외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴인터페이스를 사이에 둬서 클래스 레벨애서는 의존
TypeScript(타입 스크립트)를 지원하는 효율적이고 확장 가능한 Node.js의 서버 애플리케이션 프레임워크nodejs 서버 애플리케이션을 구축하기 위한 프레임워크서버 애플리케이션 개발시 필요한 많은 부분들을 기본적으로 제공Express 기반으로 만들어짐Types
공식 홈페이지프로젝트 내 .git이 존재 폴더 내 .gitdl 존재한다면 충돌이 일어날수 있으므로 삭제컨트롤러와 서비스가 있음을 확인의존성 주입 확인AppService 의존성 주입 확인
타입스크립트는 자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어이다. 마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. C타입스크립트는 자바스크립트에 타입을 부여한 언어자바스크립트으 확장된 언어라고 볼수 있음 타입스크립트는 브라우저에서 실행하려면 파일을
타입스크립트를 실행해서 자바스크립트 파일을 받아야함빌드 없이 타입스크립트 실행오직 타입 정의로만 이루어져있음npm에 존재하는 거의 모든 패키지여러 개발자들이 NodeJS 모듈의 타입을 작성함그냥 가져다가 사용할수 있음
현재 decorator는 class및 class 내부에서만 사용할 수 있음즉, decorator는 class, class 내부의 property, accessor, method parameter에 사용할 수 있음class의 다양한 property 및 method의 정의
.prettierrc 확인.eslintrc.js 확인프로젝트 최상단 .vscode 폴더 생성 및 settings.json 파일 생성
스키마 우선(schema first)코드 우선(code first)Nest.js 공식 홈페이지Nest.js 코드샘플에서 코드 우선과 스키마 우선 샘플을 확인 할수 있음 graphql의 schema를 먼저 정의하고, 그 schema 정의에 맞게 코드를 작성하는 방법sch
NoSQL은 Model 파일로 표현SQL은 entity 파일로 표현공식홈페이지설치 명령@nestjs/typeorm : NestJS용 TypeORM 설치typeorm@0.2 : 일반 TypeORM 설치mysql2 : TypeORM을 MySQL로 연결하기 위한 프로그램 설
게시판 객체를 보내기 위해 ObjectType으로 변경할 것작성한 Entity 형식에 맞게 반환하는 API로 수정@ObjectType : 객체 형태의 GraphQL 타입으로 변경@Field : GraphQL Field임을 알리고, 타입을 지정@Args : 객체 valu
이미 git사용중이라면 eslint, prettier 확인폴더 최상단 .vscode 폴더 생성 후 안에 settings.json 생성.vscode > settings.json설치 : 공식홈페이지 설정 참고보일러 플레이트 구조 만들기 app.module.ts에 Graph
1 정규화 (1NF) 속성(Attribute)의 원자성 확보 기본키(Primary_Key)를 설정 다가속성 분리 : 같은 속성이지만 여러개 있음 복합속성 분리 : 의미적으로 다른 것이 함께 있음 ![](https://velog.velcdn.com/images/jo
@Entity class가 실행될 때, typeorm에 의해 Entity 테이블을 만들어줌@PrimaryGeneratedColumn(' ')자동으로 생성될 값의 컬럼 increment: 숫자로 데이터가 쌇일 때마다 숫자가 하나하나씩 올라가는 PK키를 만들 수 있음 uu
@ManyToOne()N:1 관계를 나타내는 데코레이터@JoinColuimn()Many 부분에 해당하는 테이블(product)에서는 JoinColumn()이 생략 가능@ManyToOne() : @JoinColumn() 생략 가능@OneToOne(): @JoinColum
새로운 코드를 작성한 후에 잘 동작 하였음그리고 다른 새로운 기능을 하는 코드를 작성이때 아까까지 정상적으로 동작하던 기존의 코드의 기능이 망가질수 있음코드의 변화가 있을 때마다, 직접 모든 기능을 전부 체크해 보는 것은 효율적이지 않음TDD란 Test Driven D
Mocking은 단위 테스트를 작성할 때 해당 코드가 의존하는 부분을 가짜(mock)으로 대체하는 기법테스트하려는 코드가 의존하는 부분을 직접 생성하기 부담스러운 경우 mocking 을 사용Mocking은 실제 객체인 척하는 가짜 객체를 생성하는 매커니즘을 제공테스트가
회원가입을 하면 DB에 비밀전호가 그대로 저장DB가 해킹 당하게 되면 해당 서비스 사이트의 이메일과 비밀번호를 가져갈 수 있음많은 사람들이 여러 사이트에 동일한 이메일과 비밀번호를 사용하는 경우가 많음다른 서비스까지 추가 해킹을 당하는 일이 발생기밀성을 유지 하기 위해