본문 바로가기
백엔드/스프링+boot

기타 기술 + JPA 기본 설정

by 임지혁코딩 2024. 1. 4.

1. Rest Repositories

 

Repository부터 , 자동으로 REST API 를 만들어준다. 

REST라는 구조를 따르는 형태의 API (REST API ) (이런 개념은 나올때 복습하자)

다시 말하자면, 서버와 client가 요청을 보내고 주고 받기 위한 방법이다. 방법은 즉 코드를 의미한다.

ex) db에서 웹툰을 뽑는 코드가 있다. 이 코드를 어떻게 client가 동작시킬 것인가?

ex) app.get -> 이 url로 get을 요청한다면, 해당 웹툰뽑기 코드를 작동시킬것이다. 

 

즉 api는 어떤 주소(url)로 오면 어떤 행동을 할지. + 그 METHOD는 무엇인지. 그렇다면 어떤 일을 할지 

인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있다.  .

 

출처 - 내블로그. 

 

그래서 JPAREPOSITORY는 자동으로 CURD 기능을 따르는 METHOD들을 생성해주고, 

이에 맞춰서 SPRING REST에서, REST API를 생성해주는 것이다.

 

 

현재까지는 CONTROLLER->SERVICE->REPOSITORY를 타고 진행하는 개념으로 진행하였다.

이떄 REST REPOSITORY를 사용하면, 자동으로 CONTROLLER,기능등을 구현한다 (물론 안보인다)

허나 DOMAIN이 직접 노출되어 ,이는 부적합 하기때문에 실무에서 자주 사용되지는 않는다. 

 

엄청나게 간단할때는, REST REPOSITORY를 고민해보자!

 

다시 복습하겠지만, jpa repoistory를 사용할때는

application properties를 조정해야한다. 

----------------------------------------------------------- -----------------------------------------------------------

logging.level.org.hibernate.type.descriptor.sql.BasicBinder=trace

# Database
spring.jpa.defer-datasource-initialization=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

# API
spring.data.rest.base-path=/api

logging은 debug level에서 보이지 않는걸 보이게 해준다. 

 

DATABASE

INITALIZER는 DB를 INMEMORY(H2를 일단 쓸거라서) TRUE로 열어줘야한다.

ddl-auto(create같은 거겠구나 ) -> ENTITY를 자동으로 TABLE로 만들어 줄 것이다. 

LOG에 SQL 출력 -> SHOW -SQL 

그걸 한줄 말고 좀 길게. (이부분 기억)

 

마지막으로 ROOT에 API에설정되는데, 그것을 API폴더에 기본 설정 파일을 정리. 

 

 

자동으로 자기가 생성해준 것. 위치까지, 어디로 이동. 이런 것들을 모두 자기가 알아서 지정했다.

허나 이 기능은 어떤걸로 검색할지, (검색기능은 구현도x) 등의 다양한 문제가 있으므로, 이를 사용해서 개발은 진짜 주의하자.

+QUERY DSL 을 활용하면, 더 많은 기능이 추가되고 지원된다. (동일하게 QUERYDSL INTERFACE또한 EXTENDS받아줘야 사용이 된다. 

 

 

HAL EXPLORER ->심플하고 편한 UI를 통해  다양한  API TEST가 가능하다. 

허나 , DEPENDNECES를 추가해줘야한다.

<GET은 헤더에 요청정보를 담아서 주로 전송함에 주의하자>

'백엔드 > 스프링+boot' 카테고리의 다른 글

Spring에서 동시성 test  (0) 2024.03.29
WEBFLUX  (1) 2024.02.18
VIew, View template  (1) 2024.01.04
오류  (4) 2024.01.04
테스트 2  (1) 2024.01.03