일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- node.js
- Android
- OS
- DATABASE
- macos
- HTML
- mongoose
- linux
- Scheduling
- Util
- Network
- Kotlin
- Crawling
- Express
- OOAD
- algorithm
- ubuntu
- docker
- wireshark
- S3
- python
- MongoDB
- React
- mysql
- TypeScript
- postman
- css
- AWS
- typeorm
- sequelize
- Today
- Total
목록
반응형
node.js (28)
Seongwon Lim
이번 포스팅에서는 node.js 에서 AWS의 S3에 텍스트 파일을 업로드하고 업로드한 파일을 다운로드(읽기)하는 내용을 다룬다. 또한 S3 bucket은 생성된 이후를 다루기 때문에 버킷 생성에 관한 내용은 상세히 다루지 않는다. 다만, 버킷에 저장되어 있는 객체를 외부에서 접근할 수 있도록 하기 위해서는 버킷의 권한 설정이 필요하므로 버킷 생성 시 권한 설정에 대한 부분은 다룰 예정이다. 전체 공개된 버킷이 아닌 경우 외부에서 S3 Bucket에 접근할 때에는 IAM 사용자 권한이 필요하므로 IAM 사용자 생성에 관한 내용 또한 다루고자 한다. 버킷 생성 시 퍼블릭 액세스 차단 설정 위와 같이 버킷 권한을 설정하면 공개 키, 비밀 키를 이용하여 외부에서 버킷에 접근할 수 있다. AWS IAM 사용자 ..
What is Postman? Postman은 사용자가 구축한 API를 테스트 할 수 있으며 API 라이프 사이클의 각 단계를 간소화시켜 API 개발의 생산성을 높여주는 플랫폼이다. 주로 서버사이드 개발을 하는 개발자들이 본인이 구현한 API를 테스트할 때 많이 사용된다. How to install Postman? https://www.postman.com/downloads/ 포스트맨 공식 사이트에서 해당 플랫폼을 다운받을 수 있다. 이메일을 이용해서 직접 계정을 생성할 수 있으며 구글 계정으로도 가입이 가능하다. 필자는 MacOS 운영체제를 사용중이기 때문에 다운로드 페이지에 접속하면 위와 같은 화면이 나온다. 옛날에는 Intel 칩과 Apple 칩의 구분이 없었던 것 같은데 M1이 출시하면서 세분화 ..
What is Routing? 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다. 라우팅의 의미를 조금 쉽게 설명해보자면 예를 들어 https://www.youtube.com 주소가 있다고 가정해보면 유튜브 홈페이지 하위에는 구독, 탐색, 보관함 등과 같이 다양한 하위 페이지가 존재한다. 예를 들어, http://www.youtube.com/feed/explore는 유튜브의 탐색 경로이며 http://www.youtube.com/feed/subscriptions는 유튜브의 구독 경로 http://www.youtube.com/feed/library는 유튜브의 보관함 경로이다. 이렇게 최상위 디렉토리 밑에 여러가지 하위 디렉토리가 있을 수 있으며 하위 주소로 연결을 가능하게 해주는 과정..
What is dotenv? Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology. 직역하면 dotenv는 .env 파일에서 process.env로 환경 변수를 로드하는 제로 종속성 모듈이라고 설명하고 있다. dotenv는 프로젝트를 개발할 때 사용되는 Key값, 데이터베이스 비밀번호 등과 같이 공개적으로 제공하기에 민감한 정보들을 외부로 노출시키지 않도록 도와주는 모듈이다. 해당 모듈을 ..
해당 포스팅은 Node.js mongoose를 이용한 MongoDB 다루기 마지막 글이다. 이번 글에서는 MongoDB CRUD 예제를 다룰 예정이므로 스키마 및 모델 정의가 되지 않은 분들은 위 포스팅 글을 참고하면 좋을 것 같다. 서론 이전 글에서는 find() 메서드를 이용한 조회 기능과 save() 메서드를 이용하여 Document를 저장하는 예제를 살펴보았다. 이번 CRUD에서 다루고자 하는 내용은 다음과 같다. find() 메서드에 조건을 추가하여 전처리 된 Document 조회 findOne() 메서드를 이용한 데이터 단일 조회 스키마를 수정 후 Document 저장 시 이름 중복 확인하기 update() 메서드를 이용한 Document 수정 remove() 메서드를 이용한 Document ..
서론 몽고디비는 비정형 데이터베이스의 특징을 가지고 있다. 따라서 Collection에 들어갈 수 있는 데이터는 어떠한 것도 올 수 있다는 장점이 있지만 데이터 조회 시 조건을 명시하기가 어렵다는 단점도 있다. 이러한 단점을 보완하고자 mongoose모듈은 스키마(Schema) 라는 인터페이스를 제공하고 있다. 스키마를 이용하면 컬렉션의 Document에 어떤 형태의 데이터가 들어가는지 쉽게 정의할 수 있다. 또한 MongoDB는 스키마가 JSON 형태로 작성되는 특징을 가지고 있다. 모델(Model)은 스키마를 감싸주는 역할로 스키마에서 정의된 형태를 실제 데이터베이스에 적용이 가능하도록 바뀐 형태를 뜻한다. 스키마와 모델의 개념 이해를 돕기 위해 예제로 살펴보고자 한다. 스키마(Schema) 정의하기..
서론 이전 포스팅에서 MongoDB Atlas를 이용하여 클러스터를 생성하는 과정까지 알아보았다. 따라서 클러스터 환경 설정이 되지 않는 분들은 위 포스팅 글을 참고하여 진행하면 좋을 것 같다. 이번 포스팅에서는 Node.js 서버를 이용해서 생성한 클러스터에 연결해보는 작업을 할 것이다. Node.js & MongoDB 연결하기 필자는 데이터베이스를 연결하기 위한 라이브러리로 mongoose를 사용했다. How to install mongoose?What is Mongoose? MongoDB ODM의 라이브러리 중 하나로 데이터베이스 연결 및 스키마 구성과 스키마를 실제 모델로 적용하는 기능을 제공한다.또한, Promise와 Callback 기능을 제공한다. npm install mongoose —-s..
What is MongoDB? NoSQL DBMS의 한 종류로 MongoDB는 NoSQL로 분류되는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. MySQL 처럼 전통적인 테이블-관계 기반의 RDBMS가 아니며 SQL을 사용하지 않는다. 특징 MongoDB는 MySQL의 테이블과 같은 스키마가 고정된 구조 대신 JSON 형태의 동적 스키마형 문서를 사용하는데, 이를 MongoDB 에서는 BSON이라고 부른다. MongoDB는 가장 기본적인 데이터를 Document 라고 부른다. 이는 MySQL같은 RDBMS에서는 row에 해당된다. 이 Document의 집합을 Collection이라고 하는데, RDBMS에서는 테이블(Table)에 해당된다. MongoDB Atlas란? 몽고DB 아틀라스(Mongo..
서론 이번 포스팅 글에서는 이전에 구현한 라우팅을 이용해서 API를 구현할 때 발생하는 undefined error 를 해결하는 방법에 대해서 살펴보고자 한다. 익스프레스 환경에서도 req.body에 JSON 데이터를 담아서 보낼 때 undefined 에러가 발생하는 경우가 있었고 이 경우에는 body-parser 모듈을 이용해서 해결했었다. 익스프레스와 달리 코아에서도 코아 환경에서 사용할 수 있는 body-parser 모듈을 제공하고 있는데 설치 방법과 사용법에 대해서 살펴보고자 한다. 모듈 설치하기 npm install koa-bodyparser --save 사용 방법 const bodyParser = require('koa-bodyparser'); app.use(bodyParser()); 모듈을 ..
서론 이번 포스팅 글에서는 노드의 새로운 프레임워크인 Koa framework에 대해서 이야기해보고자 한다. Koa 프레임워크를 이용하여 서버를 세팅 후 실행하는 예제와 Express와 비교했을 때 라우팅 방법이 어떻게 다른지 살펴보고 라우팅을 하는 방법까지 살펴볼 것이다. What is Koa? Node.js의 웹 프레임워크인 Express 개발팀에서 2016년도에 개발한 새로운 웹프레임워크이다. Express와 비교했을 때 설계된 뼈대가 적지만 탄탄하며 Express보다 모듈화되어있어 원하는 대로 Middle Customizing 하는 데에 유리하다. 또한, 비교적 최근 만들어졌기 때문에 ES6 문법 기반으로 작성되어 async/await 로 발생하는 오류를 try/catch 없이 잡아낼 수 있다. ..