
이전 게시글 가장 마지막에 간략하게 소개했는데, 자세한 설명이 필요할 것 같아 새로운 포스트를 작성하게 되었다.
질문 답변 게시판을 만든다고 가정해보다. 질문이나 답변을 작성하면 데이터가 생성된다. 그러므로 데이터를 저장하거나 조회하거나 수정하는 등의 기능을 구현해야 한다. 웹 서비스는 데이터를 처리할 때 대부분 데이터베이스를 사용한다.

그런데 데이터베이스를 사용하려면 SQL 쿼리(query)라는 구조화된 질의를 작성하고 실행하는 등의 복잡한 과정이 필요하다. 이때 ORM(object relational mapping)을 이용하면 자바 문법만으로도 데이터베이스를 다룰 수 있다. 즉, ORM을 이용하면 개발자가 쿼리를 직접 작성하지 않아도 데이터베이스의 데이터를 처리할 수 있다.

코드에서 Question은 자바 클래스이며, 이처럼 데이터를 관리하는 데 사용하는 ORM 클래스를 엔티티(Entity)라고 한다. ORM을 사용하면 내부에서 SQL 쿼리를 자동으로 생성해 주므로 직접 작성하지 않아도 된다. 즉, 자바만 알아도 데이터베이스에 질의할 수 있다. 이 외에, ORM을 이용하면 데이터베이스 종류에 상관 없이 일관된 코드를 유지할 수 있어서 프로그램을 유지·보수하기가 편리하며, 내부에서 안전한 SQL 쿼리를 자동으로 생성해 주므로 개발자가 달라도 통일된 쿼리를 작성할 수 있고 오류 발생률도 줄일 수 있다는 장점이 있다.
이것을 스프링부트에서는 JPA(Java Persistence API)를 사용하여 데이터베이스를 처리한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스의 모음이다. 다음 포스팅에서 본격적으로 JPA에 대해 알아보자.
'백엔드 > Springboot' 카테고리의 다른 글
엔티티(Entity) -1- (0) | 2023.09.17 |
---|---|
JPA 환경설정 (0) | 2023.09.17 |
JPA (1) | 2023.09.17 |
컨트롤러 (0) | 2023.09.17 |
스프링부트 프로젝트의 구조 (0) | 2023.09.16 |