728x90 반응형 스프링부트24 스프링 부트 애플리케이션의 성능 최적화: 캐싱, 프로파일링 등 다양한 방법 스프링 부트 애플리케이션의 성능 최적화: 캐싱, 프로파일링 등 다양한 방법안녕하세요! 오늘은 스프링 부트 애플리케이션의 성능 최적화 방법에 대해 알아보겠습니다. 애플리케이션의 성능을 높이는 것은 사용자 경험을 향상시키고, 시스템 자원의 효율적인 사용을 위해 필수적입니다. 이번 포스팅에서는 캐싱, 프로파일링, 데이터베이스 최적화 등 다양한 성능 최적화 기법을 소개하여, 스프링 부트 애플리케이션의 성능을 극대화하는 방법을 알아보겠습니다.1. 캐싱(Caching)1.1. 캐싱의 중요성캐싱은 반복적인 데이터 조회나 연산 결과를 메모리에 저장해, 이후 동일한 요청이 들어올 때 빠르게 응답할 수 있도록 하는 기법입니다. 캐싱을 적절히 활용하면 데이터베이스 요청 수를 줄이고, 애플리케이션의 응답 속도를 크게 향상시킬.. 2024. 8. 26. 스프링 부트의 10가지 필수 기능: 강력하고 확장 가능한 애플리케이션 구축 스프링 부트의 10가지 필수 기능: 강력하고 확장 가능한 애플리케이션 구축안녕하세요! 스프링 부트(Spring Boot)는 자바(Java) 기반의 애플리케이션을 신속하게 개발하고 배포할 수 있는 프레임워크로, 최근 많은 개발자들 사이에서 인기를 끌고 있습니다. 스프링 부트는 강력한 기능과 간편한 설정을 통해 복잡한 애플리케이션을 쉽게 구축할 수 있도록 돕습니다. 오늘은 스프링 부트의 10가지 필수 기능을 소개하고, 이를 활용해 확장 가능하고 강력한 애플리케이션을 구축하는 방법을 알아보겠습니다.1. 자동 설정 (Auto Configuration)개요스프링 부트의 자동 설정 기능은 개발자가 수동으로 설정해야 하는 복잡한 작업을 대신해 줍니다. 애플리케이션의 클래스패스, 설정 파일, 환경 등을 분석하여 자동으.. 2024. 8. 26. Spring AOP(Aspect-Oriented Programming)를 예제를 통해 알아보자 안녕하세요 오늘은 Spring AOP에 대해 알아보겠습니다. **Aspect-Oriented Programming (AOP)**는 소프트웨어 개발에서 관심사 분리(Separation of Concerns)를 달성하기 위한 프로그래밍 패러다임입니다. Spring AOP는 Spring Framework에서 AOP를 구현한 모듈로, 횡단 관심사(cross-cutting concerns)를 애플리케이션 로직과 분리하여 모듈화할 수 있게 해줍니다. 1. AOP의 주요 개념 AOP에서는 비즈니스 로직과 관련된 코드 외에보안, 로깅, 트랜잭션 관리, 예외 처리 등과 같은 공통적인 기능(횡단 관심사)을별도의 모듈로 분리할 수 있습니다. AOP의 주요 개념은 다음과 같습니다: 1.1 Aspect (애스펙트)정의: 애스펙.. 2024. 8. 10. Java 및 Spring의 최신 탐색 : Java 17 및 Spring 3 가이드 안녕하세요 오늘은 자바 17버전과 스프링 3버전을 사용하는것이 맞는가? 에 대해 알아보는 시간을 가져보겠습니다. 1. 자바 17버전 2021년 9월에 출시된 Java 17은 LTS(장기 지원) 버전으로, 다양한 개선 사항과 새로운 기능을 제공합니다. * 주목할 만한 개선사항 봉인된 클래스 및 인터페이스: 이 기능을 사용하면 개발자는 특정 클래스 또는 인터페이스를 구현하거나 확장할 수 있는 클래스를 제한하여 코드 보안 및 유지 관리성을 향상시킬 수 있습니다. Switch용 패턴 일치: 이 기능은 개발자가 스위치 문에서 패턴 일치를 사용할 수 있게 하여 상용구 코드를 줄이고 코드를 더 읽기 쉽게 만들어 코드를 단순화합니다. 외부 함수 및 메모리 API: 이 기능은 기본 코드 및 메모리와 상호 작용하기 위한 .. 2024. 2. 17. 액세스 및 리프레쉬 토큰을 사용한 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. Spring에서 카프카(Kafka)를 사용하여 데이터를 받아보자 안녕하세요 오늘은 카프카(Kafka)를 사용하여 데이터를 교환하는 작업을 해보겠습니다. 카프카(Kafka)는 분산 스트리밍 플랫폼으로, 대용량의 실시간 데이터 스트림을 처리하기 위해 사용됩니다. 1. 의존성 추가 먼저, 프로젝트의 의존성 관리 파일(예: pom.xml 또는 build.gradle)에 Kafka 관련 의존성을 추가해야 합니다. 메이븐: org.springframework.kafka spring-kafka 그래들: implementation 'org.springframework.kafka:spring-kafka' 2. Kafka 연결 설정 Spring Boot를 사용하는 경우, application.properties 또는 application.yml 파일에 Kafka 연결 설정을 추가합니다.. 2023. 10. 14. 이전 1 2 3 다음 728x90 반응형