2022 AI SW 온라인 교육/SW 코딩 훈련트랙 21

[SW 코딩] 웹 개발 포트폴리오 만들기 프로젝트

01. 자기소개 페이지 만들기 Template Engine을 활용해서 이미 있는 코드들 사이에 기능 추가하기 Template Engine : JavaScript를 사용해 HTML을 동적으로 렌더링할 수 있게 해주는 엔진 PUG : 템플릿 엔진 중 Express View 엔진으로 npm으로 설치가 가능하다. 02. 게시판 만들기 게시판의 상세페이지 확인, 게시물 추가, 수정, 삭제 기능 (CRUD) 구현하기 app.js 에 라우터를 등록 /models/schemas/posts.js 에서 스키마를 설정 /models/index.js 에서 스키마를 바탕으로 몽구스를 설정하고 (2)에서 만든 모델을 바탕을 스키마를 생성합니다. router/posts.js 에서 작업을 진행. GET LIST는 구현되어있다는 전제..

[SW 코딩] Express.js와 MongoDB - 04. Mongoose 활용하기

01 Express.js + Mongoose ODM Express.js에서 Mongoose ODM 사용하기 - Express.js는 프로젝트 구조를 자유롭게 구성할 수 있기 때문에 어느 부분에 Mongoose ODM을 위치시키면 좋을지 적절한 위치를 결정하는 것이 중요하다. - 일반적으로 models 디렉터리에 Schmea와 Model을 같이 위치 시킨다. - app 객체는 어플리케이션 시작을 의미하는 부분이므로 해당 부분 (app 객체)에 데이터베이스 연결을 명시하는 mongoose.connect를 위치하는 것이 좋다. Mongoose ODM 위치 정하기 예시 Mongoose ODM 커넥션 이벤트 - Express.js 어플리케이션은 종료되지 않고 동작하기 때문에 계속해서 데이터베이스가 정상적으로 동작..

[SW 코딩] Express.js와 MongoDB - 03. MongoDB와 Mongoose

01 MongoDB MongoDB란? - 대표적인 NoSQL, Document DB이다. - Mongo는 Humongouos에서 따온 말로, 엄청나게 큰 DB라는 의미를 가지고 있다. - 엄청 큰 DB라서 대용량 데이터를 처리하기 좋게 만들어졌다. NoSQL과 RDB RDB, Relational DataBase - RDB는 관계형 데이터베이스로 자료들의 관계를 주요하게 다루는 데이터베이스이다. - SQL 질의어(Query) 를 사용하기 위해 데이터를 구조화하고, 정형화해야 한다는 특징이 있다. NoSQL, Not Only SQL 또는 Non SQL - NoSQL은 구조화된 질의어를 사용하지 않는 데이터베이스이다. - 자료 간의 관계에 초점을 두지 않아 데이터를 구조화하지않고, 유연하게 저장할 수 있다는 ..

[SW 코딩] Express.js와 MongoDB - 02. REST API

01 REST API REST API란? - REST + API - REST 아키텍처를 준수하는 웹 API이고, RESTful API라고 부르기도 한다. API란? : Application Programming Interface REST란? : REpresentational State Transfer - API 형태만 봐도 어떤 동작을 하는 API인지 알아보기 쉽게 하도록 하는 표현 방법에 대한 규칙 - 별도의 규칙이 존재하지 않아 가이드라고 표현하며, 가이드를 따르면 좋은 구조의 API를 구성할 수 있다. REST API 기본 가이드 - HTTP Method의 사용 - HTTP Method : HTTP의 요청과 응답, 웹 상에서의 프로토콜을 Method로 표현한 것 - GET, POST, PUT, DE..

[SW 코딩] Express.js와 MongoDB - 01. Express.js의 미들웨어

01 Express.js의 Middleware Middleware란? - 미들웨어는 Express.js 동작의 핵심으로 HTTP 요청과 응답 사이에 단계별 동작을 수행해주는 함수이다. Middleware의 동작원리 02 Middleware의 작성과 사용 Middleware의 작성법 - req : request - res : result Route Handler와 Middleware Middleware의 작성 예시 - middleware가 되기 위해 logger(), auth() 함수는 req, res, next 인자를 갖는다. - middleware는 적용되는 위치에 따라서 어플리케이션 미들웨어, 라우터 미들웨어, 오류처리 미들웨어로 분류한다. - 또한, 필요한 동작 방식에 따라 미들웨어를 적용할 위치를..

[SW 코딩] Node.js와 Express.js - 04. 웹과 Express.js

01 웹 서비스 동작 방식 웹이란? 웹 서비스 동작 방식 - 웹 서비스는 기본적으로 HTTP 요청과 응답의 반복으로 이루어진다. - HTTP 요청은 사용자가 어떤 데이터가 필요한지를 서버에게 알리는 역할이고, - HTTP 응답은 HTTP 요청에 해당하는 적절한 데이터를 전달하는 역할을 한다. HTTP 요청 예시 - 어떤 사용자가 : User-Agent : 부분이 어떤 사용자인지 나타내는 구문이다. - 어떤 데이터를 필요로 하는지 : Host : 부분이 어떤 데이터를 담고 있는지에 대한 구문이다. HTTP 응답 예시 - 200 OK : 주어진 정보를 성공적으로 반환했을 때 백엔드와 프론트엔드 정적 웹과 동적 웹 - WEB 1.0 : 사용자와 상호작용하지 않는 페이지 - 단방향 통신, Link를 통한 페이지..

[SW 코딩] Node.js와 Express.js - 03. NPM과 모듈(2)

03 NPX NPX란? : 어떤 프로젝트에서 패키지를 설치하지 않고 사용할 수 있게 해주는 도구 04 Node.js의 모듈 모듈이란? - 모듈은 코드를 분리하기 위한 방법 중 하나이다. - 간단한 프로그램이라면 파일 하나로도 충분히 가능하다. - 프로젝트가 커지면 각 기능에 맞게 코드를 분리하는 것이 중요하다. - 반복되는 B라는 코드를 모듈로 분리하여 사용하면 반복되는 코드의 사용을 줄일 수 있게 된다. 모듈과 패키지 - 패키지는 모듈의 모음이다. npm 패키지들은 많은 모듈을 포함하고 있는 코드 모음이다. Node.js의 기본 제공 모듈 - Node.js는 다양한 모듈을 기본적으로 제공하고, 기본 제공 모듈은 직접 작성하기 매우 어렵거나 복잡한 로직을 포함한 모듈이 있으므로 자주 사용되는 기본 제공 ..

[SW 코딩] Node.js와 Express.js - 03. NPM과 모듈(1)

01 NPM 이해하기 NPM이란? - Package : Node.js 코드들의 모음 - Manager : Package를 관리하는 툴 NPM 온라인 저장소 커맨드라인 도구, CMD - CoMmanDline : cmd, terminal 등에서 npm을 관리할 수 있는 도구 - 프로젝트 의존성 : 프로젝트 간 존재하는 의존 관계를 의미한다. 02 NPM 사용해 보기 NPM을 사용한다는 것은? - NPM 커맨드라인 도구의 사용법을 익히는 것이다. - 프로젝트의 생성부터 다양한 기능을 사용하는 법까지 학습한다. 프로젝트 생성하기 init : initial의 약어로, 새로운 프로젝트나 패키지를 만들 때 사용한다. npm init 명령어 실행 시 나오는 내용 일부 Package.json - npm init 실행 시..

[SW 코딩] Node.js와 Express.js - 02. Node.js 이해하기

01 ES6 ES6이란? ES6를 사용하는 이유는? - Node.js는 ES6의 모든 문법을 지원하지는 않는다. ES6에서 자주 사용되는 문법 1 - let, const - var : 상수와 변수 구분이 없어 새로운 변수 자료형 let, const가 나왔다. - const : 상수의 자료형 - let : 변수의 자료형 ES6에서 자주 사용되는 문법 2 - Template String - back tick (`) 을 사용해서 띄어쓰기, 줄바꿈, 변수 사용 등이 간결해졌다. ES6에서 자주 사용되는 문법 3 - arrow function - => 기호를 이용해서 함수를 정의할 수 있다. ES6에서 자주 사용되는 문법 4 - Class ES6에서 자주 사용되는 문법 5 - destructing (분해) ES6..

[SW 코딩] Node.js와 Express.js - 01. Node.js 시작하기

01 Node.js 이해 Node.js의 등장 배경 Node.js VS Browser - 크로스 플랫폼 : 윈도우, 리눅스, MAC 등과 같은 다양한 환경에서 node.js를 활용해서 자바스크립트 프로그램을 실행할 수 있게 해주는 플랫폼을 의미 Node.js로 할 수 있는 것들 02 Node.js의 특징 Node.js의 특징 한 줄 요약 - 싱글 쓰레드이기 때문에 비동기 동작이 필요하고, 비동기 동작을 구현하기 위해 이벤트 기반으로 진행한다. Thread 쓰레드란? - 명령을 실행하는 단위 - 한 개의 쓰레드는 한 번에 한 가지 동작만 실행 가능 싱글 쓰레드와 멀티 쓰레드의 차이점 장점 : 쓰레드가 늘어나지 않기 때문에 리소스 관리에 효율적이다. 단점 : 쓰레드 기반의 작업들의 효율이 떨어진다. ex) ..