파란하늘의 지식창고
article thumbnail
spring-asciidoctor-backends 사용해 보기
Study/Java 2023. 5. 6. 11:54

spring-asciidoctor-backends 소개 spring으로 개발하면 spring documentation을 자주 보게 된다. https://docs.spring.io/spring-framework/docs/current/reference/html/ 이 문서는 asciidoctor를 사용하여 만들어졌다. java maven에서는 asciidoctor-maven-plugin을 사용하여 문서를 생성한다. https://asciidoctor.org/ spring-asciidoctor-backends는 asciidoctor-maven-plugin dependency에 추가하는 라이브러리로 spring documentation 생성 시 필요한 몇 가지 기능과 문서 스타일을 제공한다. 이전에 spring..

article thumbnail
springdoc-openapi swagger @ExampleObject annotation 사용해 보기
Study/Java 2023. 4. 13. 04:52

swagger annotation을 사용하여 문서화 작업을 하면 너무 많은 양의 swagger annotation이 오히려 코드의 가독성을 많이 떨어트리게 되어 이에 대해 좀 더 정리하여 사용해보려고 한다. swagger annotation에 대한 자세한 설명은 아래 github wiki에 있다. https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations 설정하기 spring boot 프로젝트에서 springdoc-openapi의 사용은 다음과 같이 의존성을 추가하면 된다. webmvc의 경우 아래 dependency를 추가하고 webflux인 경우 springdoc-openapi-starter-webflux-ui를 추가하면 된다..

Spring Data의 Pageable parameter로 사용하기
Study/Java 2023. 3. 1. 01:16

Spring Data의 Pageable을 사용한 경우 이 pageable 객체를 parameter로 받아 처리하고 싶은 경우가 있다. 예를 들어 게시글 목록을 조회하는 경우 다음과 같은 controller를 사용한다고 하면 @GetMapping("/findByBoardAlias") public Page findByBoardAlias(@RequestParam String boardAlias, Pageable pageable) { return boardArticleService.findByAlias(boardAlias, pageable); } 위와 같이 getmapping에서 Pageable을 처리하게 된다. 위의 호출을 예를 들어 단순히 boardAlias로만 조회를 하는 경우 다음과 같이 호출한다. /f..

Spring Boot 프로젝트 logback accesslog 설정하기 (Tomcat Servlet 기준)
Study/Java 2023. 2. 17. 05:18

Spring Boot Logback 사용 기본 설정 Spring Boot를 사용한 application에서 로그를 사용하려면 다음 dependency를 추가한다. (현재는 logback이 기본 참조되어 있는데 과거엔 log4j -> slf4j가 기본 설정이었다.) org.springframework.boot spring-boot-starter-logging Spring Boot가 제공하는 logback 기본 설정 위치는 spring boot의 base.xml 파일이며 다음과 같다. https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot/src/main/resources/org/springframewor..

article thumbnail
Spring Session 사용해 보기
Study/Java 2023. 2. 3. 20:31

소개 https://docs.spring.io/spring-session/reference/index.html Spring Security를 사용하여 로그인을 하면 기본 설정이 세션 정보를 해당 application의 ConcurrentMap에 들고 있게 된다. 단일 서버가 아닌 여러 대의 서버로 운영하고 있다면 세션 정보를 여러 서버가 같이 공유할 수 있어야 한다. Spring Session은 사용자의 session 정보를 공유하기 위한 API 및 구현체를 제공한다. Spring Session은 Redis, JDBC, Hazelcast, MongoDB에 대한 모듈을 제공한다. (Apache Geode는 문서에 따로 나와 있는데 왜 에 대한 지원은 3.0.0에 보이지 않았다.) 이 글을 작성하는 당시(2..

article thumbnail
Spring Boot Thymeleaf 사용해 보기
Study/Java 2023. 2. 1. 20:22

thymeleaf도 하도 오래간만에 보니 새로 배우는 느낌이어서 정리하면서 써보려고 한다. FE, BE가 완전히 분리되지 않는다는 게 단점이지만 반대로 보면 Thymeleaf가 BE와 연동이 매우 쉽다는 것이 장점이기도 하다. Spring Boot에서 Thymeleaf 사용하기 기본 사용 Spring Boot에서 Thymeleaf를 사용하려면 다음 dependency를 추가하면 된다. org.springframework.boot spring-boot-starter-thymeleaf 이 dependency를 추가하면 Spring Boot AutoConfigure는 Thymeleaf를 사용할 수 있는 기본적인 설정을 제공해 준다. 현재 spring-boot-starter-thymeleaf는 thymeleaf..

article thumbnail
Spring Boot Admin 사용해 보기
Study/Java 2023. 1. 30. 19:23

소개 Spring Boot Actuator까지 설정하고 Actuator의 내용을 /actuator/* 주소를 호출하여 확인하는 것까지 진행하였었다. 각각의 application을 일일이 조회하여 확인하는 것은 가장 단순한 방법이고 여러 application의 상태를 한 곳에서 모니터링하는 것이 좋다. metric 정보를 수집하여 관리하는 방법은 다양하다. 유료로 제공하는 경우도 있고 오픈 소스로 사용하기 좋은 것도 많다. Spring Boot Admin는 오픈소스로 로그를 따로 저장하지 않고 단순하게 조회할 때마다 현재 상태를 확인할 수 있는 UI를 제공해 준다. Spring이 제공하는 공식 오픈소스는 아니고 codecentric에서 제공하는 오픈 소스이다. https://github.com/codece..

Spring Boot Actuator 사용해 보기
Study/Java 2023. 1. 29. 15:40

소개 Spring Boot Actuator는 application을 모니터링하고 관리하는데 도움이 되는 여러 추가 기능을 제공한다. Http endpoint나 JMX를 통해 application을 관리하고 모니터링할 수 있다. auditing, health 및 metric 수집을 application에 자동으로 적용한다. Spring Boot Actuator에 대한 안내는 document의 Production-ready Features 섹션으로 안내되고 있다. https://docs.spring.io/spring-boot/docs/current/reference/html/index.html https://docs.spring.io/spring-boot/docs/current/reference/html/a..