부제: IntelliJ에서 S3 연동하기, Spring Boot AWS 연동 이번 포스팅에서는 Spring Boot에서 Spring Cloud AWS를 활용하여 S3를 연동하는 법을 알아보겠다. 절차는 크게 3가지(의존성 설정, Properties 파일 설정, 구현)로 나눌 수 있다. 1. 의존성 설정 Spring Cloud AWS를 활용하면, 의존성만 추가해도 간편하게 AWS의 모든 기능을 활용할 수 있다는 장점이 있다. 아래 내용을 build.gradle에 추가하자. (버전은 알아서 적절히 넣도록 한다.) 12compile("org.springframework.cloud:spring-cloud-aws-context:${springCloudVersion}")compile("org.springframew..
부제: hibernate auto reconnect, spring boot JPA reconnect, org.hibernate.exception.jdbcconnectionexception could not prepare statement 문제 해결 Spring Boot + JPA + Hibernate로 MySQL을 연동하여 웹 앱을 구현했는데, 아래와 같은 문제가 발생했다. 구글링을 해보니, Mysql의 Connection Pipe(?)가 끊어진 것이다. 쉽게 말하면 연결을 잃어버린 것인데, Mysql의 경우 8시간 이상 요청이 없으면 연결을 끊어버린다고 한다. 내 앱을 쓰는 사람이 많은 것도 아니고, 밤에 자고 일어나는 것 감안하면 8시간은 너무 짧았다. 대책이 필요하다고 생각하여, 방법을 찾아봤는데 ..
부제: Excutable JAR AutoConfiguration 문제 해결, Spring boot JAR 배포, Spring boot 원격 서버에 배포하기 Spring boot가 기존의 Spring에 비해 편리한 점은 꽤 많을 것이다. 그 중에서도 대표적인 것 하나를 꼽으라면 실행가능한 JAR(Executable JAR)라고 할 수 있다. Maven, Gradle등의 dependency tool을 이용하여 WAR파일을 생성한 후(build) tomcat과 같은 WAS에 배포하여 웹 애플리케이션을 구동하는 것이 기존의 Spring이었다. 반면에 Spring boot는 JAR파일에 내장 톰캣이 존재하여, JAR파일을 빌드하고 단순히 실행하는 것만으로 웹 애플리케이션 구동이 가능하다. ▶ JAR의 사전 속 의..
이런 간단한 문제로 며칠을 헤맸다는 사실이 매우 창피하지만, 같은 실수를 반복하지 않기 위해 삽질로그를 남긴다. Spring boot & thymeleaf로 다중 파일업로드를 처리하려면, 몇가지 간단한 절차만 수행하면된다. 1. .properties 설정 2. html 개발 3. java 개발 1. .properties 설정 설정을 하지 않아도 상관 없지만, application.properties 파일을 열어 아래와 같이 추가해주면 좋다. multipart.maxFileSize=5MB multipart.maxRequestSize=5MB 최대 허용 파일 크기를 5MB로 넉넉하게 잡은 것이다. Default값은 1MB이다. 2. html 개발 (화면 개발) 태그를 이용하여 개발하면 된다. 다중 파일업로드를..
Spring Boot에서 Mockmvc를 활용하여 단위테스트를 수행하는 도중.. JUnit을 만들고나서 난관에 봉착했다. (참고: 인텔리J에서 JUnit생성하는 법) 분명히 의존성 추가도 잘했는데.. @SpringApplicationConfiguration 어노테이션을 인식하지 못하는 것.. 아래 그림을 참고하면 된다. 한참을 구글을 찾아 헤매다가 해답을 발견한 것이.. Spring Boot 1.4부터 등장한 @SpringBootTest 어노테이션이다. 벌써 결론부터 내버렸지만, 좀 더 자세히 설명을 하자면... 123456@RunWith(SpringJunit4ClassRunner.class)@SpringApplicationConfiguration(TestApp.class)@IntegrationTestp..
부제: 인텔리J에서 JUnit 생성하기. 인텔리J에서 단위테스트 수행하기. Spring에서 효과적인 단위테스트 수행을 위해서는 JUnit을 사용하면 좋다. 이 포스팅에서는 Intelli J(인텔리 J)에서 JUnit을 생성하는 법을 알아보도록 하겠다. 1. build.gradle 파일에 의존성 추가 위 그림과 같이 의존성을 추가한다. 2. JUnit 생성 테스트할(JUnit을 생성할) 컨트롤러로 이동하여, Class Name에 커서를 올린 후 Alt+Enter를 누르면 위 그림과 같이 메뉴가 등장한다. Create Test를 누르면 아래와 같은 창이 팝업된다. 필요한 SuperClass가 있으면 기입하거나, generate하고 싶은 메소드를 체크하여 하단의 OK를 누르면 JUnit이 생성되는 것을 확인할..