SpringBoot, 시작 시 Error SpringBoot 생성시 SpringBoot 생성 시 생성은 제대로 했지만 실행이 되지 않는 경우가 있다. Could not resolve all files for configuration compileClasspath 해당 Error가 그 주인공이다. SpringBoot를 제대로 실행하지 못해서 발생되는 ERROR이다. 해당 ERROR에 대해서는 조치는 간단하다. SpringBoot Project 사용 시,3.0 버전 이상 - Java Version 17 이상. (11 이하는 지원하지 않는다.)2.X.X 버전 - Java Version 11 지원 SpringBoot 생성 시, 이 점 주의하여 생성하기를 바란다.
JPA, 시간 Default 적용하기 시간 설정하는 방법 SpringBoot 시작할 때, @EnableJpaAuditing을 설정한다. @Entity에도 설정을 해야 한다. @EntityListeners(AuditingEntityListener.class)를 적용한다. @Column에는 화면과 같이 설정을 한다. @CreatedDate와 @LastModifiedDate는 Insert일 경우 등록된다. @LastModifiedDate는 해당 Entity일 경우 실행된다. 해당 JPA를 Insert 할 경우, 다음과 같이 등록된 것을 확인할 수 있다.
JPA, Not Null 처리하는 방법 - Default 적용 JPA ColumnDefault DB에서 NotNull의 처리는 까다롭다. 해당 칼럼 값 속성이 NotNull일 경우, Null이 값일 때, Insert가 되지 않기 때문이다. 그렇기에 중요한 값일수록 null은 매우 치명적이고, JPA가 Table을 관리하는 만큼 JPA에서 Not Null 설정 시 어떻게 할 수 있는지를 알아봐야 했다. 그러나 이는 약간 일반적인 상식과 거리가 멀었다. @ColumnDefault는 해당 필드가 null일 경우, 적용될 Default 값을 설정한다. @ColumnDefault는 해당 필드가 설정될 경우, Class 위에 @DynamicInsert를 적용해야 한다. Insert할 때 null이 발견될 경우 De..
SpringBoot, JSP 자동 업데이트 JSP 영역 SpringBoot에서 jsp를 사용한다면 불편한 점이 발생된다. 보통 html(View) 부분은 새로고침만 해도 자동 업데이트가 돼서 빠른 편집이 가능하다는 장점이 있지만, SpringBoot에서 실행했을 경우에는 새로고침을 눌러도 편집이 되지 않는다. 따라서, SpringBoot 재시작을 하면서 jsp를 편집해야하는 불편함이 존재한다. 그래서 아래와 같이 설정함으로써 jsp 편집을 편하게 할 수 있도록 설정하는 것을 권장한다. Gradle 설정하기 implementation 'org.springframework.boot:spring-boot-devtools'//jsp 자동업데이트 설정 Gradle에서 jsp의 설정을 하기 위해서는 spring-b..
SpringBoot, JSP 연결하기 SpringBoot 설정하기 SpringBoot에서 JSP를 불러오기 위해서는 다음과 같이 파일을 설정해야 한다. webapp 디렉터리 생성, WEB-INF 디렉터리도 생성해야 한다. JSP를 한 번쯤 사용했다면, 'jsp는 WEB-INF 안의 내용을 불러온다.'라고 배운 적이 있을 것이다. 그런 의미로, JSP를 사용하기 위해서는 기본적으로 위와 같이 설정해야 한다. Gradle 설정 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' Gradle 사용할 경우, 두 가지의 설정은 반드시 해야 한다. JSTL은 JSP사용을 좀 더 매끄럽게 하기 위..
SpringBoot, Logback 설정하기 Logback 사용하는 계기 Java를 Test를 한다면 가장 대표적인 명령어, System.out.println() 이 있다. 보통 우리가 개발할 때는 이 언어를 주로 사용하지만, 만약 실 사용서버에서 사용할 경우에는 위의 명령어가 무섭게 느껴질 수 있다. System에서 가져다 쓰는 static의 규칙으로 인해 우리는 항상 console창에 해당 파일이 실행되는 여부를 파악할 수 있었다. 그러나 System에서 가져다 쓰는 만큼 메모리 사용량이 그만큼 높아지고, 그렇기 때문에 남발할 경우 서버의 사양을 높일 수도 있다는 경우가 있기 때문이다. 따라서 System.out.print 대신 Logback를 사용하게 된다. logback 설정하기 해당 Projec..
SpringBoot, JPA 연동하기 JPA 시작하기 JPA는 MyBatis 다음으로 가장 많이 사용하는 언어 중 하나로 손꼽히고 있다. 그런만큼 SpringBoot를 공부하면서 JPA를 시작하게 되었고, 이틀간의 노력으로 JPA를 통해 처음으로 insert 작업이 성공되었다. Gradle 설정하기 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' implem..
SpringBoot, Interceptor 사용하기 Interceptor Interceptor은 BackEnd, Server부분에서 알아두면 좋은 기술이다. 각 회사마다 지켜주는 사람이 있듯이, Server에 접근할 때 권한 여부를 판독하는 기능 중 하나가 Interceptor이다. 대표적으로 사용예시는 로그인 여부, 권한 체크 등이 있다. Controller의 Error를 미리 잡아주며, 유효성 검사에도 도움이 된다. 이 기능의 활용이 login check여부이다. 반드시 사용할 필요는 없지만, 객체지향 프로그램(OOP)의 장점을 아주 잘 활용한 예시라고 생각되며 중복된 코드를 최소화시킬 수 있어서 애용하는 기능 중 하나이다. 사용하기 위해서는 org.springframework.boot sprin..
SpringBoot, API 방식으로 File Upload 하기 파일 업로드 설정 #MultiPart spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB spring.servlet.multipart.location=D:\\const/test SpringBoot를 사용한다면 위와 같은 코드를 활용하면 된다. 필요에 따라서 추가해도 되고, 삭제해도 된다. max-file-size : 전송되는 개별 파일 크기 제한 max-request-size : 서버에 전송되는 파일의 크기 제한 location : 저장위치 기본 설정 값 (경로에 폴더가 없을 경우 폴더가 새로 생성된다) 파일 업로드하기 @PostM..
SpringBoot, API 활용하기 API 란? Application Programming Interface의 약자로 응용프로그램에서 사용할 수 있도록 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 Back-End에서 다루며, Server와 DB의 연결을 수행하기 위해 존재한다. 또한 사용자들에게 공개되는 WEB 하고 다르게, API는 WEB에서 별도의 프로젝트로 구성되어 있어서 보안성이 높은편에 속한다. 그리고 요즘 트랜드인 비동기방식을 활용하기 위해서도 WEB에서도 API 방식을 활용하기도 한다. API 사용 방법 @GetMapping("/test123") @ResponseBody public void Test_Service() { logger.info("가나다1..
SpringBoot, Test JUnit 생성하기 Test 만들기 Test를 하기 위해서는 기존에 작업했던 main이 아닌, 아래의 test를 이용해야 한다. Test는 실행과 상관없이, 해당 메서드가 실행되는 여부를 판단한다. 본 내용에는 문제가 생기지 않으며, 상황에 맞는 테스트를 수행하기 위해 적합한 장소이다. 인텔리제이는 ctrl + shift + T를 눌러서 수행한다. JUnit 생성시 기존 Code에 있는 method를 가져올지 여부를 판단한다. OK를 누르면 똑같이 파일을 가져온다. 아무 것도 없는 빈 깡통이 넘어왔다. 해당 내용은 본 main글에서 필요한 부분을 갖다 붙이면 된다. @Test라는 명칭이 붙었으므로, @Test로만 사용할 수 있게 도와준다. 해당 부분을 클릭하면, 원하는 부분..
SpringBoot, MyBatis 연동하기 준비된 것 PC에 설치된 DB와 개발환경 정도가 필요하다. 개인적으로 MariaDB가 친숙하므로 MariaDB를 사용하도록 했다. org.mariadb.jdbc mariadb-java-client 2.7.4 org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.2 설치 후 Maven을 통해 lib가 설치된 것을 반드시 확인해야 한다. 자동으로 설치되면 좋겠지만, 등록만 하고 설치가 안돼서 되지 않는 경우가 발생하기도 한다. 기본 설정 #MyBatis 설정 mybatis.type-aliases-package=com.union.construction_api.Domain #SQL 문법 있는 위치. mybatis.mapp..