[개념 콕] CRUD

내일배움캠프 수료생이 개발에 꼭 필요한 핵심 개념만 콕 집어 드립니다.
May 31, 2024
[개념 콕] CRUD
✍🏼
개발을 시작하시는 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 4개월 동안 배운 엄선된 핵심 개념을 직접 정리해서 알려 드립니다. 공부하다 막히거나 헷갈리는 개념이 있다면 개념 콕으로 정리해보세요.
 

CRUD란?

CRUD는 데이터베이스와의 상호작용을 정의하는 네 가지 기본 연산(Create, Read, Update, Delete)의 약자입니다.

Create

  • 새로운 데이터를 데이터베이스에 추가하는 연산입니다.
  • SQL에서 INSERT 문을 사용하여 데이터를 삽입합니다.

Read

  • 데이터베이스에서 데이터를 조회하는 연산입니다.
  • SQL에서 SELECT 문을 사용하여 데이터를 검색합니다.

Update

  • 데이터베이스에 이미 존재하는 데이터를 수정하는 연산입니다.
  • SQL에서 UPDATE 문을 사용하여 데이터를 변경합니다.

Delete

  • 데이터베이스에서 데이터를 삭제하는 연산입니다.
  • SQL에서 DELETE 문을 사용하여 데이터를 제거합니다.
 

Spring Data JPA와 CRUD

Entity

User 클래스는 @Entity 어노테이션을 사용하여 데이터베이스 테이블에 매핑됩니다.
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
 

Repository

UserRepositoryJpaRepository를 확장하여 기본적인 CRUD 메서드를 상속받습니다.
import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { }
 

Service

UserService는 비즈니스 로직을 처리합니다.
UserRepository를 사용하여 데이터를 저장, 조회, 삭제하는 메서드를 제공합니다.
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; @Service public class UserService { @Autowired private UserRepository userRepository; // Create public User saveUser(User user) { return userRepository.save(user); } // Read public Optional<User> getUserById(Long id) { return userRepository.findById(id); } // Read All public List<User> getAllUsers() { return userRepository.findAll(); } // Update public User updateUser(User user) { return userRepository.save(user); } // Delete public void deleteUser(Long id) { userRepository.deleteById(id); } }
 

Controller

UserController는 RESTful API 엔드포인트를 정의합니다. 클라이언트 요청을 받아 서비스 클래스를 호출하여 데이터를 처리합니다.
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; // Create @PostMapping public User createUser(@RequestBody User user) { return userService.saveUser(user); } // Read @GetMapping("/{id}") public Optional<User> getUser(@PathVariable Long id) { return userService.getUserById(id); } // Read All @GetMapping public List<User> getAllUsers() { return userService.getAllUsers(); } // Update @PutMapping("/{id}") public User updateUser(@PathVariable Long id, @RequestBody User userDetails) { User user = userService.getUserById(id).orElseThrow(() -> new ResourceNotFoundException("User not found")); user.setName(userDetails.getName()); user.setEmail(userDetails.getEmail()); return userService.updateUser(user); } // Delete @DeleteMapping("/{id}") public void deleteUser(@PathVariable Long id) { userService.deleteUser(id); } }
 
 
 

내일배움캠프는 개발에 필요한 핵심만 배웁니다

지금까지 꼭 필요한 개발 지식에 대해 알아보았습니다. 내일배움캠프에서는 전문가들이 선별한 핵심 개발 지식으로 개발 공부도, 취업도 보다 효율적으로 할 수 있는데요. 국내 유수의 IT기업 출신 튜터님들과 실습 위주의 독보적인 커리큘럼으로 개발자 취업을 체계적으로 준비해보세요. 내일배움캠프 4개월, 여러분 인생의 가장 큰 터닝 포인트입니다.
 
 
 
CREDIT
글 | 김민선 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
 
 

취업 준비, 어디서부터 시작해야 할지 모르겠다면?

 
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
 
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.
 
다음 링크에 이메일을 입력하시면 메일로 1:1 커리어 상담권과 취준 자료집을 보내드릴게요.
 
 
 
Share article
Subscribe to our newsletter

내일배움캠프 블로그