Node.js

    [Node.js] 2022/05/17 : Node_Socket2, UDP, TCP

    10)board.js 파일에 초기화를 위한 코드를 추가 - $(function(){여기에 추가}) //색상 선택 select에 추가할 내용 var color_map = [ {'value':'white', 'name':'하얀색'}, {'value':'red', 'name':'빨간색'}, {'value':'orange', 'name':'주황색'}, {'value':'yellow', 'name':'노란색'}, {'value':'blue', 'name':'파랑색'}, {'value':'black', 'name':'검은색'}, ] //select 에 설정 for(var key in color_map){ $('#pen_color').append('' + color_map[key].name + '') } //두께 선..

    [Node.js] 2022/05/16 : Node_Socket

    **Node_Socket 1.Socket =>통신을 할 수 있도록 해주는 NIC(Network Interface Card)를 추상화(프로그래밍에서 사용할 수 있도록 객체로 변환) 한 것 1)소켓 프로그래밍의 분류 =>고수준 소켓 프로그래밍: 직접 연결 과 해제를 하지 않는 방식으로 웹 프로그래밍이 대표적인 고수준 소켓 프로그래밍의 대표적인 방식인데 구현이 쉽지만 효율이 떨어집니다. =>저수준 소켓 프로그래밍(소켓 프로그래밍): 직접 소켓을 생성해서 통신을 하는 방식으로 구현이 어렵지만 효율이 좋습니다. 2)프로토콜 종류 =>TCP: 연결형 통신 요청 -> 제공하는 쪽에서 메타 데이터 전송 -> 요청 -> 데이터 전송 -> 응답 =>UDP: 비연결형 통신 요청 -> 데이터 전송 2.Web Socket 1)..

    [MongoDB] Day 09

    **Mongo DB 1.NoSQL(Not Only SQL) =>SQL 이 데이터베이스의 전부는 아니다. =>느슨한 트랜잭션을 지원하지만(ACID 를 완전하게 보장하지 않음) 뛰어난 확장성 과 성능을 가짐 1)종류 =>Key Value DB =>Wide Columnar Store: Google의 Big Table 이나 HBase, Cassandra 등이 대표적 =>Document DB: 데이터를 하나의 문서로 취급하는 데이터베이스로 Mongo DB 가 대표적 =>Graph DB 2.Mongo DB =>가장 많이 사용되는 NoSQL 중 하나 =>내부 엔진은 C++ 로 만들어져 있고 인터페이스는 JavaScript를 이용합니다. 3.설치 1)mongodb server 설치: 터미널에서 사용할 수 있는 접속도구..

    [Node.js] Day 08: 데이터 가져와서 출력하기2

    3)데이터 삽입 요청을 처리하는 코드를 index.js에 추가 //데이터 삽입 화면 출력 요청 app.get('/item/insert',(req,res,next)=>{ //퍼블릭 디렉토리에 있는 insert.html 파일을 비동기적으로 읽어서 //에러가 발생하면 에러 내용을 err에 저장하고 그렇지 않으면 //읽은 내용을 data에 저장 fs.readFile('public/insert.html',(err,data)=>{ //문자열로 전송 res.end(data);; //읽은 데이터를 여기서 그대로 리턴 }) }) //데이터 삽입 요청: 파일 한개 업로드 포함 app.post('/item/insert',upload.single('pictureurl'),(req,res,next)=>{ //클라이언트가 전송한..

    [Node.js] Day 07: 데이터 가져와서 출력하기

    **Node_MySQL 연동 1.기본 요청이 왔을 때 html 출력 1)app.js 파일에 기본 요청을 처리하는 라우팅 코드를 수정 //기본 요청이 왔을 때 수행할 내용 app.get('/', (req, res, next) => { res.sendFile(path.join(__dirname, 'index.html')) }) 2)public 디렉토리에 index.html 파일을 생성해서 작성 MySQL 3)서버를 구동하고 localhost:포트번호 를 입력하고 index.html 파일이 출력되는지 확인 4)프로젝트의 log 디렉토리의 오늘 날짜 로그 파일이 생성되고 로그가 기록되는지 확인 2.전체 데이터 가져와서 출력하기 1)index.js 파일에서 모든 데이터를 가져와서 리턴해주는 요청을 처리하는 라우팅..

    [Node.js + MySQL] Day 06: 노드와 데이터 베이스 연결

    2022/05/10 **MySQL 1.Data Type: 테이블에 저장되는 데이터의 자료형(데이터가 메모리에 저장되는 크기 와 형식) 1)숫자 데이터 형식 - bit - tinyint - smallint - mediumint - int(integer): 절대값 21억 정도의 정수 - bigint - float: 10의 38승 정도 실수, 소수는 7째 자리 정도까지의 정밀도 - double: 10의 308승 정도 실수, 소수는 15째 자리 정도까지의 정밀도 - decimal(m, d): d를 이용해서 소수 자릿수를 설정하는 것이 가능 2)문자 데이터 형식 - char(크기): 255자까지의 고정 길이 문자열, 처음 설정한 길이보다 작은 길이의 문자열이 오더라도 크기를 변화시키지 않음, 메모리 낭비가 발생할..

    [Node.js + MySQL] Day04: pug, nunjunk, repository (MySQL)

    **node_express 1.에러 처리 1)에러 발생 즉시 처리 res.status(상태코드).수행할 코드 =>수행할 코드 부분은 매개변수가 4개가 되는데 error 객체, req 객체, res 객체, next 2)에러 별도 처리 app.use((err, req, res, next) => { 에러 처리 코드 }); 2.req 객체 - request(클라이언트의 정보를 저장한 요청) 객체 =>req.app: app 객체에 대한 참조 =>req.body: body-parser 가 만드는 요청의 내용을 해석한 객체(post 방식으로 전송된 데이터 중에서 file을 제외한 데이터 해석에 사용) =>req.params: 라우트 매개변수에 대한 정보가 저장된 객체(URL의 일부분을 파라미터로 사용하고자 하는 경우..

    [Node.js] Day03: express, dotenv, morgan, static, body-parser, compression, cookie-parser, express-session, multer, routing

    **Express - node.js 에서 Web Server를 쉽게 만들도록 해주는 프레임워크 =>Middle Ware 는 express 의 사용자 요청 처리 구문 과 응답 사이에 존재해서 특별한 기능을 수행하는 것 Logging(기록), Filtering(걸러 내는 역할), Wrapping(변환) 등의 작업을 대부분 수행 0.express web server 생성 및 실행 =>프로젝트 생성 =>패키지 설치 - express, nodemon(서버 코드를 수정했을 때 서버를 자동 재시작할 수 있도록 해주는 모듈) npm install express npm install --save-dev nodemon =>package.json 파일을 수정해서 설정 - 자동 재시작하도록 scripts 속성을 수정 "scr..

    [Node.js] Day 02: node, express

    **Node =>JavaScript 문법으로 애플리케이션을 만들 수 있도록 해주는 프레임워크 1.내장 모듈: 노드가 제공하는 모듈 1)util 모듈 =>util.deprecated: 다른 함수를 호출할 때 경고를 발생시키기 위한 함수 첫번째 인자로 함수를 대입하고 두번째 인자로 함수를 호출했을 때 보여질 메시지를 설정 이 함수도 콜백(비동기 처리를 위해서 만든 함수)의 형태로 동작 =>util.promisify: 콜백 함수 대신에 promise 패턴(비동기 동작을 구현하기 위한 패턴)을 적용 //util 이라는 모듈을 사용 //const는 변경 불가능한(immutable) 이름을 생성 //var 나 let은 변경 가능한(mutable) 이름을 생성 const util = require('util') //..

    [Node.js] Day01: node.js 설치, 내장 모듈, crypto 모듈, 모듈 사용

    **Node 개요 1.Node의 등장 배경 => 웹의 대중화 => 웹 브라우저에 대해서 친숙해지고 웹 브라우저 안에서 모든 작업을 하기를 원함 => 웹 클라이언트 & 서버 개발 웹 브라우저 출력(HTML, CSS, JavaScript) 동적인 내용을 출력하도록 하기 위한 서버(데이터 저장은 RDBMS-Oracle, MySQL, MSSQL, Postgress SQL 등, 동적인 처리는 VB 기반의 ASP, PHP, Java 기반의 JSP, Ruby 등) => 스마트 디바이스의 등장 개발자가 아닌 사람들이 애플리케이션 개발에 동참 => Mongo DB, Express, Angular(React), Node - MEAN(MERN) 서버와 클라이언트의 개발을 하나의 언어만 배워서 구현 Mongo DB(NoSQL..