//컨트롤러 List userList = userService.findAllPaging(startIndex, page); ...// 서비스 , 레포지토리 ... //매퍼 @Select("SELECT * FROM user limit #{startIndex}, #{pageSize}") List selectPaging(int startIndex, int pageSize); DB는 MySQL을 사용하여 limit 을 통해 0, 5 로 5개의 row만 가져오고 싶었다. 실행을 해보니 nested exception is org.apache.ibatis.binding.BindingException: Parameter 'startIndex' not found. Available parameters are [arg1, ..
@ControllerAdvice @RestControllerAdvice 를 사용하여 @ExceptionHandler 을 전역으로 설정 컨트롤러에서 사용되는 공통 기능들을 모듈화하기 위한 어노테이션으로, @InitBinder @ModelAttribute @ExceptionHandler 세 가지 어노테이션을 지원합니다. 이 중 @ExceptionHandler 를 사용해 보았습니다. @Slf4j @RestControllerAdvice public class ExceptionHandlerAdvice { /* 400 Bad Request - 클라이언트가 유효하지 않은 요청을 보낸 경우 401 Unauthorized - 해당 서버에 클라이언트 인증이 실패한 경우 403 Forbidden - 클라이언트가 인증은 됐지..
발생한 문제 생긴 문제는 MyBatis를 사용하여 Json 데이터를 insert하고 user 객체를 반환합니다. 이 때, id는 기본키이며, auto increment이고 det는 datetime, Current_timestamp로 현재 날짜와 시간을 자동으로 생성해줍니다. User class //User @Data public class User{ private long id; private String email; private String password; private String name; private LocalDateTime det; } User Controller //컨트롤러 @PostMapping public Object postUser(@RequestBody @Validated User..
1. Dockfile을 통해 빌드 결과물을 COPY하려고 하는데 결과물이 두 개 이상이어서 디렉토리로 지정하라는 에러가 나옵니다. # FROM openjdk:11-jdk ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 이 때, 이 문제를 해결하기 위한 방법 중 한 가지는 이 /*.jar을 해당 빌드된 결과물 파일명을 그대로 써넣는 것입니다. ARG JAR_FILE=build/libs/*.jar 2. Gradle build가 일어날 때 아카이브 파일을 생성하지 않도록 하여, 빌드 결과물이 하나만 나오게 하겠습니다. plane.jar이 생성되지 않도록 해줍니다. //build.gradle t..
vue cli 를 통해 vue 프로젝트를 만들었습니다. 일반적으로 vue.config.js 를 따로 설정해 주지 않는 이상 npm run build를 실행하게 되면 해당 디렉토리에 dist라는 폴더가 만들어집니다. build의 결과물인 dist라는 폴더를 nginx에 올려야 합니다. 1. vue 프로젝트를 git 저장소에 push를 합니다. 이렇게 push가 되었습니다. 2. webhook을 통해 젠킨스가 빌드되기를 바랍니다. 해당 저장소의 Settings 를 눌러줍니다. Webhooks 를 눌러줍니다. 저는 이미 만들어놨기에 하나가 만들어져 있습니다. 여기서 Add webhook을 눌러줍니다. URL은 젠킨스의 접속 주소입니다. 저는 ec2를 사용하기 때문에 ec2의 주소 + /github-webhoo..
AWS에서 EBS는 30GiB까지 프리티어 지원합니다. 사용하는 인스턴스를 클릭합니다. 스토리지를 눌러보면 루트 디바이스 이름이 있습니다. EBS에 볼륨을 눌러줍니다. 볼륨을 생성해줍니다. 생성한 볼륨을 클릭하고 작업을 눌러주면 연결을 눌러줍니다. 인스턴스를 클릭해서 적용할 인스턴스를 눌러주고, 디바이스를 아까 인스턴스의 루트 디바이스와 같이 해준 후 연결을 눌러줍니다. df -h 해당 인스턴스를 연결하여 df -h 명령어를 실행하면 루트 디렉토리 용량이 늘어난 것을 확인 할 수 있습니다. 저는 20G로 하였습니다.
스프링 부트 프로젝트에 vue.config.js 로 npm build 하여 /resources/static/ 경로에 index.html로 만들었을 경우 import { createRouter, createWebHistory } from 'vue-router' import Home from '../views/Home.vue' import Login from "@/components/Login"; const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/login', name: 'Login', component: Login } ] const router = createRouter({ history: createWebHistory(pro..
1. xml를 사용하지 않고 mybatis-spring-boot-starter를 사용하여 연동해보겠습니다. https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start mybatis/spring-boot-starter MyBatis integration with Spring Boot. Contribute to mybatis/spring-boot-starter development by creating an account on GitHub. github.com 빠른 시작 방법을 알 수 있습니다. implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' runtimeOnly 'm..