728x90 반응형 스프링부트16 스프링 부트 애플리케이션의 성능 최적화: 캐싱, 프로파일링 등 다양한 방법 스프링 부트 애플리케이션의 성능 최적화: 캐싱, 프로파일링 등 다양한 방법안녕하세요! 오늘은 스프링 부트 애플리케이션의 성능 최적화 방법에 대해 알아보겠습니다. 애플리케이션의 성능을 높이는 것은 사용자 경험을 향상시키고, 시스템 자원의 효율적인 사용을 위해 필수적입니다. 이번 포스팅에서는 캐싱, 프로파일링, 데이터베이스 최적화 등 다양한 성능 최적화 기법을 소개하여, 스프링 부트 애플리케이션의 성능을 극대화하는 방법을 알아보겠습니다.1. 캐싱(Caching)1.1. 캐싱의 중요성캐싱은 반복적인 데이터 조회나 연산 결과를 메모리에 저장해, 이후 동일한 요청이 들어올 때 빠르게 응답할 수 있도록 하는 기법입니다. 캐싱을 적절히 활용하면 데이터베이스 요청 수를 줄이고, 애플리케이션의 응답 속도를 크게 향상시킬.. 2024. 8. 26. 스프링 부트의 10가지 필수 기능: 강력하고 확장 가능한 애플리케이션 구축 스프링 부트의 10가지 필수 기능: 강력하고 확장 가능한 애플리케이션 구축안녕하세요! 스프링 부트(Spring Boot)는 자바(Java) 기반의 애플리케이션을 신속하게 개발하고 배포할 수 있는 프레임워크로, 최근 많은 개발자들 사이에서 인기를 끌고 있습니다. 스프링 부트는 강력한 기능과 간편한 설정을 통해 복잡한 애플리케이션을 쉽게 구축할 수 있도록 돕습니다. 오늘은 스프링 부트의 10가지 필수 기능을 소개하고, 이를 활용해 확장 가능하고 강력한 애플리케이션을 구축하는 방법을 알아보겠습니다.1. 자동 설정 (Auto Configuration)개요스프링 부트의 자동 설정 기능은 개발자가 수동으로 설정해야 하는 복잡한 작업을 대신해 줍니다. 애플리케이션의 클래스패스, 설정 파일, 환경 등을 분석하여 자동으.. 2024. 8. 26. 액세스 및 리프레쉬 토큰을 사용한 JWT 전략 구현 안녕하세요 오늘은 jwt 토큰을 사용하여 보안 전략을 구현 해보겠습니다. 1. jwt 란? json web token의 줄임말로 json 개체로 인코딩된 두개체간의 인증 메시지 코드로써 암호화되어 디지털 서명이나 무결성을 보호 합니다. jwt 토큰을 사용한 웹 어플리케이션 보안 인증은 기존 세션을 이용한 보안 인증보다 상태를 비저장하고 정보 저장의 간편성이라는 장점이 있습니다. 2. 액세스 토큰 웹 어플리케이션 기능의 인증을 위해 액세스토큰을 사용합니다. 해당 토큰은 10분이라는 짧은 만료시간을 가집니다. 3. 리프레쉬 토큰 리프레쉬 토큰은 액세스 토큰을 얻기 위해서만 사용됩니다. 해당 토큰은 1일이라는 긴 만료시간을 가집니다. 4. 구현 userService(login) -> jwtProvider(액세.. 2024. 2. 17. webFlux 사용기 안녕하세요 오늘은 웹플럭스에서 사용할 수 있는 기능들을 리뷰해 보겠습니다. https://rhgustmfrh.tistory.com/90 Spring WebFlux 시작하기 - 리액티브 웹 애플리케이션 개발과 R2DBC 소개 안녕하세요 오늘은 Spring WebFlux에 대해 알아보겠습니다. 지금까지 Spring MVC 어플리케이션을 많이 사용해 왔는데 WebFlux는 이와 대비되는 리액티브 웹 어플리케이션으로써 비동기 통식 방식을 사용 rhgustmfrh.tistory.com 웹플럭스에 대한 간단한 소개를 참고하시려면 해당 글에서 확인 하실 수 있습니다. 1. .doFinally() 와 .then() 의 차이 doFinally는 리액티브 스트림이 완료되거나, 에러가 발생했을 때 호출되는 콜백 메서드입니다.. 2023. 12. 27. 스프링 부트에서 Slack으로 실시간 모니터링하기 (2) 안녕하세요 첫번째 글입니다. https://rhgustmfrh.tistory.com/154 스프링 부트에서 Slack으로 실시간 모니터링하기 (1) 안녕하세요 오늘은 스프링부트에서 Slack으로 실시간 모니터링을 할 수 있도록 구현해보겠습니다. slack은 개발자 협업 툴로써 아직 많이 사용해 보진 않았습니다만... 일단 많은 기능들 중 강력한 rhgustmfrh.tistory.com 오늘은 스프링 부트에서 Slack으로 실시간 모니터링하기 두번째 글을 작성해보겠습니다. 먼저 util 폴더에 restTemplate를 사용한 SlackNotifier 입니다. 메시지를 보내기 위한 방법으로 restTemplate을 사용한것으로 webClient를 사용하셔도 됩니다. @Component public class.. 2023. 11. 29. 스프링 부트에서 Slack으로 실시간 모니터링하기 (1) 안녕하세요 오늘은 스프링부트에서 Slack으로 실시간 모니터링을 할 수 있도록 구현해보겠습니다. slack은 개발자 협업 툴로써 아직 많이 사용해 보진 않았습니다만... 일단 많은 기능들 중 강력한 기능의 하나인 알림 기능을 사용할 것입니다. slack에 가입 후 채널 추가를 통해 저의 프로젝트를 채널로 추가합니다. 저의 프로젝트 이름은 pacificocean이라는 쇼핑몰인데 위에서 # pacificocean ∨ 를 클릭하면 통합 탭에 앱 추가가 있습니다. 여기서 incoming-webhook 이라는 앱을 추가해줍니다. 해당 앱을 추가하면 채널에 대한 웹훅 url을 받게됩니다. https://hooks.slack.com/services/[주소] 위의 형식으로 받게 되는데요 여기에 test로 웹훅 메시지를.. 2023. 11. 29. Swagger로 API 문서 자동화: 실습 후기와 튜토리얼 안녕하세요 오늘은 swagger를 사용해서 api 문서를 자동화하는 것을 실습을 통해 알아보겠습니다. 1. 제 쇼핑몰 개인프로젝트에 적용시키려 합니다. 먼저 제 스프링 부트 버전과 자바 버전입니다. 버전을 보여드리는 이유는 스프링부트 2.6 이상부터 적용해야하는 것이 있기 때문입니다. 2. 제가 사용한 의존성입니다. 3. SwaggerConfig 작성 @EnableOpenApi 는 버전에 따라 변할 수 있습니다. 문서 타입도 버전에 따라 가장 적당한것을 써주시면 됩니다. 베이스패키지에는 api를 문서화할 컨트롤러가 들어가 주면 됩니다. 경로는 /api.* api로 시작하는 모든 api들입니다. 4. 컨트롤러에 api 설명 추가 @Slf4j @RestController @RequestMapping("/ap.. 2023. 11. 28. Java 스프링부트를 이용한 RESTful API 작성하기: JPA와 데이터베이스를 사용한 api 기본 예제 안녕하세요 오늘은 스프링부트를 이용해서 RESTful API 작성 해보겠습니다. 이 글을 통해 기본적인 데이터베이스 연결 및 JPA 사용 api 구현등 가장 중요한 부분들을 살펴 보겠습니다. 바로 시작하겠습니다. 1. Spring Boot 프로젝트 설정: Spring Initializer(start.spring.io)를 사용하여 새 프로젝트를 만들고 https://start.spring.io/ "Spring Web" 및 "Spring Data JPA", "postgresql"와 같은 필요한 종속 항목을 선택합니다. 저는 db를 postgres로 사용하였지만 자유롭게 쓰고 싶은 db를 사용하시면 됩니다. 아 참고로 db 세팅이 궁금하시다면 다음 링크에서 작성해놓았습니다. https://rhgustmfrh... 2023. 9. 27. Spring WebFlux 알아보기 - Mono 예제 안녕하세요 오늘은 Spring WebFlux에서 Mono의 쓰임새를 좀더 알아보는 시간입니다. 전에 WebFlux를 시작하는 글을 작성했는데 배경을 이해하시는데 도움이 될것입니다. https://rhgustmfrh.tistory.com/90 Spring WebFlux 시작하기 - 리액티브 웹 애플리케이션 개발과 R2DBC 소개 안녕하세요 오늘은 Spring WebFlux에 대해 알아보겠습니다. 지금까지 Spring MVC 어플리케이션을 많이 사용해 왔는데 WebFlux는 이와 대비되는 리액티브 웹 어플리케이션으로써 비동기 통식 방식을 사용 rhgustmfrh.tistory.com Mono를 사용한 코드 예제를 하나 작성하고 무엇이 사용되고 어떤 이유로 작성되었는지 알아보겠습니다. Mono getDataF.. 2023. 9. 1. 친환경 쇼핑몰 프로젝트 구축하기: 백엔드 상품 관리 기능 구현 - 엔티티, 리파지토리, 서비스와 이미지 저장 방식 적용 (4) 이번에는 백엔드 상품 등록 및 변경 기능을 구현해보겠습니다. 먼저 상품 엔티티를 등록합니다. import javax.persistence.* @Entity @Table(name = "products") data class Product( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, val name: String, val description: String, val price: Float, val imageUrl: String? = null ) 리파지토리 구현 import com.hsproject.envmarket.products.Product import org.springframework.data.jpa.re.. 2023. 6. 26. 이전 1 2 다음 728x90 반응형