"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > CRUD 작업: 무엇이며 어떻게 사용할 수 있나요?

CRUD 작업: 무엇이며 어떻게 사용할 수 있나요?

2024-11-07에 게시됨
검색:476

CRUD Operations: What Are They, and How Can I Use Them?

CRUD 작업: 무엇이며 어떻게 사용할 수 있나요?

CRUD 작업(생성, 읽기, 업데이트, 삭제)은 데이터 관리가 필요한 모든 애플리케이션의 기본입니다. 이러한 작업은 데이터베이스와 효과적으로 상호 작용하는 데 필요한 기본 기능을 제공하므로 개발자가 이러한 작업을 이해하는 것이 중요합니다. 이 블로그 게시물에서는 CRUD 작업이 무엇인지, MERN 스택(MongoDB, Express, React 및 Node.js)을 사용하여 이를 구현하는 방법을 Yoga Pose Library 앱에 통합하는 방법을 보여 드리겠습니다.

CRUD 작업이란 무엇입니까?

CRUD는 다음을 의미하는 약어입니다:

  • 만들기: 데이터베이스에 새 데이터를 추가합니다.
  • 읽기: 데이터베이스에서 데이터를 검색합니다.
  • 업데이트: 데이터베이스의 기존 데이터를 수정합니다.
  • 삭제: 데이터베이스에서 데이터를 제거합니다.

이러한 작업은 데이터 조작과 관련된 대부분의 웹 애플리케이션의 백본을 형성합니다. CRUD 작업을 구현하면 사용자가 데이터와 효과적으로 상호 작용하고 관리할 수 있습니다.

CRUD 작업을 위한 MERN 스택 설정

1. 몽고DB 설정

CRUD 작업 구현을 시작하기 위해 요가 자세를 저장할 MongoDB 데이터베이스를 설정했습니다. 동일한 작업을 수행하는 방법은 다음과 같습니다.

  • MongoDB 설치: 공식 웹사이트에서 MongoDB를 다운로드하고 설치합니다.
  • MongoDB 서버를 시작합니다. 터미널에서 mongod를 실행하여 서버를 시작합니다.

2. 몽고DB에 연결

MongoDB에 연결하기 위해 MongoDB 및 Node.js용 ODM(객체 데이터 모델링) 라이브러리인 Mongoose를 사용했습니다. 내 server.js 파일에서 연결을 설정한 방법은 다음과 같습니다.



const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/yogaPoseLibrary')
.then(() => console.log('Connected to MongoDB'))
.catch(err => console.error('Error connecting to MongoDB', err));


3. 몽구스 모델 생성

다음으로 요가 자세를 표현하기 위해 몽구스 모델을 만들었습니다. 이 모델을 사용하면 MongoDB 컬렉션과 쉽게 상호 작용할 수 있습니다. models/Pose.js 파일에서 다음과 같이 스키마를 정의했습니다.



const mongoose = require('mongoose');

const poseSchema = new mongoose.Schema({
  name: { type: String, required: true },
  description: { type: String, required: true },
});

module.exports = mongoose.model('Pose', poseSchema);


CRUD 작업 구현

MongoDB 연결 및 모델 설정을 통해 Express 서버에서 CRUD 작업을 구현했습니다.

1. 생성(포스트)

사용자가 새로운 요가 자세를 추가할 수 있도록 POST 요청을 허용하는 경로를 만들었습니다.



app.post('/api/poses', async (req, res) => {
  try {
    const newPose = new Pose(req.body);
    const savedPose = await newPose.save();
    res.status(201).json(savedPose);
  } catch (err) {
    res.status(500).json({ error: 'Failed to create pose' });
  }
});


이 경로에서는 요청 본문에 전송된 데이터를 사용하여 새 포즈가 생성되고 데이터베이스에 저장됩니다.

2. 읽기(GET)

읽기 작업을 위해 모든 포즈를 검색하는 경로를 만들었습니다.



app.get('/api/poses', async (req, res) => {
  try {
    const poses = await Pose.find();
    res.json(poses);
  } catch (err) {
    res.status(500).json({ error: 'Failed to fetch poses' });
  }
});


이 경로는 데이터베이스에서 모든 요가 자세를 검색하여 JSON 응답으로 다시 보냅니다.

3. 업데이트(PUT)

사용자가 기존 포즈를 업데이트할 수 있도록 PUT 경로를 구현했습니다.


app.put('/api/poses/:id', async (req, res) => {
  try {
    const updatedPose = await Pose.findByIdAndUpdate(req.params.id, req.body, { new: true });
    res.json(updatedPose);
  } catch (err) {
    res.status(500).json({ error: 'Failed to update pose' });
  }
});


이 경로는 제공된 ID를 기반으로 특정 포즈를 업데이트하고 업데이트된 포즈를 반환합니다.

4. 삭제(DELETE)

마지막으로 삭제 작업을 구현했습니다.


app.delete('/api/poses/:id', async (req, res) => {
  try {
    await Pose.findByIdAndRemove(req.params.id);
    res.json({ message: 'Pose deleted' });
  } catch (err) {
    res.status(500).json({ error: 'Failed to delete pose' });
  }
});


이 경로는 해당 ID를 사용하여 데이터베이스에서 포즈를 제거합니다.

CRUD 작업 테스트

CRUD 작업을 구현한 후 Postman을 사용하여 각 엔드포인트를 테스트했습니다. 이 테스트를 통해 내 경로가 올바르게 작동하고 데이터가 예상대로 관리되고 있는지 확인했습니다.

예제 테스트

  • 새 포즈 만들기:

다음 본문을 사용하여 /api/poses에 POST 요청을 보냅니다.


{
"name": "전사 I",
"description": "다리와 코어를 강화하는 서 있는 자세입니다."
}

  • 모든 포즈 읽기:

/api/poses에 GET 요청을 보냅니다.

  • 기존 포즈 업데이트:

업데이트된 데이터를 사용하여 /api/poses/:id에 PUT 요청을 보냅니다.

  • 포즈 삭제:

/api/poses/:id에 DELETE 요청을 보냅니다.

결론

CRUD 작업은 데이터 관리와 관련된 모든 애플리케이션에 필수적입니다. MERN 스택을 사용하여 이러한 작업을 요가 포즈 라이브러리 앱에 통합함으로써 사용자가 요가 포즈와 효과적으로 상호 작용할 수 있는 강력한 애플리케이션을 만들었습니다. CRUD 작업을 이해하고 구현하면 개발 기술이 크게 향상되고 동적 웹 애플리케이션을 만들 수 있습니다. 계속해서 앱을 개선하면서 더 많은 기능을 탐색하고 사용자 경험을 향상할 수 있기를 기대합니다.

릴리스 선언문 이 기사는 https://dev.to/wendyver/crud-Operations-what-are-they-and-how-can-i-use-them-589i?1에서 복제됩니다.1 침해가 있는 경우에는 Study_golang에 문의하세요. @163.com 삭제
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3