본문 바로가기

프로그래밍46

[Spring boot] 간단 정리 REST API 버전 관리 방법(URI, Parameter, Header, mimetype ) [Spring boot] REST API 버전 관리 방법(URI, Request Parameter, Header, mimetype ) RestApi의 설계나 구조가 변경되거나, 기능이 변경되었을때 version이 변경될때 사용자에게 어떤 버전을 제공하는지 알려줄 필요가 있다. Rest Api 의 버전관리 방식 4가지에 대해 정리한다. 1) URI 방식 - 브라우저에서 실행 가능 ( twitter ) 가장 단순한 형태이기도 하면서 이해하기 쉽기도 하다. @GetMapping(path="/v1/users/{id}") public MappingJacksonValue retrieveUser(@PathVariable int id) { ... 생략 ... } @GetMapping("/v2/users/{id}") p.. 2022. 5. 25.
Spring boot - Failed to determine a suitable driver class Spring boot - Failed to determine a suitable driver class 1. 에러 내용 : 2022-05-20 14:31:06.670 DEBUG 270240 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :Application failed to start due to an exception org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException : Failed to determine a suitable driver class -------중략------ ************************.. 2022. 5. 20.
@Size 어노테이션이 작동을 안할때 @Size 어노테이션이 작동을 안할때 아래와 같이 코드를 잤다. import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class User { @Size(min=2) private Integer id; private String name; private Date joinDate; } @Size 어노테이션이 안는다. intellij problems 탭에 확인시 아래와같은 에러가 발생하고 있다. 1. 에러 발생 : 2. 해결 방법: @Size 어노테이션이 참조하고자하는 library가 없기 때문이다. dependencies를 추가해주고 해당 프로젝트를 다시 로드 해주면된다. maven프로젝트 의 경우 pom... 2022. 5. 20.
Spring @PathVariable 어노테이션 쉽게 정리 Spring @PathVariable 어노테이션 쉽게 정리 REST API호출 경험이 있다면, URI값에 가변형 변수를 전달해서 처리하는 방식을 본적이 있을것이다. http://127.0.0.1/users?userId={$userId} http://127.0.0.1/users/{userId} 위에는 일반적인 GET 방식의 파라미터 전달이라 흔히 볼수있었다. 아래는 케이스는 Rest Api호출시 주로 많이 사용하게 된다. URI를 이용해 파라미터 처리를 할수있다는 뜻이다. @PathVariable 사용 방법 pathVariable 사용예제는 아래에서 자세히 알아보시기 바랍니다. import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsCons.. 2022. 5. 19.
초간단 생성자 @AllArgsConstructor @RequiredArgsConstructor 생성자 어노테이션 @AllArgsConstructor @RequiredArgsConstructor 1. @AllArgsConstructor - 자동으로 클래스 변수의 선언 순서대로 파라미터로 받는 생성자를 생성한다. import lombok.AllArgsConstructor; @AllArgsConstructor public class Human { String name; String nickName; } 아래와 같이 human class 생성자를 사용할수 있다. public class SampleService { public static void main(String args[]) { Human human = new Human("배정남","간지맨"); } } 2. @RequiredArgsConstruct.. 2022. 4. 28.
crontab을 이용해서 오래된 파일을 자동으로 삭제 crontab을 이용해서 오래된 파일을 자동으로 삭제 crontab을 이용해서 주기적으로 오래된 파일을 삭제하는 shell 파일을 만들일이 생겼다. application에서 개발을해서 주기적으로 삭제하는것이 가장 좋은 방법이라 생각되나, 현실은 그렇지 못한 경우가 많다고 생각한다. attach_delete.sh 을 생성하자 PERIOD_DAY : 파일 보관 주기 TARGET_DIR : 삭제 대상의 폴더 #!/bin/sh PERIOD_DAY=60 TARGET_DIR=/home/app/attach_files NOW=$(date +"%y-%m-%d %T") echo "---------- [$NOW] cron_attach_delete.sh started. --------" echo "### delete peri.. 2022. 2. 18.