개발을 시작하시는 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 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
UserRepository는 JpaRepository를 확장하여 기본적인 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