본문 바로가기

AI / DL/엘리스 SW 코딩 훈련 트랙16

[SW 코딩 훈련] Express.js와 MongoDB 04. Mongoose 활용하기 Express.js + Mongoose ODM Express.js는 프로젝트 구조를 자유롭게 구성할 수 있기 때문에 어느 부분에 Mongoose ODM을 위치시키면 좋을지 적절한 위치를 결정하는 것이 중요하다. Mongoose ODM 위치 정하기 일반적으로 models 디렉터리에 Schema와 Model을 같이 위치시킨다. app 객체는 어플리케이션 시작을 의미하는 부분이므로 해당 부분에 데이터베이스 연결을 명시하는 mongoose.connect를 위치한다. Mongoose ODM 커넥션 이벤트 Express.js 어플리케이션은 종료되지 않고 동작하기 때문에 계속해서 데이터베이스가 정상적으로 동작하는지를 파악하기 위해 동작 중에 발생하는 데이터베이스 연결 관련 이벤트에 대한 처리를 하는 것이 좋다. 코드.. 2022. 11. 30.
[SW 코딩 훈련] Express.js와 MongoDB 03. MongoDB와 Mongoose MongoDB 대표적인 NoSQL, Document DB Mongo는 Humongous에서 따온 말로, 엄청나게 큰 DB 라는 의미다. → 대용량 데이터를 처리하기 좋게 만들어짐 RDB Relational Database 관계형 데이터베이스로 자료들의 관계를 주요하게 다룬다. 이 관계에서 SQL 질의어를 사용하기 위해 데이터를 구조화, 정형화해야 한다. RDB의 일반적인 형태는 우리가 사용하는 엑셀과 같은 표(table) 형태로 많이 이루어져 있다. NoSQL Non SQL 또는 Not Only SQL SQL 관계지향적 특징에서 벗어나 다양한 기능을 제공한다. 구조화된 질의어를 사용하지 않는 데이터베이스로, 자료 간의 관계에만 초점을 두진 않는다. 각각의 자료, 객체의 고유한 의미에도 초점을 둔다. 데이.. 2022. 11. 29.
[SW 코딩 훈련] Express.js와 MongoDB 02. REST API REST API REST + API REST 아키텍처를 준수하는 웹 API RESTful API라고 부르기도 한다. API Application Programming Interface 어떤 프로그램에서 다른 프로그램을 사용함에 있어서 이 프로그램이 어떻게 동작하는지는 알 필요 없이 어떤 것을 요청하면 어떤 것을 돌려준다 하는 하나의 약속이다. 서비스나 프로그램 간에 미리 정해진 기능을 실행 할 수 있도록 하는 규약이다. 운영체제 API, 프로그램언어 API, 웹 API 등이 있다. REST REpresentational State Transfer 웹에서 어떤 API의 모습만 봐도 무슨 역할을 하는지를 표현하기 위한 하나의 약속의 약속이다. API를 사용하고 만드는 사람은 제각각이기 때문에, 약속을 정의할.. 2022. 11. 28.
[SW 코딩 훈련] Express.js와 MongoDB 01. Express.js의 미들웨어 Middleware 미들웨어는 Express.js 동작의 핵심이다. HTTP 요청과 응답 사이에서 단계별 동작을 수행해주는 함수다. 미들웨어의 결합으로 Express.js가 이루어져 있다고 보면 된다. Express.js의 미들웨어는 HTTP 요청이 들어온 순간부터 시작이 된다. 라우팅을 시작하기도 하고, 자원은 있는지, 오류는 없는지 등을 확인한다. 미들웨어는 HTTP 요청과 응답 객체를 처리하거나, 다음 미들웨어를 연쇄적으로 실행할 수 있다. HTTP 응답이 마무리될 때까지 미들웨어 동작 사이클이 실행된다. 각각의 미들웨어가 역할을 수행해서 그것의 결과가 모여 이루어진 온전한 응답을 반환함으로써 몫을 다한다. Middleware 작성과 사용 req, res, next를 가진 함수를 작성하면 해당 함수.. 2022. 11. 26.
[SW 코딩 훈련] Node.js와 Express.js 04. 웹과 Express.js 웹 사전적 의미 : World Wide Web, 인터넷상에서 동작하는 모든 서비스 일반적 의미 : 웹 브라우저로 접속해서 이용하는 서비스, 웹 사이트 웹사이트 동작방식 웹 서비스는 기본적으로 HTTP 요청과 응답의 반복으로 이루어진다. HTTP 요청은 사용자가 어떤 데이터가 필요한지를 서버에게 알리는 역할이다. 예를 들어 www.naver.com 이 필요하단 정보를 전달하는 것이다. HTTP 응답은 HTTP 요청에 해당하는 적절한 데이터를 전달하는 역할이다. 브라우저가 인터넷을 통해 HTTP 요청을 서버에 전달 서버는 사용자의 HTTP 응답을 브라우저로 전송 브라우저는 HTTP 응답을 사용자에게 적절한 화면으로 노출 (시각화) HTTP 요청과 응답 HTTP 요청은 어떤 사용자가, 어떤 데이터를 필요로 하.. 2022. 11. 25.
[SW 코딩 훈련] Node.js와 Express.js 03. NPM과 모듈 NPM(Node Package Manager) Package는 어떤 노드, 코드들의 모음이다. Manager는 Package를 관리하는 툴이다. NPM은 Node.js 프로젝트를 관리하는 필수적인 도구라고 보면 된다. NPM은 온라인이 연결된 환경이라면 어디서든 사용할 수 있도록 온라인 저장소가 있고, cmd나 terminal 같은 커맨드라인 도구에서 이를 사용할 수 있다. NPM 온라인 저장소는 수많은 오픈소스 라이브러리와 도구들이 업로드되는 저장소다. 이곳에서 필요한 라이브러리나 도구를 손쉽게 검색 가능하다. JS 한계를 넘은 Node.js의 특징 때문에, 웹이 아니라 다양한 분야에서 사용되기 때문에 Node.js의 인기로 거대한 생태계를 보유한다. cmd나 terminal 같은 커맨드라인 도구는 프.. 2022. 11. 24.
[SW 코딩 훈련] Node.js와 Express.js 02. Node.js 이해하기 ES6 ECMAScript 버전 6 이후를 통틀어 일반적으로 ES6이라고 부른다. ECMAScript JavaScript의 표준문법이다. 2015년, ECMAScript 버전 6 이후로 많은 현대적인 문법이 추가됐다. ES6를 사용하는 이유 현대적인 문법은 생산성 향상에 도움을 준다. 즉, 적은 코드로도 유용하고 많은 기능을 할 수 있다는 뜻이다. Node.js는 빠르게 최신 ECMAScript를 지원한다. 자주 사용되는 유용한 문법을 익히고 필요한 부분에 적절하게 활용하는 것이 중요하다. 하지만 Node.js는 ES6의 모든 문법을 지원하지는 않는다. Node.js로 자주 사용되는 유용한 ES6문법의 코드를 익히는 과정은 필요하다. 자주 사용되는 ES6 문법 기존에는 변수를 선언하는 과정에서 var라는.. 2022. 11. 22.
[SW 코딩 훈련] Node.js와 Express.js 01. Node.js 시작하기 Node.js 웹이 발전함에 따라 필요성이 대두됐다. WEB 1.0에서 단방향 통신 위주일 때 사용자가 정보를 일방적으로 수용했다. 2.0은 어떤 웹 프로그램의 개념이 등장해서 정보 수신뿐만 아니라 전달까지 가능했다. 사용자와 상호작용이 가능해졌다. 이에 따라 많은 사용자가 웹 어플리케이션을 사용하고, 그 종류도 많아졌기 때문에 고성능의 JavaScript가 필요해졌다. 이를 지원하는 브라우저인 Chromium Project가 등장했고 이 안에는 V8이라는 엔진이 있었다. 이 엔진은 JavaScript를 더 빠른 속도로 처리할 수 있어서, 오늘날 더욱 다양한 웹 어플리케이션을 사용하는데 도움이 되었다. V8은 고성능의 JavaScript 실행이 가능했는데, 웹 브라우저에 달린 V8 엔진을 따로 분리해서 .. 2022. 11. 22.