본문 바로가기

IT_Developers/JAVA163

Spring Boot - max-file-size, max-request-size / 파일 업로드 용량 제한 안녕하세요. 고코더 입니다. 스프링부트에서 파일 크기를 제한할 수 있는 설정을 알아보겠습니다. 특히 파일 업로드 기능을 사용할 때 해당 설정은 매우 중요한 부분입니다. 사이트의 전반적인 규칙을 정할 수 있기 때문입니다. max-file-size 파일 크기의 제한을 설정합니다. 해당 설정 이상의 파일을 업로드하면 만약 이 설정보다 높은 파일을 전송하게 되면 예외가 발생됩니다. max-request-size request 요청이 해당 설정 이상이 넘지 않도록 설정합니다. 역시 이 설정보다 높은 용량의 요청을 하면 예외가 발생됩니다. 설정 방법 - application.properties (2.x 이상 버전) # multipart spring.servlet.multipart.max-file-size=10MB .. 2022. 2. 8.
Spring - Jackson 이란? 안녕하세요. 고코더 입니다. 이번 시간에는 RestApi에서 자주 사용하는 Jackson 라이브러리를 알아보겠습니다. Jackson 이란? Jackson 은 JAVA 진영에서 대표적인 json 라이브러리입니다. 그리고 XML, YAML, CSV 등의 다른 형식의 데이터를 지원하는 data-processing 툴입니다. 스트림 방식으로 속도가 빠르고 유연합니다. annotation 방식으로 사용이 가능하며 각종 문서화와 유효성 체크를 쉽게 가능하게 해 줍니다. 스프링과 Jackson Jackson은 스프링 3.0이후 부터 @RequestBody 방식을 이용한 리턴 방식이면 MessageConverter 가 작동해 자동으로 컨트롤러가 객체를 후킹 할 수 있게 되었습니다. 그래서 스프링에서는 자연스럽게 JSO.. 2022. 2. 8.
Spring - Class 객체를 사용해 JSON 만들기 안녕하세요. 고코더 입니다. 이번 시간에는 클래스 객체를 만들어서 JSON을 만들어 보도록 하겠습니다. 이전 시간에 사용한 해쉬맵 형태는 보다 좀 더 효율적이고 실제로 많이 사용하는 객체지향식 방식입니다. 이번에도 크게 어려운 부분은 없으니 쉽게 따라와 보시길 바랍니다. 모델 패키지와 클래스 생성 ●1. 패키지를 생성합니다. 패키지 생성법은 마우스 오른쪽 버튼을 눌러 New -> Package를 입력합니다. ● 2. 패키지명은 model입니다. 이곳에서는 모델 객체를 만들어 사용할 폴더라고 생각하시면 됩니다. ● 3. 다음은 'GoCoder'라는 클래스를 생성합니다. 이곳에서는 Json에 사용할 변수를 만들 것입니다. ● 4. GoCoder.java 안에 내용은 아래와 같습니다. 3개의 변수를 만들었습니.. 2022. 2. 8.
Spring - HashMap을 이용한 JSON 만들기 안녕하세요. 고코더 입니다. 이번 시간에는 HashMap을 이용해 간단한 JSON 데이터를 만들어보는 시간을 가져보겠습니다. 이전 시간에 만들어 놓은 infoController.java 에 추가로 작성을 해보겠습니다. HashMap을 이용한 JSON 만들기 ● 1. 해당 소스를 코딩합니다. 이번 시간에는 @RequestMapping을 사용합니다. 사용방법은 동일하며 다중 맵핑을 사용합니다. 이렇게 하면 한 개의 메서드로 여러 URI를 처리하는 게 가능합니다. 이번에 만들 기능은 해당 프로젝트의 저작자가 누구인지 표현하는 API입니다. 그리고 해쉬맵 을 이용해서 JSON 형태의 데이터를 만들어 냅니다. 18번째 : 다중 맵핑을 사용합니다. 두 개의 URI가 접근 시 해당 메소드가 호출됩니다. 21번째 : .. 2022. 2. 7.
JAVA - HashMap 이란? / 이론 안녕하세요. 고코더 입니다. HashMap 이란? HashMap은 Map 인터페이스를 구현하고 있는 클래스입니다 키(key), 값(value)을 구성되어 있습니다. key는 정확히 하나의 value만 가질 수 있습니다. Java Collections Framework에 속한 구현체 클래스이며, Map 인터페이스를 구현한 함수입니다. key 값의 hashCode를 index로 Araay에 값을 저장하면서, 검색 속도는 매우 빠르게 작동합니다. /** * Constructs a new {@code HashMap} with the same mappings as the * specified {@code Map}. The {@code HashMap} is created with * default load fact.. 2022. 2. 7.
Spring - @RestController 사용하기 / "Hello RestController" 안녕하세요. 고코더 입니다. 이번 시간에는 @RestController를 사용해서 Hello를 출력해보겠습니다. 우린 RestAPI 형식으로 프로젝트를 꾸미기 때문에 이번 프로젝트에서는 대부분의 어노테이션을 @RestController을 사용합니다. 그만큼 이 어노테이션은 Rest 방식을 위해 만들어진 기능이라고 할 수 있습니다. info 패키지 생성 ● 1. 이전 시간에 만든 프로젝트에서 에서 패키지를 하나 생성하겠습니다. 기본으로 만들어진 패키지 위에서 마우스 우클릭을 통해 New -> Package를 클릭합니다. ● 2. 다음은 '.info'를 추가하고 Finish를 클릭합니다. info 클래스 생성 ● 3. 생성된 info에서 이번에는 new -> class를 클릭하여 클래스 파일을 생성하겠습니다.. 2022. 2. 6.
Spring - @RestController란? 안녕하세요 고코더 입니다. 이번 시간에는 @RestController를 알아보도록 하겠습니다. 요즘 많이들 사용하는 어노테이션입니다. 왜냐면 REST API가 유행이기 대세이기 때문입니다. 이 기능 덕분에 많은 개발자들이 혜택을 보고 있습니다. @RestController 기본 개념 @Controller + @ResponseBody = @RestController 아주 간단하게 설명하면 이렇습니다. @Controller와 @ResponseBody 결합된 형태입니다. 기존에는 하위 메서드에 @ResponseBody 어노테이션을 붙여서 JSON을 만들었지만, 이 기능 덕분에 이제 쉽게 알아서 전송 가능한 문자열을 만들어줍니다. @RestController 특징 - @RestControoler가 어노테이션이라.. 2022. 2. 6.
SpringBoot - yml 에 mysql 연결 설정 안녕하세요. 고코더 입니다. ● 1. 스프링부트 yml에 MySQL을 연결 설정하는 방법을 알아보겠습니다. 기존 application.properties 파일을 yml으로 수정하고 해당 파일을 엽니다. ●2. 그리고 안에 내용을 아래처럼 채워줍니다. 그대로 복사해서 붙여 넣으시면 됩니다. 그리고 안에 내용은 자신의 데이터베이스 계정에 맞게 세팅하면 됩니다. spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:(포트번호)/(DB스키마)?serverTimezone=Asia/Seoul username: (user) password: (password) 2022. 2. 4.
Spring Boot - "Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured." 오류 안녕하세요. 고코더 입니다. 스프링부트를 실행했는데 아래와 같은 오류가 발생했다고요? 오류메세지 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or De.. 2022. 2. 4.