article thumbnail image
Published 2022. 6. 29. 11:40

ORM이란…

 ⭐️ ORM은 Object Relational Mapping 의 약어로서, 객체와 DB간의 관계를 매핑해주는 도구입니다.

개발자는  서로를 각각의 특색에 맞게 설계하여 ORM을 통해 추가적인 코드, 설계 없이

각각을 매핑시킬 수 있습니다.

ORM 사용을 간단하게 표현한 그림

  • SQL 쿼리를 사용할 줄 알아도 왜 굳이 ORM 프레임워크를 이용하는 것이 좋은지에 대해 짚고 넘어가야할 것 같습니다.

장점

  • 생산성이 증가합니다.
  •  ⭐️ 간단한 SELECT(조회)를 사용하더라도 SQL 쿼리를 프로그래밍 언어에서 사용한다면
    
    자바로는 메소드를 만들어서 쿼리문을 작성하여 그것을 리턴해주고
    
    그것을 SQL 쿼리에서 받아 DB에서 그에 맞는 데이터를 가져오고
    
    그 데이터를 또다시 객체로 매핑하여 받아오는 아주 귀찮은 일을 해야 하지만
    
    ORM을 사용한다면 코드 한 줄로 같은 일을 수행할 수 있습니다.
    
  • 유지보수가 편해집니다.
  •  
     ⭐️ SQL에서 필드의 추가로 인해 쿼리를 수정해야하는 상황을 예로 들면,
     
     변경에 영향 받는 모든 쿼리를 수정해줘야 하지만 
     
     ORM을 사용한다면 그 객체만 수정해주면 됩니다.
    
  • 객체 지향 언어와 RDB간의 패러다임 불일치를 해결할 수 있습니다.
  •  
     ⭐️ 새로운 기술이 생긴다면 그 기술들은 유지보수나 생산성은 계속 발전할 것 입니다.
     
      하지만 그 중에 JPA를 쓴다면 그 이뉴는 
      
      객체지향적으로 DB데이터를 사용할 수 있기 때문이 아닐까 생각이듭니다.
      
     객체 지향 언어는 객체 간의 관계에 집중하지만
     
     RDB는 데이터 간의 관계에 집중하기 때문에 이 점에서 불일치가 일어납니다.
    

JPA란…

⭐️ JPA는 Java Persistence API 의 약어로, Java ORM 기술의 표준 명세입니다.

다시 말하면 인터페이스 모음으로, 실질적인 동작을 하진 않습니다!

실제론 JPA를 구현한 여러가지 프레임워크를 이용합니다.

대부분의 Java 웹 개발자들은 ORM 프레임워크 중 하나인 Hibernate를 이용합니다

JPA 예시

⭐️ 그림과 같이 Java로 설계만 해주면 알아서 SQL로 바꿔주는 아주 편한 기능을 가지고 있습니다.

위에 기술된 ORM의 장점도 더해서 말이죠.

저희가 사용할 땐 이러한 로드맵으로 사용합니다.

아직 JPA를 다루는데 익숙치 않고 이해하는 것 마저

강의나 구글링을 통해 겨우겨우 바짓가랑이라도 잡는 상황이라

더 자세한 설명은 제 능력 밖의 일인 것 같습니다. 공부하면서 채워넣어야겠네요.

복사했습니다!