전체 글
-
Node MySQL2Node.js/백엔드 2020. 1. 30. 01:18
npm install --save mysql2 Node MySQL2 기본적인 쿼리 // MySQL 클라이언트 가져오기 const mysql = require('mysql2'); // 데이터베이스와 연결 const connection = mysql.createConnection({ host: 'localhost', user: 'root', database: 'test' }); // 간단한 쿼리 connection.query( 'SELECT * FROM `table` WHERE `name` = "Page" AND `age` > 45', function(err, results, fields){ console.log(results); // ..
-
MongoDBDB 2020. 1. 9. 00:21
본 글은 "Node.js 교과서: 기본기에 충실한 노드제이에스 10 입문서"를 토대로 작성되었습니다. mongoDB 자바스크립트 문법을 사용한다. 속성 안에 객체를 넣을 수 있다. 노드도 자바스크립트를 사용하므로 데이터베이스마저 몽고디비를 사용한다면 자바스크립트만 사용해서 웹 애플리케이션을 만들 수 있는 것이다. → 하나의 언어만 사용하므로 생산성이 매우 높다. 대표적인 NoSQL(Not only SQL) NoSQL vs SQL SQL(MySQL) NoSQL(몽고디비) 규칙에 맞는 데이터 입력 자유로운 데이터 입력 테이블 간 JOIN 지원 컬렉션 간 JOIN 미지원 → 하나의 쿼리로 여러 테이블을 합치는 작업이 항상 가능하지는 않다. 트랜잭션 지원 트랜잭션 미지원(몽고디비 4 버전부터는 지원) 안정성, ..
-
command not found: mysql_secure_installation에러 2020. 1. 7. 00:13
command not found: mysql_secure_installation brew services list로 실행 중인 홈브루 서비스를 확인해보니 mysql@5.7이 정상적으로 실행 중이었다. 하지만 root 비밀번호를 설정하려고 mysql_secure_installation 명령어를 실행한 결과, command not found가 발생했다. 구글링해보니, 나와 완전히 같은 경우는 아니지만 얼추 비슷한 에러가 뜬 사람이 쓴 질문 글이 있었다. https://superuser.com/questions/364086/error-message-sudo-mysql-secure-installation-command-not-found/803389#803389 이 글에 PATH가 업데이트 되지 않은 게 원인인 ..
-
SSL전공/정보보안 2020. 1. 4. 22:46
SSL의 동작방법 SSL 은 암호화된 데이터를 전송하기 위해 대칭키와 공개키를 혼합해서 사용한다. 실제 데이터 : 대칭키로 암호화 대칭키 : 공개키로 암호화 컴퓨터와 컴퓨터가 네트워크 통신을 할 때는 내부적으로 악수 → 전송(세션 단계) → 세션 종료 단계를 거친다. 핸드셰이크 : 클라이언트와 서버가 서로를 파악하는 과정 주고 받는 정보 클라이언트 측에서 생성한 랜덤 데이터 클라이언트가 지원하는 암호화 방식들 : 상호간에 어떤 암호화 방식을 사용할 것인지에 대한 협상. 주고 받는 정보 서버 측에서 생성한 랜덤 데이터 서버가 선택한 클라이언트의 암호화 방식 : 암호화 방식에 대한 협상이 종료된다. 인증서(서버가 생성한 공개키가 들어 있다) → 클라이언트는 인증서 안에 포함된 서버의 공개키를 획득하게 된다...
-
REST API, JSON, 라우터 리팩토링Node.js/백엔드 2020. 1. 4. 16:16
REST API 요청이 주소를 통해 들어오므로 서버가 이해하기 쉬운 주소를 사용하는 것이 좋다. REpresentational State Transfer의 약어 네트워크 구조의 한 형식 → 서버의 자원을 정의하고, 자원에 대한 주소를 지정하는 방법 주소는 의미를 명확히 전달하기 위해 명사로 구성됨 /user → 사용자 정보에 관련된 자원 요청 /post → 게시글에 관련된 자원 요청 주소 외에도 HTTP 요청 메서드 사용 HTTP 요청 메서드 GET: 서버 자원을 가져오고자 할 때 사용. 요청의 본문(body)에 데이터를 넣지 않는다. 데이터를 서버로 보내야 한다면 쿼리스트링을 사용한다. 브라우저에서 캐싱할 수 있다. 같은 주소의 GET 요청을 할 때 서버에서 가져오는 것이 아니라 캐시에서 가져올 수 있..
-
Guard and Default OperatorsJavaScript 2020. 1. 4. 15:57
Guard and Default Operators in Javascript && → 논리 AND 연산자 - The Guard Operator // Guard 연산자 적용 전 var get_username = function(){ if(loggedin){ return username; } }; // Guard 연산자 적용 후 var get_username = function() { return loggedin && username; } 만약 loggedin이 true이면 username 값이 반환되고, false이면 false가 반환된다. loggedin이 username을 보호하는 방패처럼 동작한다. || → 논리 OR 연산자 - The Default Operator // Default 연산자 적용 va..
-
노드 개념, 기능, 자바스트립트Node.js/백엔드 2020. 1. 4. 15:07
본 글은 "Node.js 교과서: 기본기에 충실한 노드제이에스 10 입문서"를 토대로 작성되었습니다. 노드란? Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임이다. 런타임은 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다. 런타임 환경은 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태이다. ← 이 말이 Node.js의 정의에 좀 더 가깝다. JAVA는 JVM(Java Virtual Machine)으로 유명하다. JVM 을 깔면 어느 플랫폼에서나 동작한다. Node.js도 마찬가지로 가상머신을 포함하고 있기 때문에 어느 플랫폼에서나 자바스크립트 런타임을 사용할 수 있게 해준다. 결국 자바스크립트 런타임이란..