RDS에 로그인이 되었다 가정하고 필요한 것( Amazon RDS 엔드포인트. 계정명, 비밀번호, 연결할 MySQL DB이름) 1. 해당 프로젝트에 express, mysql2라이브러리 설치하기 # yarn으로 프로젝트를 초기화합니다. yarn init -y # express와 mysql 드라이버를 설치합니다. yarn add express mysql2 2. app.js에서 mysql 정보를 입력해 줍니다. (여기선 AWS RDS 정보사용) // app.js import express from 'express'; import mysql from 'mysql2'; //MySQL 데이터베이스를 Node.js에서 사용할 수 있게 도와주는 라이브러리 const connect = mysql.createConnec..
node.js로 amazon RDS를 VS CODE에 연결하기 위해 설정을 다하고 서버를 켰습니다. 서버를 열자 서버가 연결되었다는 문구가 떠서 다 연결이 됐구나 싶었는데 갑자기 node : events: 492 throw er; // Unhandled 'error' event 에러가 떳습니다. 그 밑에 에러 코드를 읽어 보면 연결이 Timedout이 됐나고 나옵니다. 설정한 코드와 비밀번호가 맞지 않나? 싶어서 다시 다 적어줬지만 그대로 나와서 뭐가 문제지 하면서 살피는 도중 Docker의 mysql포트번호와 로컬의 mysql의 포트번호가 같았을 때 충돌이 난 경험이 있어서 이번에 RDS만들 때 포트번호를 3306 기본 값으로 설정한게 아닌 3308로 설정한걸 깨닫고 mysql 연결설정해주는 곳에 포트..
Request(요청), Response(응답) Request(요청) ■ 클라이언트가 서버로 보내는 메세지를 담는 객체입니다. ■ URL, HTTP 프로토콜, Header, Query Parameter, body data(요청과 함께 전달되는 데이터)등이 포함됩니다. Response(응답) ■ 서버에서 클라이언트로 보내는 메세지를 담은 객체입니다. ■ 상태코드(Status Code), response data, response header등이 포함됩니다. req객체 req.app req 객체를 통해 Express.js의 app객체에 접근할 수 있습니다. req.ip 요청한 Client의 ip주소가 담겨있습니다. req.body Request를 호출할 때 body로 전달된 정보가 담긴 객체입니다. • exp..
RDS(Relational Database Service)란? ● AWS에서 제공하는 분산 관계형 데이터베이스 서비스 입니다. ● 어플리케이션 내에서 관계형 데이터베이스를 간편하게 설정, 운영, 확장이 가능하도록 지원합니다. ● 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 소모적인 관리 작업을 자동화 할 수 있습니다. ● Aurora, PostgreSQL, MySQL, MariaDB, ORACLE, SQL Server과 같은 데이터베이스 인스턴스를 제공합니다. RDS의 장점 1. 관리가 용이합니다. 프로젝트 개념정립부터 배포까지 모든 작업을 쉽게 처리할 수 있습니다. 프로덕션용 관계형 데이터 베이스의 성능을 활용할 수 있습니다. 인프라를 프로비저닝하고 데이터베이스 소프트웨어를 설치 및 ..
API(Application Programming Interface) ■ API는 프로그램끼리 소통하도록 연결해주는 역할을 합니다. ■ 서로 다른 소프트웨어나 어플리케이션 간을 연결해주는 매개체이자 약속입니다. 예시1 ▶ 날씨앱을 이용해 내일의 날씨를 조회한다면, 앱은 날씨 정보를 제공하는 서버에게 정보를 요청해야 하는데 이 때, 앱과 날씨 서버간의 통신을 도와주는것이 API입니다. 서로간의 약속을 한것처럼 API는 정해진 규칙 (어떤정보를 어떻게 요청하는가?, 응답은 어떤 형식으로 받는가?)에 따라 날씨 서버에 정보를 요청하는 역할을 담당합니다. 즉, 날씨 앱의 사용자는 API를 통해 서버로 날씨 정보를 요청(Request)하고 서버는 이 요청을 처리한 뒤 최종 날씨 정보를 API를 통해 반환(Resp..
일단 AWS에 가입이 되어있고 카드 등록이 다 된상황이라고 가정하고 시작 합니다. EC2 Instance 생성 • AWS EC2에서는 컴퓨터 하나의 단위를 Instance라는 이름으로 부릅니다. 즉, EC2를 생성한다는것 = 서버컴퓨터 대여 1. 콘솔 홈으로 들어갑니다. 2. Region(지역) 선택 - EC2 Instance가 어떤 지역에서 켜질지 선택합니다. 지역이 가까울수록 접속 속도가 빨라집니다. 3. EC2 Instance 생성 : EC2 서비스 페이지로 이동합니다. 상단 검색창에 EC2를 입력해 첫번째로 나오는 것을 클릭해 이동합니다. 4. EC2 Instance 생성: 운영체제 선택 4 - 1. 애플리케이션 및 OS이미지 선택합니다. ubuntu 선택 Amazon Machine Image(A..
Node.js는 대표적으로 논 블로킹(Non-blocking) I / O, 싱글 스레드(Single Thread), 이벤트 루프(Event Loop)의 특성이 있습니다. 논 블로킹 I / O(Non-Blocking Input / Output) 블로킹 I/O와 논블로킹 I/O는 프로그램의 실행 흐름을 제어하는 방식입니다. 블로킹 방식 - 프로그램이 특정 작업을 수행하는 동안 다른 작업을 중단시키는 방식입니다. 논블로킹 방식 - 프로그램이 여러 작업을 동시에 처리할 수 있는 장점이 있습니다. I/O - 데이터의 입력(Input) / 출력(Output)을 의미하며 파일을 저장하거나, 불러오는 것을 I/O처리한다라고 합니다. 블로킹 I/O ● 한번에 하나의 작업만을 처리할 수 있으며, 호출된 함수가 자신의 작업..
Docker란? 도커는 컨테이너 기반의 가상화 플랫폼입니다. 컨테이너란 컨테이너가 실행되고 있는 호스트 OS의 기능을 그대로 사용하면서 프로세스를 격리하여 독립된 환경을 만드는 기술을 뜻합니다. OS부터 시작해서 필요한 모든 파일을 독립적으로 생성하고 hypervisor를 거쳐야 하는 가상 머신에 비해 컨테이너는 베이스 환경의 OS를 공유하고 프로세스를 격리하는 방식이기 때문에 실행속도가 훨씬 더 빠릅니다. 즉, 도커란 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술입니다. Docker에서 mysql을 사용하는 이유 독립적인 프로세스 운용 로컬환경에 설치된 MySQL과 독립적으로 DB를 운영하고 싶을 때 도커를 이용할 수 있습니다. 새로운 프로젝트를 시작을 하게되면 MySQL설정을 바꿔야 할 ..