Spring
-
multipart.MaxUploadSizeExceededException 오류 발생시Spring 2021. 11. 6. 11:56
기본으로 설정된 multipart파일의 사이즈보다 넣으려는 파일의 크기가 크기 때문에 발생한다. (디폴트 값은 1048576 bytes = 1MB) application.properties에 값 설정을 변경해줌으로서 해결할 수 있다. SpringBoot 2.x의 버전 spring.servlet.multipart.maxFileSize=10MB spring.servlet.multipart.maxRequestSize=10MB SpringBoot 1.4.x & 1.5.x의 버전 spring.http.multipart.maxFileSize=10MB spring.http.multipart.maxRequestSize=10MB SpringBoot 1.3.x혹은 그 이전 버전 multipart.maxFileSize=10..
-
Data too long for column 오류 발생시Spring 2021. 11. 6. 11:52
컬럼에 기본 설정된 바이트 길이보다 들어온 데이터의 바이트 길이가 커서 발생하는 오류이다. 해당 컬럼의 길이를 늘려주면 해결된다. @Column(length = 늘이고자 하는 길이) String name; (참고한 사이트) https://scshim.tistory.com/337 [JPA] 오류 해결: “Data too long for column” Spring Data JPA를 통해 아래와 같은 엔티티로 MySQL 데이터베이스에 테이블을 생성한다고 가정하자. @Entity public class SurveyAnswer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id; Lo.. scshim.tistory.com
-
Amazon S3를 이용해서 파일 저장, 삭제하기Spring 2021. 11. 5. 22:54
이미 프로젝트의 로컬폴더에 이미지 저장하는 코드를 구현했었다. (FIle Uplaod Utils) 이것을 amazon S3를 통해서 원격으로 S3에 파일을 처리하도록 해보자. 먼저 aws에 가입해서 버킷을 만들어 주고 '내 보안자격 증명'에서 access_key와 secret_key을 만들어준다. (생략) 여기서 발급받은 access_key, secret_key는 절대! 외부로 노출되지 않도록 해야한다. (해당 키를 public github에 올린다거나 하면 aws에서 연락이 왔다는 글도 봤다.) 결제 카드를 등록해서 가입하고 결제와 관련된 부분이므로 조심 또 조심해야한다. (로그인 2차 보안도 해놓자) S3 Dependency com.amazonaws aws-java-sdk 1.11.1000 https..
-
SMTP 서버를 통한 이메일 보내기Spring 2021. 10. 26. 22:43
spring에서 이메일 보내기 🌱 패스워드를 잊어버렸을때 임시비밀번호를 생성해서 등록된 유저의 이메일로 보내주도록 해보자. dependency org.springframework.boot spring-boot-starter-mail 먼저 메일을 이용하기 위해서 spring-boot-starter-mail을 dependency에 추가해준다. 네이버 이메일 host 등록하기 먼저 사용할 메일 환경설정에 들어가서 smtp사용을 사용함으로 설정해준다. application.properties #Mail spring.mail.host=smtp.naver.com spring.mail.port=가려진 포트번호를 가져와서 등록 spring.mail.username=보내려는 이메일 spring.mail.password=..
-
OAuth2 사용해서 react와 함께 소셜로그인 기능 만들기Spring 2021. 10. 26. 21:40
로그인 창에서 많이 볼 수 있는 소셜로그인 기능을 만들어보자. 여기서 인증이 완료된 후 생성한 토큰을 어떻게 프론트엔드로 다시 보낼까에 대한 부분이 어려웠다 😵💫 (결론은 쿠키를 통해서 확인된 uri에 생성된 토큰 붙인 새로운 uri 생성하고 다시 보내기...!) 구글 프로젝트 계정 만들기 https://console.cloud.google.com/apis Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 먼저 홈페이지에 들어가서 로그인을 해준 후 , API 및 서비스 항목으로 들어간다. 적용할 프로젝트를 생성해준다. OAuth 동의화면으로 가서 앱 정보를 입력해준다. ..
-
TDD (Test Driven Development) : 단위 테스트 작성하기Spring 2021. 10. 26. 17:18
개발단계에서의 오류와 자체 버그 검출 능력을 향상시키기 위해서 TDD(테스트 주도 개발)의 개발이 사용되고 있다. TDD를 통해 개발을 진행한다면 코드 재사용과 관리가 용이해지므로 테스트 주도 개발을 하는 습관을 들이도록 하자. (나는 완전 초보이므로 ㅠㅠ 이제 단위테스트의 부분부분을 배워가고 있다) F.I.R.S.T 원칙 단위 테스트 코드를 작성할 때 주의해야 하는 원칙은 5가지 이다. F : Fast -> 테스트 코드는 빨리 진행이 되어야 한다. I : Independent -> 독립적으로 실행이 가능해야 한다. R : Repeatable -> 반복이 가능해야 한다. S : Self Validating -> 테스트 코드만 실행해도 성공여부를 확인할 수 있어야 한다. T : Timely -> 바로 사용..
-
Controller와 RestController ( + ResponseEntity)Spring 2021. 10. 26. 14:52
controller와 달리 restcontroller에서는 페이지를 반환하는 것이 아니기 때문에, 예외적인 상황에서 문제가 발생할 수 있다. 따라서 ResponseEntity를 이용하여 상태코드를 조절하도록 한다. Controller 전통적인 @Controller는 주로 view를 반환하기 위해 사용한다. 클라이언트가 URI 형식의 request를 보내면, mapping되는 handler와 타입을 찾는 dispatcher servlet이 요청을 처리하고, Controller에서 일을 처리한 후에 dispatcher servlet에게 보내면 view를 클라이언트에게 response로 보내는 형식이다. view를 반환하기 위해서는 ViewResolver가 사용되며 설정에 맞게 view를 찾아 렌더링 해준다...
-
controller에서 파라미터를 받는 방법 : @RequestParam, @RequestBody, @PathVariable (+ DTO를 포함하는 DTO)Spring 2021. 10. 26. 13:18
스프링에서 프론트엔드에서 넘어온 데이터를 받는데에는 대표적으로 3가지 방식이 있다. @RequestParam @GetMapping("/activity") public ActivityDTO getActivity(@RequestParam(value = "id", required = true)String id){ Integer activityId = Integer.parseInt(id); return activityService.getActivity(activityId); } @RequestParam에서는 프론트엔드로부터 http://localhost:8080/activity?id=2 의 형식으로 요청이 넘어오게 된다면 물음표 뒤의 아이디 값을 받는 어노테이션이다. value 혹은 name으로 넘어오는 데이터..