제로부터 쌓는 개발일지
article thumbnail
[Node.JS] 로컬 환경 RDS 연결 정리
backend/Node.js 2023. 11. 15. 13:54

Amazon RDS (MySQL) 리전 설정 다른 리전이 선택되어 있을 수 있음 RDS 진입 데이터베이스 생성 데이터베이스 생성 방식 표준 생성 및 MySQL 템플릿 프리티어 선택 (다른 템플릿을 사용하면 추가 요금 발생) 설정 DB 인스턴스 식별자: 원하는 이름으로 설정 마스터 사용자 이름 & 암호: DB 접속용으로 사용하는 ID와 PW 스토리지 자동조정 비활성화 (과금 방지) 연결 퍼블릭 액세스 기능: AWS RDS의 MySQL과 연결하기 위해 예 선택 VPC 보안 그룹: 새로 생성 새 VPC 보안 그룹 이름: express-db-security 가용 영역: 알아서 설정 추가 구성 MySQL 기본 포트: 3306 데이터베이스 이름: express_db 백업 비활성화 (프리티어에서 과금되게 만드는 죄악..

article thumbnail
[Node.JS] Sequelize
backend/Node.js 2023. 11. 10. 18:27

Sequelize ORM(Object Relational Mapping) 도구로, JavaScript 객체와 관계형 데이터베이스의 테이블을 연결(Mapping) Node.js 환경에서 Sequelize는 개발자가 RDBMS를 좀 더 쉽게 다룰 수 있도록 도와줌 Sequelize와 Mongoose 차이 Mongoose: ODM(Object Document Mapping)으로, JavaScript 객체를 MongoDB의 Document와 매핑 MongoDB 전용 Sequelize: ORM으로, JavaScript 객체와 RDBMS의 관계를 연결 MySQL, Oracle, MariaDB, PostgreSQL 등 다양한 RDBMS를 지원 ORM의 장점 데이터베이스 독립성: Sequelize와 같은 ORM을 사용..

article thumbnail
[Node.JS] 관계형 데이터베이스 & SQL
backend/Node.js 2023. 11. 10. 17:35

관계형 데이터베이스(RDB)와 비관계형 데이터베이스(NoSQL)의 개념 비관계형 데이터베이스 (NoSQL): 데이터 형식이 자유로워 유연한 데이터 관리가 가능 Ex. MongoDB 관계형 데이터베이스(RDB): RDB는 테이블 개념을 사용해 엑셀과 유사한 형태로 데이터를 관리하며, 데이터는 엄격한 구조 안에서 관계를 맺으며 저장됨 Ex. MySQL Mongoose 라이브러리 MongoDB를 위한 자바스크립트 라이브러리 ODM(Object Document Mapper)으로 자바스크립트 객체와 MongoDB의 문서(Document)를 매핑해주는 역할 Sequelize 라이브러리와 MySQL 데이터 처리 Node.js에서 사용되는 ORM(Object Relational Mapper) 라이브러리 MySQL에서 ..

article thumbnail
[Node.JS] 미들웨어
backend/Node.js 2023. 11. 10. 10:59

미들웨어 (Middleware) 웹 서버에서 특정 요청이 처리되는 과정 중에 일어나는 공통적인 작업을 처리하는 소프트웨어 컴포넌트 웹 서버가 요청을 받을 때 모든 요청에 대해 일관된 처리가 필요한 경우, 미들웨어를 통해 효율적인 관리 가능 Ex. 로그 기록, 사용자 인증, 데이터 포맷 변환 등 Express.js 내장 미들웨어 express.urlencoded: form-urlencoded 형식의 바디 데이터를 처리 express.json: JSON 형식의 바디 데이터를 처리 app.use(express.urlencoded({ extended: false })); app.use(express.json()); 미들웨어 작성 방법 기본 형태: app.use((req, res, next) => { /* 코드 ..

article thumbnail
[Node.JS] 인증(Authentication)
backend/Node.js 2023. 11. 9. 16:47

쿠키 (Cookie) 클라이언트(브라우저)측에 작은 텍스트 파일을 저장하는 기술로 서버에서 클라이언트로 데이터를 저장하고 나중에 사용 할 수 있도록 함 브라우저의 로컬에 저장되며 도메인 레벨에서 공유될 수 있음 사용자 식별, 로그인 정보, 선호 설정 등을 저장하는데 사용 Set-Cookie 헤더를 설정하여 쿠키 생성 // "/set-cookie" 경로로 들어온 GET 요청을 처리하는 라우터 핸들러를 설정 app.get("/set-cookie", (req, res) => { // 1. 현재 시간을 가져와서 expire 변수에 할당 let expire = new Date(); // 2. expire 변수에 60분을 더해 만료 시간을 설정 expire.setMinutes(expire.getMinutes() +..

article thumbnail
[Node.JS] REST API & Validation
backend/Node.js 2023. 11. 8. 15:29

REST API (Representational State Transfe) 웹 애플리케이션과 서비스 간의 통신을 위한 소프트웨어 아키텍처 스타일 REST는 웹과 같은 분산 하이퍼미디어 시스템을 위한 아키텍처 형식 중 하나이며, 네트워크 통신에 사용되는 URL, Headers, Method 등의 표현 수단을 사람이 이해하기 쉬운 표현으로 정의 HTTP와 상호작용하기 위한 간단하면서도 일관된 접근 방식을 제공 REST API는 자원을 중심으로 표현을 구성하는 원칙을 따르며, URL을 통해 자원을 식별하고 HTTP Method (GET, POST, PUT, DELETE 등)을 통해 해당 자원에 대한 상호작용을 수행 RESTful API는 자원을 나타내는 URL을 통해 정보를 요청하고 변경할 수 있는 구조를 가..

article thumbnail
[Node.JS] AWS EC2 배포 정리
backend/Node.js 2023. 11. 2. 20:43

EC2 Instance 생성 서울 리전 선택 후 인스턴스 시작 인스턴스 이름 작성 애플리케이션 및 OS 이미지 (Amazon Machine) Ubuntu Server 22.04 LTS(HVM), 아키텍처 64비트(x86) 인스턴스 유형 선택 새 키 페어 생성 키 페어 이름, 키 페어 유형, 프라이빗 키 파일 형식 설정 후 키 페어 생성 그 외 설정은 스킵하고 인스턴스 시작 다운로드한 키 페어 chmod 400 설정 # 윈도우 10에는 chmod 명령어가 존재하지 않으므로 cmd 명령 프롬프트 창에서 작업 icacls.exe key_pair.pem /reset icacls.exe key_pair.pem /grant:r %username%:(R) icacls.exe key_pair.pem /inheritan..

article thumbnail
[Node.JS] MongoDB
backend/Node.js 2023. 11. 2. 01:46

데이터베이스(database) 데이터를 효율적으로 저장하고 관리하기 위한 소프트웨어나 시스템 데이터베이스 관리 시스템(Database Management System, DBMS)은 데이터베이스를 관리하며 데이터의 저장, 검색, 업데이트 및 삭제와 같은 작업을 수행 데이터베이스 서버(DB서버)는 DBMS가 설치된 컴퓨터로, 데이터를 저장하고 관리하는 서버 관계형 데이터베이스 (RDB) 데이터 형식이 미리 정의되며, 데이터 간에 관계를 유지하고 정합성을 유지하는 데이터베이스 SQL(Structured Query Language)을 사용하여 데이터를 조작 (MySQL, PostgreSQL, Oracle 등) 비관계형 데이터베이스 (NoSQL) 데이터의 형식이 고정되어 있지 않고 유연하게 확장 가능한 데이터베이..

article thumbnail
[Node.JS] Express
backend/Node.js 2023. 11. 1. 22:50

웹 서버와 Express ? 웹 서버란 사용자가 브라우저에서 웹 페이지에 접속할 때, 해당 웹 페이지의 내용을 제공하는 컴퓨터 또는 프로그램 Express.js는 Node.js를 기반으로 하는 웹 프레임워크로, 웹 서버를 더 쉽게 만들 수 있게 도와주는 도구 일반적인 웹 서버와 Node.js로 만든 웹 서버는 기본적인 기능에선 다르지 않으나 사용하는 언어나 도구의 차이가 있음 Express.js는 웹 서버 자체가 아닌 Node.js를 위한 웹 프레임 워크로 사용됨 Express.js로 웹 서버 구현 새 파일을 생성하고 이름 지정 다음 명령어를 실행하여 package.json 생성 # npm init은 프로젝트 설정 기본값을 물어보는데 옆에 -y를 붙이면 프리패스 npm init -y Express.js ..

article thumbnail
[Node.JS] Package Manager
backend/Node.js 2023. 11. 1. 13:27

패키지(Package) 패키지는 소프트웨어 모듈, 라이브러리 또는 응용 프로그램의 일부 Node.js와 JavaScript 생태계에서 패키지는 다른 모듈과 함께 사용되는 코드와 리소스의 모음을 나타냄 패키지 매니저(Package Manager) 역할 패키지의 설치, 업데이트, 제거 및 의존성 관리를 담당 버전 관리와 충돌 문제를 피할 수 있음 npm (Node Package Manager) JavaScript 패키지를 관리하는 데 사용되는 Node.js 패키지 매니저 Yarn npm의 대체 패키지 매니저로 Fackbook, Google, Exponent 및 Tilde가 개발 npm과 마찬가지로 JavaScript 패키지를 관리하며, npm보다 빠르고 안정적인 패키지 설치 및 의존성 해결을 제공 packa..

article thumbnail
[Node.JS] HTTP/Web Server
backend/Node.js 2023. 11. 1. 11:47

HTTP 데이터를 주고받는 통신 규약(Protocol) 중 하나 모든 컴퓨터가 데이터를 주고받는 데 사용한 약속 웹 브라우저와 웹 서버 사이의 데이터 통신을 관리 HTTP 동작 방식 브라우저는 서버에게 웹 페이지를 요청하고, 서버는 요청을 받아 해당 페이지의 데이터를 응답해 줌 HTTP는 Request(요청)와 Response(응답)라는 개념으로 동작 HTTP Request와 Response Request 브라우저가 서버에게 데이터를 요청할 때 보내는 데이터 Response 서버가 브라우저에게 데이터를 제공할 때 보내는 데이터 HTTP 요청 메서드 HTTP 요청 메서드는 GET과 POST 등이 있으며, GET은 데이터를 얻기 위해 사용되고, POST는 데이터를 서버에게 게시하기 위해 사용 HTTP Hea..

article thumbnail
[Node.JS] 동기&비동기, 객체 리터럴, Error handling, Class
backend/Node.js 2023. 11. 1. 11:15

동기 (Sync) 두 작업이 동시에 진행되지 않고, 한 작업이 끝날 때까지 다른 작업이 대기하는 모델을 의미 놀이기구를 타기 위해서는 먼저 탑승한 사람들이 모두 내린 후에야 다음 사람이 탑승 가능 비동기 (Async) 두 작업이 동시에 진행될 수 있으며, 한 작업의 완료 여부와 상관없이 다른 작업이 계속해서 실행되는 모델을 나타냄 맛집에서 사람들이 입장하고 먹는 동안, 다른 사람은 입장하거나 먹고 나와서 나갈 수 있음 각각의 사람은 먹는 속도가 다르며, 입장 순서와 퇴장 순서는 다를 수 있음 Blocking Model 한 작업이 끝날 때까지 다른 작업이 대기하는 모델 Non-Blocking Model 한 작업의 완료 여부와 상관없이 다른 작업이 실행되는 모델 자바스크립트는 Async + Non-Block..

profile on loading

Loading...