부트캠프 6Week

kim unknown·2022년 5월 15일
0

ELICE

목록 보기
6/11
post-thumbnail

- 220509 ~ 220510

드디어 node.js 수업을 시작했다. node.js는 이번에 처음 배우는 데 npm으로 초기 세팅하는 것이 어려워서 많이 버벅거리고 삽질을 했다. 처음에 vscode terminal로는 명령어가 실행이 안되길래 git bash로 바꿔서 하니까 해결 됐다. 그리고 백엔드 수업은 확실히 더 어려운 것 같다. 나만 어려운게 아닌 것 같아서 그나마 위안을 삼으며 공부 중이다.

  • npm : node package manager
  • npm init : 프로젝트 생성(초기화)
  • npm install : package 설치 (* install 대신 i로 축약 작성 가능)
  • npm remove : package 삭제
  • npm start : 프로젝트(스크립트) 실행
  • npm install [package-name] --save-dev : 배포전 개발용으로만 사용하는 패키지
  • npm install --production : 프로젝트 배포할때 개발용 의존성을 포함할 필요가 없는 경우
  • npm i [package-name] --global : 전역 패키지
  • npx : npm 패키지를 설치하지 않고 사용할 수 있게 해주는 도구
  • module = library
  • 프로젝트가 라이브러리에 의존하기 때문에 라이브러리를 의존성이라고도 함
  • 모듈 불러오기 require('URL');
  • 모듈 내보내기 module.exports.모듈명 = 모듈명 혹은 module.exports = {}로 한번에 내보낼 수 있음.
  • Node.js의 모듈은 첫 require 시에 캐시 되고, 두 번 실행되지 않음. 따라서, 코드를 여러 번 실행하기 위해선 함수 모듈로 작성해야 함.
  • express 설치 npm install express-generator -g

- 220511 ~ 220513

Express로 서버를 만들고 mongoDB, mongoose로 데이터베이스를 다루는 방법에 대해 학습하고 postman도 사용해보았다. postman을 쓰니 확실히 api 테스트가 간편했다. 그리고 나는 관계형 데이터베이스만 알고 있었는 데 처음으로 NoSql에 대해 배우니 개념이 정말 많이 달라서 헷갈렸다. table이라던지 이런 용어도 다르게 사용하니 더 개념이 와닿지 않았던 것 같다. Express로 서버 만드는 부분은 처음에는 정말 이해가 안 되고 어려웠는 데, 계속 보다보니 코드 짜는 형식(?)이 눈에 익어서 조금은 이해가 가는 것 같다. 간단한 예제는 혼자서 짤 수 있을 것 같은데 프로젝트가 커지면 정말 어려울 것 같다는 생각이 든다...

  • Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크
  • express 초기 세팅
    npm install express-generator -g
    express [프로젝트명]
    cd [프로젝트명]
    npm istall
    npm start
  • 미들웨어(Middleware)는 HTTP 요청(req)과 응답(res) 사이에서 필요한 처리를 진행해주는 함수이며, next를 통해 다음 미들웨어 실행 여부를 결정. 미들웨어는 HTTP 응답이 마무리될 때까지 실행되고, next() 함수를 호출하지 않으면 미들웨어 사이클이 멈추게 됨
router.get('/', (req, res, next) => {
	res.send('Hello Express');
});
  • 에러 처리 미들웨어 : err, req, res, next를 인자로
    갖는 함수
app.use((err, req, res, next) => {
	res.send('Error');
});
  • MVC 패턴(Model - View - Controller)
  • Model - 데이터에 접근
  • View - 데이터를 표현
  • Controller - Model을 통해 데이터에 접근하여, 처리 결과를 View로 전달
  • API를 테스트할 수 있는 postman
  • MongoDB : Nosql Database로, 관계없이 유연한 설계 가능하고 JSON 데이터에 훨씬 친화적
  • MongoDB의 구조 - Database(sql의 database와 유사) > Collection(sql의 table과 유사) > Document(sql의 row와 유사)
  • Mongoose는 데이터베이스와의 연결상태를 간단하게 관리할 수 있게 해줌
  • npm i mongoose : Mongoose 설치
  • mongoDB에서는 join을 지원하지 않음. Mongoose의 populate를 사용하여 쉽게 구현 가능.
  • 스키마 정의하기 - new Schema({})
  • 데이터 타입과 필수유무 정의
user: {
  type: 타입 [String, Number...],
  required: 필수유무요소 [true || false]
}
  • 모델 만들기 - mongoose.model()
  • mongoose 연결하기 - mongoose.connect('')
// 모듈을 불러옴
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// 스키마 정의
const userSchema = new Schema({
  name: {
    type: String,
    required: true
  }
});
// 모델을 생성하여 모듈 형태로 내보냄
const user = mongoose.model('user', userSchema);
module.exports = user;

0개의 댓글