728x90
스프링에서 MultipartFile을 처리하는 과정에서 이러한 오류 메세지가 나타는 경우가 있다. http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes. 스프링부트에서 1MB 보다 작은 파일은 상관없지만 1MB보다 큰 파일을 다루기 위해선 application.properties 설정이 불가피하다. 해결 방법 방법은 간단하다. 우선 스프링부트 2.0.0 이상 버전을 사용한다면 application.properties 에 이렇게 작성하면 된다. application.propertiesspring.servlet.multipart..
오늘은 Servlet 컨트롤러를 RestController로 변경하면서 RestController를 사용하는 이유와 Rest API를 구축하는 과정에 대해 기록해보고자 한다. 아래 이미지는 Servlet 컨트롤러를 사용해 API를 구현해놓은 것이다. Servlet을 사용하면 request와 response 값을 다루기 정말 쉬워지지만 하나의 기능당 하나의 클래스가 필요해 쓸데없이 많은 클래스를 생성해야한다. 기능당 하나의 서블렛이 생성된 모습이다. 이렇게 되면 프로그램의 용량이 쓸데없이 커지게 되며, 대규모 프로젝트라면 어떤 클래스가 어떤 기능인지 알 수도 없다. 나는 이러한 문제점을 해결하기 위해 @RestController를 채택했다. Spring MVC Controller인 @Controll..
이번 시간엔 스프링의 @Scheduled 어노테이션을 사용해 매일 00시마다 공공 데이터 포털에서 최신 주차장 데이터 CSV 파일을 받아와 파싱하고 데이터를 DB에 저장하는 데이터 자동 최신화 로직을 개발해보려한다. 바로 시작해보자. 기본 세팅 우선 스케쥴러를 사용하려면 main 메서드의 클래스에 @EnableScheduling 어노테이션을 추가해주어야한다. @EnableScheduling@ServletComponentScan@SpringBootApplicationclass ParkingServiceApplication { public static void main(String[] args) { SpringApplication.run(ParkingServiceApplication.clas..
백엔드 공부를 하다보면 인텔리제이 윈도우를 2개 켜서 사용하는 경우가 종종 있다. 난 보통 하나는 공부용 프로젝트, 하나는 앱개발 프로젝트 이렇게 두 개를 켠다. 하지만 프로젝트의 서버 포트는 디폴트 값인 8080으로 설정되어있어 전부 켜서 둘다 사용할 수가 없다. 서버를 둘 다 켜면 이런 식으로 8080 포트가 중복되었다고 오류 메세지가 출력되면서 애플리케이션이 종료된다. 이 문제는 포트번호가 중복되어 서버가 열리지 못했기 때문에 발생한 것이다. 답은 간단하다. 포트 번호 중복을 해결하면 된다. 그렇다면 포트번호 바꾸는 두 가지 방법에 대해 알아보자. '인텔리제이 설정' 에서 Port 번호 변경 먼저 인텔리제이의 'Run - Edit Configuration' 에 들어간다. 그럼 이런 화면이 나..
JPA 와 MySQL 을 연동하여 사용하는 경우, 카멜표기법으로 컬럼 이름을 지정할 시에 컬럼명이helloData -> hello_data 와 같은 형태로 자동 변경되어 버리는 문제가 발생한다. (카멜 표기법이란 각 단어의 첫문자를 대문자로 표기하고 붙여쓰되, 맨처음 문자는 소문자로 표기하는 표기법이다.) 나도 이 문제 때문에 DB와 맵핑이 되지 않아서 애를 먹었다.. 내가 설정한 컬럼명은 prkplceNo 인데 prkplce_no 으로자동 변경되어 에러가 발생했다. 에러가 발생하는 과정을 먼저 보여주겠다. DTO 에 내가 지정한 이름으로 컬럼명을 작성한다. 테이블에도 @Column 어노테이션의 name 이랑 같게 컬럼명을 입력했다. 겉보기엔 아무 문제가 없을 것 같다. 하지만 문제는 이 프로..
프로젝트를 시작하기 앞서 스프링 부트 프로젝트를 생성하려한다. 조금이라도 해본 사람은 알겠지만 https://start.spring.io/ 여기 접속하면 Spring Initializr 웹 도구를 사용해서 프로젝트를 클릭 몇 번으로 쉽게 생성할 수 있다. Maven이나 Gradle 중 원하는 프로젝트로 선택할 수 있으며, Kotlin과 Java 그리고 Groovy 중 언어를 선택할 수 있다. Spring Boot 버전은 SNAPSHOT이 붙은 것은 현재 개발중인 버전M(Minor)은 정식 릴리즈되지 않은 버전이기 때문에 아무것도 붙어있지 않은 정식으로 릴리지된 버전을 사용하는게 안정적이다. Group과 Artifact는 말그대로 그룹 이름과 빌드 결과물의 이름이기 때문에 자유롭게 지어주자. 다음으로..