본문 바로가기

내일배움캠프/Weekly, I Learned

[WIL] WIL 다섯번째 회고록

이번주에는 알고리즘 + Spring Boot를 활용하여 게시판을 만들어보는 작업을 했다. 

게사판을 만들어보면서 가장 인상 깊었던 것이 JPA로 DB접근이 굉장히 수월해졌다는 것이 놀라웠다. 

 

JPA란?

JPA는 자바 진영에서 ORM기술 표준으로 사용되는 인터페이스의 모음이라고 한다. 

그렇다면 ORM은 무엇인지 궁금해졌다. 

 

ORM(Object-Relational Mapping)

우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며,

기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면된다.

 

왜 JPA를 사용해야 할까?

JPA는 반복적인 CRUD SQL을 처리해준다.

JPA는 매핑된 관계를 이용해서 SQL을 생성하고 실행하는데, 개발자는 어떤 SQL이 실행될지 생각만하면 되고, 예측도 쉽게 할 수 있다.

추가적으로 JPA는 네이티브 SQL이란 기능을 제공해주는데 관계 매핑이 어렵거나 성능에 대한 이슈가 우려되는 경우 SQL을 직접 작성하여 사용할 수 있다.

JPA를 사용하여 얻을 수 있는 가장 큰 것은 SQL아닌 객체 중심으로 개발할 수 있다는 것이다. 이에 따라 당연히 생산성이 좋아지고 유지보수도 수월하다. 또한 JPA는 패러다임의 불일치도해결하였다. 예를 들면 JAVA에서는 부모클래스 자식클래스의 관계 즉, 상속관계가 존재하는데 데이터베이스에서는 이러한 객체의 상속관계를 지원하지 않는다(상속 기능을 지원하는 DB도 있지만 객체 상속과는 다름). 이런 상속관계를 JPA는 아래와 같은 방식으로 해결하였다.

 

 

 

JPA를 접해보게 되면서 개발 기술이 발전하는 속도도 정말 빠르다는 것을 느낄 수 있었다. 

이러한 개발기술을 익히고 내 것으로 만들기 위해서 자주 사용해보는 것이 중요하다고 생각한다.