프로젝트를 진행할수록 백엔드에 대한 욕심이 생겼다.특히 지금 하고 있는 '기적의 상담소'에 대한 백엔드 부분을 처리하고 싶은 게 가장 컸다.옛날에 spring 공부를 조금 해뒀지만 java는 너무 어려워서 포기했다.리액트에서 지원하는 프레임워크 next.js로 백엔드
노드는 자바스크립트 런타임이고, 런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻한다.즉, 노드는 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있다.노드는 자바스크립트 실행기이며, 자바스크립트 문법을 필수로 한다.노드는 V8과 더불어 libuv라는 라이
이벤트 기반이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 의미한다.특정 이벤트가 발생할 때 무엇을 할지 미리 등록해줘야하는데 이를 이벤트 리스너(event listener)에 콜백(callback) 함수를 등록한다고 표현한다.이벤트 발생 시 호출할 콜백
논블로킹 I/O 🧐 이벤트 루프를 잘 활용하면 오래 걸리는 작업을 효율적으로 처리할 수 있다. 작업에는 두 가지 동류가 있는데, 동시에 실행될 수 있는 작업과 동시에 실행될 수 없는 작업니다. 기본적으로 작성된 자바스크립트 코드는 동시에 실행될 수 없다. 하지만 자바
싱글 스레드란 스레드가 하나뿐이라는 것을 의미한다. 자바스크립트 코드가 동시에 실행될 수 없는 이유이다.프로세스는 운영체제에서 할당하는 작업의 단위이다. 노드나 웹 브라우저 같은 프로그램은 개별적인 프로세스이다. 프로세스 간에는 메모리 등의 자원을 공유하지 않는다.스레
REPL이란? 🧐 입력한 코드를 읽고(Read), 해석하고(Eval), 결과물을 반환하고(Print), 종료 할 때까지 반복한다(Loop)의 첫 알파벳을 따서 PEPL이라고 한다. JS 파일 실행하기 javascript를 실행하기 위해선 터미널 창에 node [자바
CommonJs 모듈 폴더 구조 파일 전부 같은 폴더에 위치해야 한다. var.js 상수 2개를 만들고, module.export에 상수들을 담은 객체를 대입했다. var.js은 모듈로서 기능하며, 다른 파일에서 이 파일을 불러오면 module.exports에 대입된
클라이언트와 서버의 관계 클라이언트에서 서버로 요청(request)을 보내고, 서버에서는 요청의 내용을 읽고 처리한 뒤 클라이언트에 응답(response)을 보냅니다. 클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 미리 등록해둬야 합니다. 서
REST란? REST(REpresentational State Transfer) 서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 가리킵니다. REST는 HTTP Method를 사용하여 자원에 대한 다양한 작업을 수행합니다. HTTP M
클라이언트 요청 클라이언트에서 보내는 요청에는 단점이 존재합니다. 누가 요청을 보내는지 모른다는 것입니다. 그렇기 때문에 로그인을 구현해야합니다. 로그인을 구현하기 위해 쿠키와 세션에 대해서 알아야 합니다. 쿠키 쿠키란? 쿠키는 웹 브라우저가 서버와의 통신에서 사용하
노드 프로젝트를 시작하기 전에는 폴더 내부에 무조건 package.json부터 만들고 시작해야 합니다.패키지 버전입니다.package.json의 version 속성에 저장됩니다.자바 스크립트 실행 파일 진입점입니다. 보통 마지막으로 module.export를 하는 파일
익스프레스 > ### 익스프레스란? 서버를 제작하는 과정에서 겪게 되는 불편을 해소하고 편의 기능을 추가한 웹 서버 프레임워크 입니다. Node.js 교과서 개정3판 p.242 package.json 생성 [여기] (https://velog.io/@sojeong03
미들웨어 미들웨어란? 미들웨어는 익스프레스의 핵심이며, 요청과 응답의 중간(middle)에 위치하기 때문에 미들웨어(middleware)라고 부릅니다. 미들웨어는 요청과 응답을 조작해 기능을 추가하기도 하고, 나쁜 요청을 걸러내기도 합니다. app.use와 함께 사
multer multer란? 이미지, 동영상 등을 비롯한 여러 가지 파일을 멀티파트 형식으로 업로드할 때 사용하는 미들웨어입니다. 설치 <div style="margin:0
라우팅 분리 routes/index.js <div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-
데이터베이스란? 데이터베이스는 관련성을 가지며 중복이 없는 데이터들의 집합입니다. 이러한 데이터베이스를 관리하는 시스템을 DBMS(DataBase Management System)이라고 합니다. MySQL 설치 참고로 윈도우, 맥, 리눅스(우분투)에 따라서 설치 방법
데이터베이스 생성 MySQL 접속 데이터베이스 생성 <table class="colorscripter-code-table" style="margin:0;padding:0;border:none;backgr
CRUD Create, Read, Update, Delete의 첫 글자를 모은 두문자어로, 데이터베이스에서 많이 수행하는 네 가지 작업을 말합니다. Create (생성) 데이터를 생성해서 데이터베이스에 넣는 작업입니다. 참고로 테이블은 미리 만들어두었습니다! <tab
시퀄라이즈는 ORM(Object-relational Mapping)으로 분류됩니다. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구입니다. Node.js 교과서 개정3판 p.332 시퀄라이즈 사용하기 package.json npm init을 통해
시퀄라이즈 사용하기 모델 정의하기 MySQL에서 정의한 테이블을 시퀄라이즈에서도 정의해야 합니다. 시퀄라이즈는 모델과 MySQL의 테이블을 연결해주는 역할을 합니다. models/user.js <td style="padding:6px;border-right:2px
시퀄라이즈 사용하기 관계 정의하기 users 테이블과 comments 테이블 간의 관계를 정의했습니다. 사용자 한 명은 댓글을 여러 개 작성할 수 있습니다. 댓글 하나에 사용자가 여러 명일 수는 없습니다. 일대다(1:N) 관계라고 합니다. 사용자가 1, 댓글이 N입니
시퀄라이즈 사용하기 쿼리 알아보기 아래 코드는 시퀄라이즈 쿼리문에서 생략되었습니다. <div style="margin:0;padding:0;word-break:normal;text-al
시퀄라이즈 사용하기 쿼리 수행하기 프론트엔드 코드 views/sequelize.html <