본문 바로가기

회고/스파르타 코딩클럽

[노드 기초반] 3주차 개발일지

1. 배운 내용

RESTful API

MongoDB 설치하고 사용하기

쇼핑몰에 RESTful API 이용해서 상품 추가하기

 

 

2. 새로 알게 된 내용

(1) RESTful API : REST(Representational State Transfer)는 분산 하이퍼 미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식. 웹에 존재하는 모든 자원에 고유한 URI를 부여해 활용하는 것. 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미함. 웹에 존재하는 자원들에 대한 접근하는 방법 등을 정의한 것이 REST이고 REST 규칙을 따르는 API를 RESTful API라고 함.

(2) RESTful API의 구성요소
- 자원(URL)
- 행위(HTTP method) : GET, POST, PUT, PATCH, DELETE
- 표현 : JSON, XML

 

(3) mongoDB 설치

// Homebrew 설치되어있다는 가정하에
brew tap mongodb/brew
brew install mongodb-community

// 실행하기
brew services start mongodb-community

잘 실행되었는지 http://localhost:27017 복붙해서 확인하기

 

(4) Robo3T 설치

https://robomongo.org/download 접속 후 Download Robo 3T 다운 받고 실행시킨 후 어플리케이션 폴더로 옮겨준다.
오른쪽 마우스로 메뉴 열어서 열기로 열어주면 안되는데 이때 휴지통에 넣지 말고 설정 - 보안 및 개인정보보호 로 들어가면 확인 없이 열기 버튼이 활성화되어있을 것이다. 여기서 버튼 눌러주고 열어주면 잘 열린다.

 

(5) mongoose 설치하고 사용해보기

// 설치하기
npm install mongoose

// 구조 만들기
// schemas/index.js
const mongoose = require("mongoose");

const connect = () => {
  mongoose
    .connect("mongodb://localhost:27017/voyage", {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useCreateIndex: true,
      ignoreUndefined: true
    })
    .catch(err => console.log(err));
};

mongoose.connection.on("error", err => {
  console.error("몽고디비 연결 에러", err);
});

module.exports = connect;


// schemas/goods.js
const mongoose = require("mongoose");

const { Schema } = mongoose;
const goodsSchema = new Schema({
  goodsId: {
    type: Number,
    required: true,
    unique: true
  },
  name: {
    type: String,
    required: true,
    unique: true
  },
  thumbnailUrl: {
    type: String
  },
  category: {
    type: String
  },
  price: {
    type: Number
  }
});

module.exports = mongoose.model("Goods", goodsSchema);


// ./index.js 수정
const connect = require("./schemas");
connect();

 

 

 

3. 느낀 점

진짜 데이터의 CRUD를 간접적으로 만들어보았는데 이제서야 백의 느낌을 알 것 같다. 하지만 늘 쓰던 포스트맨을 쓰지 않고 강의에서는 인썸니아를 사용하더라. 나는 그냥 포스트맨 썼다. 그리고 강의를 촬영했을 때와 지금 내용이 상이한 것들이 있고 오류도 많아서 듣는데 꽤 고생했다. 그리고 리액트할 때는 적어도 바로바로 에러 내뱉고 그랬는데 이건 아니더라 ... 시간이 지나면 괜찮은 것들도 있어서 그냥 기다려야 하는 것도 있더라. 아무튼 API라고 줄여서 말하는 버릇이 생겼는데 이제 그 API가 RESTful API라는 것을 알게 되었고, RESTful API에 대해 그나마 좀 더 다가간 느낌이다. 원래 백을 했었지만 전혀 다른 구조고 이미 리팩토링 된 코드들을 왜 그렇게 리팩토링이 되었는지 좀 더 자세히 알고 싶어져서 이후에 좀 더 코드들을 분석하면서 공부해야할 것 같다.

 

반응형