의문점 공부하기/💻 프로젝트 진행하며

💻 프로젝트 하며 생긴 의문점,,,

아리빠 2023. 8. 20. 17:07

오브젝트를 리턴하려면 어떻게 해야할까 요청을 통해 오브젝트를 가져올 수 있는데 응답으로 오브젝트를 리턴 할 수 있다

=> 그냥 오브젝트를 리턴하면 됨 !

뭘로? @RestController= @Controller + @ ResponseBody 

@controller는 @component로 스프링이 이 클래스의 오브젝트를 알아서 생성하고 다른 오브젝트들과의 의존성을 연결

@responsebody는 이 클래스의 메서드가 리턴하는것은 웹서비스의  ResponseBody하는것 

= 리턴할 때 스프링은 리턴된 오브젝트를 Json의 형태로 바꾸고 HttpResponse에 담아 반환한다는것

 

스프링이 오브젝트를 Json으로 바꾸는 것처럼 오브젝트를 저장하거나 네트워크를 통해 전달할 수 있도록 변환하는 것을 직렬화라 하고, 반대의 작업을 역직렬화라고함


ORM  JDBC커넥션인 Connection을 이용해 데이터 베이스에 연결하고 작성된 sql을 실행후 결과를 담아오는데 이 일련의 작업들을 ORM이라 함

 

데이터베이스 테이블을 자바 내에서 사용하려면  ORM작업을 엔티티마다 해줘야함  보통 데이터베이스 테이블 하나마다 그에 상응하는 엔티티 클래스가 존재, 또한 이런 ORM 작업을 집중적으로 해주는 DAO 클래스를 작성해야함

테이블과 매핑하는 오브젝트만 다르지 하는일은 거의 비슷

보통 검색, 생성, 수정, 삭제같은 기본 오퍼레이션들은 엔티티마다 작성해줌

이런 반복 작업을 줄일 수 있는 Hibernate 같은 ORM 프레임워크가 등장, 더 나아사 JPA,스프링데이터 JPA같은 도구 개발

 

 

JPA는 반복해서 데이터베이스스 쿼리를 보내 Resultset을 파싱해야하는 개발자의 일을 덜어줌

JPA 는 스펙이다 , 스펙은 JPA의 구현을 위해 이런 기능을 작성하라 라고 말해주는 지침이 되는 문서로

JPA란 자바에서 데이터베이스 접근, 저장, 관리에 필요한 스펙

이 스펙을 구현하는 구현자를 JPA provider이라 부르는데 그 중 대표적인 JPA provider이 Hibernate

 

그럼 스프링 데이터 JPA는 무엇이고 JPA와는 무슨 관계???????

스프링 데이터 JPA는 JPA+알파 , JPA를 더 사용하기 쉡게 도와주는 스프링의 프로젝트인데 기술적으로는 이를 추상화 했다고 말함 

 

 

 

'의문점 공부하기 > 💻 프로젝트 진행하며' 카테고리의 다른 글

💻 로그인 이슈3(P&S)  (0) 2023.10.13
💻 로그인 이슈2(P&S)  (0) 2023.10.12
💻 로그인 이슈(P&S)  (0) 2023.10.11
프로젝트하며 공부한 내용  (0) 2023.08.20
💻 Gradle 이란?  (1) 2023.06.04