Java/Spring
-
Spring Boot 로 어플리케이션을 개발하는 도중에 VM arguments 를 사용하는 상황이 있었다.프로젝트 오른쪽 버튼 > Run As > Run Configurations > 왼쪽 프로젝트 클릭 > Arguments 선택 아래와 같이 Arguments 를 선택하여 설정할 수 있다. Program arguments어플리케이션에 전달되는 인수main(String[] args) method 의 args 배열을 통해 접근할 수 있다. VM ArgumentsJVM 에 전달되는 인수로 JVM 실행 방법을 구성하고 조정하는데 사용된다.JVM 에 전달되어 VM 의 동작방식 및 시스템 속성을 정의한다고 보면 된다. -X 옵션 : JVM Heap Memory(메모리 설정), Permanent Generati..
Spring Boot VM argument (VM Options), Program argumentsSpring Boot 로 어플리케이션을 개발하는 도중에 VM arguments 를 사용하는 상황이 있었다.프로젝트 오른쪽 버튼 > Run As > Run Configurations > 왼쪽 프로젝트 클릭 > Arguments 선택 아래와 같이 Arguments 를 선택하여 설정할 수 있다. Program arguments어플리케이션에 전달되는 인수main(String[] args) method 의 args 배열을 통해 접근할 수 있다. VM ArgumentsJVM 에 전달되는 인수로 JVM 실행 방법을 구성하고 조정하는데 사용된다.JVM 에 전달되어 VM 의 동작방식 및 시스템 속성을 정의한다고 보면 된다. -X 옵션 : JVM Heap Memory(메모리 설정), Permanent Generati..
2023.11.09 -
Enum 이란Enum 은 Enumeration 의 약자이다. Enumeration 은 열거, 목록, 일람표 라는 뜻도 갖고 있으나 Java 에선열거형이라고 부른다. 위키백과에 나와있는 컴퓨터 프로그래밍의 열거형, 이넘(enum) 은 요소, 멤버라 불리는 명명된 값의 집합을 이루는 자료형이다.열거자 이름들은 일반적으로 해당 언어의 상수 역할을 하는 식별자다. 자바 Enum 은 상수 컬렉션을 정의하는데 쓰이는 특수한 자바 유형(Type) 이다.더 정확하게 말하면 Enum 은 특수한 자바 클래스이다. 열거형에는 상수, 메서드 등이 포함될 수 있으며자바 5 버전부터 추가되었다. Enum 을 사용하는 이유문자열과 비교해 IDE 의 적극적인 지원을 받을 수 있다.자동완성, 오타검증, 텍스트 리팩토링 등등허용 가능한..
Java EnumEnum 이란Enum 은 Enumeration 의 약자이다. Enumeration 은 열거, 목록, 일람표 라는 뜻도 갖고 있으나 Java 에선열거형이라고 부른다. 위키백과에 나와있는 컴퓨터 프로그래밍의 열거형, 이넘(enum) 은 요소, 멤버라 불리는 명명된 값의 집합을 이루는 자료형이다.열거자 이름들은 일반적으로 해당 언어의 상수 역할을 하는 식별자다. 자바 Enum 은 상수 컬렉션을 정의하는데 쓰이는 특수한 자바 유형(Type) 이다.더 정확하게 말하면 Enum 은 특수한 자바 클래스이다. 열거형에는 상수, 메서드 등이 포함될 수 있으며자바 5 버전부터 추가되었다. Enum 을 사용하는 이유문자열과 비교해 IDE 의 적극적인 지원을 받을 수 있다.자동완성, 오타검증, 텍스트 리팩토링 등등허용 가능한..
2023.09.14 -
@ControllerAdviceSpring 에서 공통 및 전역적으로 예외처리, ModelAttribute 등 핸들링 하기 위해@ControllerAdvice 어노테이션을 사용할 수 있다.모든 @Controller 또는 @RestController 에 적용되는 컴포넌트이다.예외 처리(@ExceptionHandler)바인딩 설정(@InitBinder)모델 속성 추가(@ModelAttribute) 예외처리(@ExceptionHandler)예외처리를 위한 try-catch 문을 사용하는게 아닌 전역적으로 예외처리를 하고 싶을때 사용한다. package com.obo.controller.global;import org.springframework.http.HttpStatus;import org.springfram..
@ControllerAdvice@ControllerAdviceSpring 에서 공통 및 전역적으로 예외처리, ModelAttribute 등 핸들링 하기 위해@ControllerAdvice 어노테이션을 사용할 수 있다.모든 @Controller 또는 @RestController 에 적용되는 컴포넌트이다.예외 처리(@ExceptionHandler)바인딩 설정(@InitBinder)모델 속성 추가(@ModelAttribute) 예외처리(@ExceptionHandler)예외처리를 위한 try-catch 문을 사용하는게 아닌 전역적으로 예외처리를 하고 싶을때 사용한다. package com.obo.controller.global;import org.springframework.http.HttpStatus;import org.springfram..
2023.08.28 -
RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
Spring RestTemplate 사용하기RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
2023.08.10 -
기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
Spring Boot 2.7 이상, Spring Security 5.6 이상버전 설정하기기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
2023.07.11 -
개발환경 : Spring Boot, Thymeleaf, javascript, html ajax 를 이용해 csv 파일 다운로드를 구현하는 과정에서 데이터가 많아질수록 느려지고 실패하는 경우도 있었다. 이러한 이유는 csv 데이터는 String 형태로 "," 콤마로 구분해 데이터를 만들어 넘기는데 반복문이 많아질수록 서버가 죽을 위험이 있다. 그래서 더 좋은 방법을 구현하는 과정에서 Html 파일을 사용하여 다운받는 방법을 사용했다. Html 위와 같이 Controller 에서 받아 처리할 데이터를 Form 태그를 통해 Submit 을 한다. 넘길 파라미터가 존재하지 않을 경우 Form 태그만 사용하여 action 으로 던져도 가능하다. Javascript ... $("#downloadForm").subm..
html 을 이용한 대용량 파일 다운로드개발환경 : Spring Boot, Thymeleaf, javascript, html ajax 를 이용해 csv 파일 다운로드를 구현하는 과정에서 데이터가 많아질수록 느려지고 실패하는 경우도 있었다. 이러한 이유는 csv 데이터는 String 형태로 "," 콤마로 구분해 데이터를 만들어 넘기는데 반복문이 많아질수록 서버가 죽을 위험이 있다. 그래서 더 좋은 방법을 구현하는 과정에서 Html 파일을 사용하여 다운받는 방법을 사용했다. Html 위와 같이 Controller 에서 받아 처리할 데이터를 Form 태그를 통해 Submit 을 한다. 넘길 파라미터가 존재하지 않을 경우 Form 태그만 사용하여 action 으로 던져도 가능하다. Javascript ... $("#downloadForm").subm..
2023.07.03