Springboot 35

Springboot 예외처리! with IllegalArgumentException

항상 가지는 고민이 있었다 예를 들어 userDto dto= dao.findByEmail(email) 했을 때 잘못된 값이 와서 null 반환된다면? 물론 try catch로 묶어서 throw new 런타임 익셉션으로 던지면 되지만 제네릭을 사용해서 dto를 널을 검사하고 null이면 예외를 던지면 어떨까...? 라는 생각을 하고 구현해봤다! 새로운 클래스를 만들었다 제네릭을 이용해서 dto 받은 다음 null이라면 예외를 일으킨다! errorRestController 테스트 전화인증 로직에서 말도 안 되는 값을 넣어놨다 완료! 사실 제네릭 한번 써보고 싶었다 ㅋㅋㅋ

Spring boot 예외처리! with Transactional

kim's cafe에이어 kim's shop을 만드는 도중 치명적인 오류가 있었다 무려 Transactional어노테이션이 먹히지 않았다.. 아예 작동하지 않았다 UPDATE문도 던지지 않고.. 근데 업데이트야 뭐 sql문을 던지면 되지만 제일 두려운 게 rollback이었다 어노테이션 덕에 rollback을 쉽게 알아서 해주는데 그걸 사용할 수 없게 된 거 같았다.. 결론 일단 해결했다 어노테이션 위치가 잘못되어있었다 흐름은 이렇다 프런트(3030)에서 요청->(8080)으로 전달 -> controller->confrimService->senPhone함수-> sendSms함수-> updateconfrim함수 이전에 난 updateconfrim에 어노테이션을 붙여 놓았다 즉 마지막에 SET이 이뤄지는 곳..

Springboot 예외처리및응답하기!(2) with @Transactional And @Transactional(rollbackFor = {Exception.class})

전체적으로 중간 소스 정리를 해보았다 재밌었다 이전에는 예외를 일부로 일으킨다고..? 굳이 이런생각이 있었는데 왜 그런지 어떤 부분에서 일으켜야 하는데 조금은 알거 같은 생각이 들었다 @Transactional에 대해서도 이해가 조금더 높아졌다 또 한 번 느꼈지만 처음부터 변 수명이 나형식을 잘 정해서 해야 편하다는 걸 다시 느꼈다 예를 들어 댓글 등록/수정에는 @Transactional만 붙여놨다 이유는 행동이 하나이다 댓글의 코멘트만 바뀌면 되게 해 놨기 때문이다 하지만 글 등록/수정 시에는 @Transactional(rollbackFor = {Exception.class}) 사용했다 이유는 사진 같은 파일도 받는 과정에서 예기치 못한 에러가발생한다 예를 들어 실수로 이미지가 아닌 다른 형식의 파일을..

Springboot json 전송! with JSONObject or map

이제 spring에서 json을 프런트로 주는걸 아주 간단하게 해볼건데 왜냐면 현재 프로젝트는 실패/성공만 boolean으로 주고 있다 프로젝트 막바지가 되면 사용자가 실패를 하더라도 xx가 맞지 않습니다 혹은 글자 수를 초과하였습니다 등 여러 상태 메시지를 던져 줘야 한다 두 가지 방법이 있는 거 같은데 JSONObject를 사용해서도 json을 던질 수 있는데 map을 사용해서 던질 수도 있다고 한다 jsonObject Map 결과를 보면 제대로 나온다

Springboot/Json 2021.06.20

Springboot json 받기! with @Requestbody And JSON.stringify

xmlhttprequest로 어떻게 사진들과 글 내용들의 데이터를 보낼까 하다가 json에 대해 봤다 이미 익히 익히 알고 있었지만 그래서 궁금해졌다 json으로 프런트가 보냈을 때 과연 어떻게 받아야 하나 테스트 결과 @RequestBody을 사용해줘야 했다 @RequestParam은 예를 들어 /test? email="kim"&pwd="1111" 이렇게 받는 형식이고 @RequestBody은 json 그 자체를 받는 형식이었다 postman으로 테스트해보면 아참 고로 spring은 파라미터 이름과 vo/dto 내부 클래스 변수가 이름이 같다면 그냥 자동으로 저렇게 받아서 사용이 가능하다 (테스트 임으로 @vaild를 하지 않았다) 결과는 @RequestBody을 이용해 json을 받았다! 이제 내소스..

Springboot/Json 2021.06.20