Spring Boot 2.4 profile 구동 방식 Spring Boot 2.4 버전이 릴리즈 되면서 application.properties, application.yml 파일 로드 방식에 변화가 있었다. 설정 파일을 단일 파일로 사용할 경우 해당되지 않겠지만, 각 프로필별 속성이 필요할 경우 변화에 대한 인식이 필요하다. 우리는 시간이 없기에.. 관련 Spring blog 내용을 요약해보았다. . . 우선 크게 관심 갖어야 할 부분은 아래 항목인 것 같다. \1. spring.profiles -> spring.config.activate.on-profile \2. spring.profiles.include -> spring.profiles.group \3. spring.config.activate...
SpringBoot & Mybatis & MS-SQL 오랜만에 Spring Mybatis 설정을 할 일이 생겼는데, 기억이 가물가물해서.. 정리를 해보았다. 하지만, 가급적 메서드 기반으로 쿼리를 생성해주는 Querydsl 을 사용하는 것으로.. Dependency 먼저 Mybatis 와 mssql-jdbc 관련 종속성을 추가해 주자. mssql-jdbc 버전은 java 버전과 mybatis-spring-boot 버전은 spring-boot 버전과 맞춰주자. 아무 버전을 선택했다가.. 종속성 문제로 복잡해 지니 잘 확인해 보자! 😢 pom.xml com.microsoft.sqlserver mssql-jdbc 9.4.1.jre8 org.mybatis.spring.boot mybatis-spring-boot..
Spring Boot API TDD Start 현재 회사에서는 테스트 코드 문화가 없다 보니 간접적인 경험을 많이 해보고자 관련 영상들을 많이 찾아보고 있다. 최근 YOUTHCON'21 을 보고 손주원님이 발표하신 Spring Boot TDD 발표가 너무 인상 깊었고 많은 도움이 되어 정말 간략하게 내용을 정리해 보았다. 미래의 나 혹은 또 다른 누군가가 이 글을 보고 도움이 되길.. 인수 테스트 인수 테스트 (Acceptance Test) 사용자의 시나리오(요구사항)를 기반으로 수행하는 테스트 소프트웨어가 사용자 요구사항을 충족하는지에 대한 테스트가 진행 인수 조건 (Acceptance Creteria) 사용자의 요구사항 @SpringBootTest 통합 테스트를 위한 @annotation 여러 모듈들..
The Scheduled Annotation in Spring @Scheduler를 사용해서 일정한 시간 간격으로, 혹은 특정 일정에 코드가 실행되도록 해보자. Spring Scheduler Dependency Spring Boot starter 에 기본적으로 의존 org.springframework.scheduling Enable Scheduling Project Application Class에 @EnableScheduling 추가 @EnableScheduling // 추가 @SpringBootApplication public class SchedulerApplication { public static void main(String[] args) { SpringApplication.run(Schedu..
Spring MongoTemplate & Pagination 기존 SQL Server / MySQL이 아닌 MongoDB를 활용하여 게시판을 만들게 되었다. 관계형 Database Model과 다른 Document 지향 Database Model로 쿼리도 생소하고.. Spring에서의 사용도 유사하면서 다르다보니 정리해두면 언젠가 쓸모가 있을 듯 하다. 기본적인 내용은 지난번에 작성한 QueryDSL과 Pagination을 활용하여 리스트 검색 기능과 유사하다. 다만, 쿼리 생성 부분이 약간(?) 많이 달라서 정리를 한 번 해보자! MongoDB Dependency 관련 설명은 생략하고, 쿼리 생성 핵심 부분만 훑어보자. Repository import org.springframework.data.mon..
Infinite Scrolling & Pagination Infinite Scrolling 구현에 참고할 수 있는 정말 좋은 자료가 있다. jQuery Infinite Scrolling Demos 속도 개선을 위해 VanillaJs로 구현된 Demo를 활용하여 구현해보자. Demo scrollingTest.html 아래 코드를 적용해보면 바로 동작을 확인해볼 수 있다. Infinite Scroll + Pagination Experiment TEST Apply Demo 코드를 활용해서 적용해보자 ! View infiniteScrolling.html Infinite Scroll + Pagination Experiment TEST Controller GalleryApiController.java @Requir..
Spring Error Handling Custom Error Pages Documentation Spring Boot 는 Error Handling 과정에서 먼저 Custom Error Page 를 찾고, 없을 경우 White label Error Page를 보여준다. Spring Document를 참고하면 Custom Error Pages 를 쉽게 적용할 수 있다. Add Error Pages 특정 상태 코드에 대한 사용자 정의 HTML 오류 페이지를 표시하려면 /error 디렉터리에 파일을 추가하자. 오류 페이지는 정적(static) HTML거나 템플릿(templates)을 사용하여 작성할 수 있다. 파일 이름은 정확한 상태 코드 또는 영상 시리즈 마스크 static HTML file map 404..
Using CKEditor CKEditor 적용 및 이미지 업로드 Spring Boot Thymeleaf CKEditor Official Homepage Download JS File CKEditor4 Download CKEditor4 Custome Download 개인 선호에 맞게 plugins, skin, 언어 추가 가능 Add JS File zip 파일 압축 해제 후 resource/static/js 폴더 내로 이동 Add CKEditor Skin skin을 추가할 경우 CKEditor 4 Skins에서 마음에 드는 skin을 다운로드 후 resource/static/js/ckeditor/skins 폴더 내에 추가해주자. Set CKEditor script import set CKEDITOR id에..