
ORM(Object Relational Mapping)은 객체로 연결을 해준다는 의미이다. 어플리케이션과 데이터베이스 연결 시 SQL 언어가 아닌 어플리케이션 개발 언어로 데이터베이스를 접근할 수 있도록 해주는 개념이다.
ORM은 SQL 문법 대신 어플리케이션의 개발 언어 (Java, JavaScript, Python 등)을 그대로 사용할 수 있어, 개발 속도와 러닝 커브를 낮추는 장점을 가지고 있다.
개발 언어 1개로 DB 단까지 처리함으로써 개발 언어의 일관성과 가독성을 높일 수 있다.
public void insertUser(User user){
String query = " INSERT INTO user (email, name, pw) VALUES (?, ?, ?)";
PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.setString (1, user.getEmail());
preparedStmt.setString (2, user.getName());
preparedStmt.setString (3, user.getPW());
// execute the preparedstatement
preparedStmt.execute();
}
@Service
@RequiredArgsConstructor
@Transactional
public class UserService {
private final UserRepository userRepository;
public void registerUser(User user) {
userRepository.save(user);
}
}
ORM을 활용하여 개발을 진행하면, 직접적으로 SQL을 작성하지 않고도 DB를 활용할 수 있어 개발 속도가 비약적으로 상승된다.
SQL의 절차적인 접근이 아닌, 객체처럼 접근하여 생산성을 높일 수 있다.