TIL

2022.07.26.TIL

rootzero 2022. 7. 26. 14:52

주소에서 값을 받을 때:

GET http://localhost:8080/hello/request/star/BTS/age/28

@GetMapping("/star/{name}/age/{age}")

에서는 @PathVariable로 값 받아오기

 

GET http://localhost:8080/hello/request/form/param?name=BTS&age=28

/form/param

에서는 @RequestParam으로 값 받아오기

 

body에서 값을 전달받을 때:

POST http://localhost:8080/hello/request/form/model

Header

  Content type: application/x-www-form-urlencoded   //json이 아닌 다른 방식

Body

  name=BTS&age=28

@PostMapping("/form/model")

에서는 @ModelAttribute

 

POST http://localhost:8080/hello/request/form/json   //json형식

Header

  Content type: application/json

Body

  {"name":"BTS","age":"28"}

@PostMapping("/form/json")

에서는 @RequestBody로 받아오기

 

테이블 column의 이름들을 정할 때에는 sql예약어를 조심해야 한다.(테이블이 안만들어짐)

https://zetawiki.com/wiki/MySQL_%EC%98%88%EC%95%BD%EC%96%B4

 

MySQL 예약어 - 제타위키

다음 문자열 포함...

zetawiki.com

 

Spring 과제하다 발견한 점들:

또다른 객체에 담아서 출력 json을 만들어줄 수 있다.

추상자료형 T로 선언해서 여러곳에서 사용할 수 있게 함.

public class ResponseDto<T> {
    private boolean success;

    private T data;

    private String error;

    public ResponseDto(boolean success, T data, String error){
        this.success = success;
        this.data = data;
        this.error = error;
    }
}

ResponseEntity로 뭔가 할 수 있을거 같았지만 데이터 출력 순서가 맘대로 안돼서 포기

https://hyeonic.tistory.com/197

 

[SpringMVC] ResponseEntity 적용

개요 기존 프로젝트에는 단순히 값을 body에 담아 전달하기 위한 api 서버를 구성하였다. 하지만 프론트 개발자와의 원할한 통신을 위해서는 body 이외에 HTTP의 상태 코드와 헤더 정보를 좀 더 상세

hyeonic.tistory.com

 

@ExceptioHandler 메소드로 유연하게 예외처리 가능 (try-catch문 없이)

@ExceptionHandler(Exception.class)
public ResponseDto<Object> handleE(Exception e){
    return new ResponseDto<>(false,null,e.getMessage());
}

https://mangkyu.tistory.com/204

 

[Spring] Spring의 다양한 예외 처리 방법(ExceptionHandler, ControllerAdvice 등) 완벽하게 이해하기 - (1/2)

예외 처리는 robust한 애플리케이션을 만드는데 매우 중요한 부분을 차지한다. Spring 프레임워크는 매우 다양한 에러 처리 방법을 제공하는데, 어떠한 방법들이 있고 가장 좋은 방법(Best Practice)은

mangkyu.tistory.com

JPA 공부해보기(언젠가는...)

https://book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=240925953&gclid=Cj0KCQjwof6WBhD4ARIsAOi65ajIJYa3ZWluhREXg6W8sdQQ7nahhbVQ0ktah_F65FYbkI7SnsZqW8IaAt8WEALw_wcB 

 

싸니까 믿으니까 인터파크도서

JPA를 처음 접했을 때의 놀라움은 아직도 잊혀지지 않는다. 지금까지 관계형 데이터베이스에서 객체를 관리하려고 작성했던 무수한 CRUD 코드와 SQL들이 머릿속을 스쳐 지나갔다. 마치 시골에서

book.interpark.com

 

스프링에서 Index를 사용하면 더 빠르게 DB조회가 가능할 때도 있다.

https://velog.io/@ljinsk3/JPA%EB%A1%9C-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

 

JPA로 인덱스 사용하기

배경 데이터베이스는 조건문으로 검색할 때, 테이블 전체를 full scan으로 탐색한다. 이러한 탐색 방식은 데이터가 많아지면 많아질 수록 비효율적인 방식이라는 것을 알 수 있을 것이다. 이러한

velog.io