Backend 6

[Java Springboot] gradle 종속성 인식 오류 케이스 정리

김영한의 스프링 핵심 원리 - 고급편 강의 파일을 상당히 오랜만에 켰다.그런데, 잘 작동하던 파일이 아래와 같이 오류가 뜬 것이다.   인텔리제이를 켜서 오류를 확인해보니 위와 같은 소리가 나온다. 분명 잘 됐단 말이지?  그래서 위의 Add 'spring-boot-starter-web' to classpath를 클릭하니까왜 갑자기 Maven Repository에서 라이브러리를 다운받아야 한다고 뜨는 것이다. 참고로 빌드 시 gradle로 빌드했고, dependencies를 봐도 잘 설정되어 있었다.  그래서 일단 gradle를 다시 새로고침을 눌러 주었더니, 멀쩡하게 잘 된다.사실 맞왜틀?도 아니고 틀왜맞?같은 상황인데... 왜 그런지는 모르겠다... 싶어서 구글링을 통해서 찾아보았다. 내 경우는, 인..

Backend 2024.08.13

[Java Springboot] 이메일 API 테스트 코드 만들기(시행착오 중)

2024.07.23 - [Backend] - [Java Springboot] 이메일 발송 API 코드 리팩토링개요SSAFY 자율프로젝트에서 이메일 발송 API를 제작했는데, 이전 글에서도 언급했다시피 코드를 작업하면서 별 문제가 발생하지 않았다. 정말 다행이다 SSAFY에서 프로젝트를 진행해 봤으면 알겠지만 기능 구현만 하기도 매우 벅찬 시간이라 테스트코드? 코드리뷰? 이런건 정말 사치다. 그래서 당시에는 테스트코드를 짜볼 생각조차도 들지 않았는데, 싸피가 끝났고 부족한 부분을 하나씩 채우는 과정에서 테스트코드를 짜보려고 한다.   이메일 테스트코드를 짜는 여러 가지 방법지금은 지워진 글인데, 해당 글을 보니 이메일 테스트 할 때 실제로 이메일이 발송되는 경우가 있어서 Mockito를 이용해서 테스트를 ..

Backend 2024.08.03

[Java Springboot] 이메일 발송 API 코드 리팩토링

2024.07.12 - [Backend] - [Java Springboot] 이메일 발송 API 만들기 [Java Springboot] 이메일 발송 API 만들기SSAFY에서 프로젝트를 하면서 1:1 문의를 이메일로 받을 수 있게끔 처리했다.그 API를 작업하려고 한다.난이도는 크게 어렵지 않다. 금방 할 수 있는 수준. 사전에 필요한 것(Backend)1. 최소한의 Javamanjyuv.tistory.com 이전 글을 작성하고 나서 제 글을 보셨던 분께서 카톡으로 개선하는 것이 어떻냐는 연락을 주셨다. 사실 개선을 할 생각을 굳이 안 하고 있었는데, 이 채팅방에서 나온 이야기들 + 친구 코드의 도움을 받아서 리팩토링을 시도해 보았다. 내가 작업했던 이메일 발송 API의 경우에는 로그인이 필요없는 항목이..

Backend 2024.07.24

[Java Springboot] 이메일 발송 API 만들기

SSAFY에서 프로젝트를 하면서 1:1 문의를 이메일로 받을 수 있게끔 처리했다.그 API를 작업하려고 한다.난이도는 크게 어렵지 않다. 금방 할 수 있는 수준. 사전에 필요한 것(Backend)1. 최소한의 Java및 Springboot 사용 지식2. Intellij Ultimate 개발 버전Java 17Springboot 3.3.0   1. Backend 작업1) 의존성 설치 Spring Boot Starter Mail을 이용하였다.여러 방법이 있겠지만, Gmail의 SMTP 서버를 활용하여 이메일을 발송하는 방법을 이용해보고자 한다.관련 의존성을 build.gradle 파일에 잘 넣어서 gradle을 reload 시켜주면 된다.implementation 'org.springframework.boot..

Backend 2024.07.15

lombok.Value vs org.springframework.beans.factory.annotation.Value

내용 설명에 있어서 틀린 부분이 있을 수 있습니다. 김영한 스프링 MVC 2편 마지막 섹션인 파일 업로드 편을 듣던 중, 아래와 같은 오류가 발생했다. 해당 섹션은 파일 업로드를 직접 구현해보는 ServletUploadControllerV1.java, ServletUploadControllerV2.java 파일과 스프링에서 제공하는 기능들을 이용하는 SpringUploadController.java 파일로 구성되어 있다.이전의 2가지 과정 중에서는 오류 없이 잘 넘어갔는데, 새로 작업하는 SpringUploadController.java 파일에서는 계속 file.dir을 가져오지 못하는 오류가 발생하였다. 원인을 보니 import 오류였다. 이전 파일에서는 오류가 전혀 나지 않았는데 새로운 파일에서만 오..

Backend 2024.07.08

테스트코드를 왜 짜는가?와 테스트코드 짜는 법(Java)(1)

테스트코드 시리즈는 킹갓백엔드 친구와의 메신저 내용과 개인과외 내용을 재구성하였습니다. 테스트코드를 왜 짜는가?1. 테스트 코드를 짜기 시작하면, 당장 어떤 부분을 "검증"할지 먼저 생각해본다.이 부분은, 최소한 어떤 입력이 들어왔을 때 어떤 결과를 내보낼 것인가, 그리고 내가 어떤 값만 유효하게 두고 어떤 값을 배제할 것인가 하는 부분이 중요하다.그렇게 생각이 들어오면 "어? 이게 들어오면 어쩌지? 저게 들어오면 어쩌지?"에서 본인이 상상의 나래를 펼칠 수 있는 모든 케이스를 본인 스스로가 방어함으로 인해서 500이 뜰 확률을 급격하게 낮춰주는 효과가 있다.2. 테스트 코드가 점점 쌓이기 시작하면, 본인이 실수하는 코드로 인해서 다른 부분을 건드리고 있는지 확인할 수 있다.다른 사람들도 같이 쓰고 있는..

Backend 2024.06.21