본문 바로가기
2021 웹개발 101

[Spring Boot] Postman 으로 요청과 응답 확인

by Senna 2021. 12. 7.

1. RequestBody 매핑

요청 바디로 JSON형태의 문자열(*TestRequestBodyDTO와 내부적으로 같아야 함!)을 넘겨줘야 함.
Postman에서 RequestBody를 이용해 GET 요청 보내기

 

 

 

2. ResponseDTO를 반환

ResponseDTO를 return 한다.
GET 요청 결과, 다음과 같은 JSON이 반환 된다.

 

3. ResponseEntity를 반환

ResponseEntity에 badRequest를 설정한 뒤, body에 ResponseDTO 내용을 넣고 return 한다.
지구 모양 아이콘 옆에 '400 Bad Request'라고 떴다.

 

4. 서비스 테스트

1. Controller의 요청. Service의 testService()를 호출한다.
2. Service. testService()에서 TodoEntity를 임의 생성-저장 후 다시 검색하여 title을 return 한다.
3. Service에서 entity를 save()하고 findById()하기 위해 사용한 인터페이스
4. TodoRepoeitory에 저장되는 Entity. @GenerateValue 어노테이션으로 기본키를 자동생성한다.
4. 실제 GET 요청 결과. 2에서 save()했던 내용과 같음을 확인한다.

 

==> Spring Boot 설정에서 H2 디펜던시를 주입했었다.

H2는 In-Memory 데이터베이스로 로컬 환경에서 메모리상에 데이터베이스를 구축해준다.

H2를 사용하면 개발자들이 따로 데이터베이스 서버를 구축하는 데 시간을 할애할 필요가 없으므로 초기 개발시에 많이 사용한다.

==> spring-boot-stater-jpa 디펜던시

위의 코드에서 TodoRepository는 JpaRepository를 상속했다. JpaRepository는 기본적인 데이터베이스 오퍼레이션 인터페이스를 제공한다. save, findById, findAll 등이 기본적으로 제공되는 인터페이스에 해당한다. 그러므로 우리가 save 메서드를 구현하려고 'Insert into ...'와 같은 sql 쿼리를 작성할 필요가 없다.

 

 

-----

이전 스프링 부트 팀플에서는 Mybatis와 MaridDB를 사용해서 직접 다 쿼리를 작성하고 DAO와 연결하는 식으로 진행했었다.

 

H2와 JPA는 처음 써보는데 너무 신기하다. 

 

JPA에서 기본제공 쿼리가 아닌 쿼리를 작성할 때는 JpaRepository를 상속받는 인터페이스에 fintByUserID(String userID) << 이렇게 작성만 해도 알아서 파싱해서 SELECT * from TodoRepository where userId = '{userId}' 와 같은 쿼리를 작성해준다는게........ 너무 신기하다.. 다들 귀찮음을 어떻게든 피해보려 이런저런거 만들어주는게 너무 재밌다 ㅎㅎ

 

JPA에서 더 복잡한 쿼리를 작성할 때에는 @Query 어노테이션을 사용한다고 한다.