9월 2일 REST API 개발

2024. 9. 2. 20:49·Daily Logs/TIL (Today I Learned)

경로 매개변수 -> URL의 일부분으로 언제든지 변경 될수 있는 값을 나타내기 위해 사용된다.

 

/goods 였다면 그 뒤에 /:goodsid 라는 값을 추가해서 요청시 goodsid값을 받아올수있다.


01. 데이터베이스와 MongoDB

저희는 이전 주차에 spa-shop의 상품 등록 API를 구현했습니다. 하지만 이 API에는 한 가지 큰 문제점이 있었는데요. 서버를 종료하거나 재시작할 경우, 등록된 상품 데이터가 모두 사라지는 문제가 있었습니다.

→ 왜 그런 문제가 발생했을까요? 그 이유는, 저희가 데이터를 “인 메모리(In-Memory)”방식으로 저장했기 때문입니다. 이 방식은 데이터를 RAM과 같은 임시 저장소에 보관하여 어플리케이션이 종료될 경우 이 임시 저장소의 데이터 또한 함께 소멸하게 되는것이죠.

만약, 여러분들이 대규모 백엔드 서버를 운영한다고 가정했을 때, 서버에 문제가 생겨 재시작을 해야 할 때마다 모든 사용자 데이터가 초기화된다면, 얼마나 큰 혼란이 생기게 될까요?

이러한 문제를 해결하기 위해 “데이터베이스(Database)”라는 기술이 등장하게 되었습니다. 데이터베이스는 저희가 서비스하는 어플리케이션이 종료된 후에도 데이터가 보존되는 **영속성(Persistence)**이라는 특징을 가지게 됩니다.

2) 데이터베이스 란?
데이터베이스(Database)는 ‘데이터의 집합’이라고 할 수 있습니다. 실제 데이터가 저장되는 저장소의 역할을 수행합니다.

데이터베이스(Database)를 실제로 운영하고, 관리하는 소프트웨어를 DBMS(Database Management System)라고 부릅니다.

“데이터베이스에 저장한다” 라는 말은 DBMS가 설치된 서버에 데이터를 저장한다는 의미입니다.

  • DBMS가 설치된 서버 컴퓨터를 데이터베이스 서버(DB 서버)라고 부를 수 있습니다.
  • 즉, DB 서버의 모든 데이터는 DBMS가 관리하게 됩니다.

    관계형 데이터베이스 - Relational Database (RDB):
    • 관계형 데이터베이스는 데이터의 형식이 정해져있고, 데이터 간의 관계를 맺어 모순이 없는 데이터를 유지할 수 있도록 도와주는 데이터베이스를 관계형 데이터베이스라고 부릅니다.
    • 이런 특성 때문에 은행과 같이 정확하고 일관된 데이터가 중요한 경우에 주로 사용됩니다.

      비관계형 데이터베이스 - Non-relational Database (NoSQL):
      • 데이터의 형식이 고정되어 있지 않고, 유연하게 확장할 수 있는 데이터베이스를 비관계형 데이터베이스라고 부릅니다.
      • 이런 유연성 덕분에 SNS 서비스, 빅데이터와 같이 다양한 형식의 데이터를 빠르게 저장하고 검색해야 하는 경우에 주로 사용됩니다.
      • 비관계형 데이터베이스는 유연하게 저장되는 만큼 저장되는 데이터를 제대로 관리하지 않으면 데이터베이스에 저장된 데이터를 신뢰할 수 없게 되기도 합니다.


'Daily Logs > TIL (Today I Learned)' 카테고리의 다른 글

9월 4일 Express.js  (0) 2024.09.04
9월 3일 Module  (0) 2024.09.03
8월 30일 node.js  (0) 2024.08.30
8월 29일 API  (0) 2024.08.29
8월 28일 Node.JS 입문  (0) 2024.08.28
'Daily Logs/TIL (Today I Learned)' 카테고리의 다른 글
  • 9월 4일 Express.js
  • 9월 3일 Module
  • 8월 30일 node.js
  • 8월 29일 API
Jcob.moon
Jcob.moon
반가워요~ 하루하루 꾸준히 코딩 작성하는 곳입니다 !!
  • Jcob.moon
    Pixelated Thoughts
    Jcob.moon
  • 전체
    오늘
    어제
    • HelloWorld (174)
      • Daily Logs (123)
        • TIL (Today I Learned) (64)
        • Algorithm Practice (55)
        • Dev Book Notes (4)
      • Deep Dives (36)
        • 문제 해결 (Troubleshooting) (3)
        • CS Fundamentals (22)
        • Career Prep (4)
        • Technical Notes (7)
      • Project Log (7)
      • Any (3)
      • Cooperation (4)
        • Github (2)
        • Conventions (1)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
Jcob.moon
9월 2일 REST API 개발
상단으로

티스토리툴바