일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Linux
- Pinpoint
- minikube
- 정보처리기사 실기
- AI
- CKA
- kotlin spring
- 기록으로 실력을 쌓자
- kotlin coroutine
- APM
- aws
- 공부
- Kubernetes
- CKA 기출문제
- 티스토리챌린지
- kotlin querydsl
- Java
- 코틀린 코루틴의 정석
- mysql 튜닝
- MySQL
- kotlin
- AWS EKS
- 오블완
- PETERICA
- Elasticsearch
- Spring
- CloudWatch
- 정보처리기사실기 기출문제
- IntelliJ
- 정보처리기사 실기 기출문제
- Today
- Total
목록Programming/Spring (57)
피터의 개발이야기
ㅁ 들어가며ㅇ Spring Boot의 @Cacheable 어노테이션은 애플리케이션의 성능을 향상시키기 위해 자주 사용되는 캐시 기능을 제공된다.ㅇ 이 글에서는 @Cacheable의 사용법과 관련된 다양한 기능을 Kotlin 예제를 통해 살펴보다. ㅁ Spring Cache Abstration이란? 스프링은 캐시 추상화(Cache Abstraction)을 통해 사용자는 캐시 구현에 대해 신경 쓸 필요 없이 퍼블릭 인터페이스를 쉽게 캐싱 기능을 사용할 수 있는 편리한 캐싱 기능을 지원한다. 캐싱이 필요한 비즈니스 로직에서 EhCache, Redis 등 캐싱 인프라에 의존하지 않고 추상화된 퍼블릭 인터페이스로 캐싱을 할 수 있다. 인터페이스화 되면 EhCache로 사용 중에 Redis로 변경이 쉬워진다. ..
ㅁ 관련 글ㅇ [kubernets] skaffold란, Kubernetes 로컬 개발환경Skaffold는 Kubernetes 네이티브 애플리케이션을 위한 지속적인 개발을 용이하게 하는 CLI 도구이다.Skaffold는 소스 코드의 변경 사항을 감지 하고 정책 기반 이미지 태깅 및 최적화되고 빠른 로컬 워크플로 를 통해 애플리케이션을 자동으로 빌드 , 푸시 , 테스트 및 배포 하는 파이프라인을 처리한다.ㅇ [kubernets] Kubernetes 로컬 개발환경 skaffold, Intellij ㄴ skaffold와 Intellij를 연동하여 쿠버네티스 로컬 개발환경 세팅하는 과정을 정리ㅁ 들어가며 예전 Skaffold의 로컬환경을 구성하면서 JIB를 설정해 보았는데, 이번 글에서는 는 Jib에 대해 구체..
ㅁ 들어가며ㅇ 회사에서 외부API의 통신에서 에러가 발생하여 그 원인을 분석하였다.ㅇ 외부 연동된 API는 처리하는데 1.7초, 내부적으로 Connection Timeout 설정이 1.5초로 되어 있었다.ㅇ 이번 글에서는 Connection Timeout 설정 방법과 에러 패턴, 최적의 Timeout 설정, 에러 처리 및 로깅 방법에 대해서 정리해 보았다. ㅁ Connection Timeout 설정 방법Spring RestTemplate에서 connection timeout을 설정하는 방법은 크게 두 가지가 있다. 1. HttpComponentsClientHttpRequestFactory 사용HttpComponentsClientHttpRequestFactory factory = new HttpCompon..
ㅁ 들어가며ㅇ Kotlin과 Spring을 사용하여 Hive 연결을 주기적으로 유지하기 위한 방법을 찾고 있었다.ㅇ 검색해면서 @Scheduled 어노테이션을 이용한 방법을 찾아 그 내용을 정리한 글이다. ㅁ @EnableScheduling 설정@SpringBootApplication@EnableSchedulingclass YourApplicationfun main(args: Array) { runApplication(*args)}ㅇ 기본적으로 애플리케이션의 메인 클래스나 설정 클래스에 @EnableScheduling 어노테이션을 추가한다. ㅁ 연결 유지 서비스 생성@Serviceclass HiveConnectionService( private val jdbcTemplate: JdbcTempl..
ㅁ 들어가며ㅇ 연동된 시스템의 지연 사항을 점검하면서 Spring Boot embeded Tomcat의 경우 메모리가 누적되면서 지연되는 경우믈 발견하였다.ㅇ Spring Boot의 임베디드 Tomcat을 사용할 때 메모리가 누적되는 현상에 대해 몇 가지 주요 원인과 해결 방법을 정리하였다. ㅁ 메모리 누수 (Memory Leak)ㅇ 원인: 애플리케이션 코드에서 적절히 리소스를 해제하지 않거나, 순환 참조 등으로 인해 발생할 수 있다.ㅇ 해결방법: - 힙 덤프를 분석하여 메모리 누수 지점을 찾아야 한다. - 코드 리뷰를 통해 리소스 해제가 제대로 이루어지는지 확인한다. - 순환 참조를 제거해야 한다. ㅁ 부적절한 GC 설정ㅇ 원인: GC 설정이 애플리케이션의 특성에 맞지 않아 메모리 회수가 제대로 이루어..
ㅁ 들어가며 내가 운영하는 서비스에 Request Timeout Exception이 발생하였다. 이 서비스는 전체 서비스의 중간 모듈이기 때문에 전체 서비스의 품질을 위해서는 Timeout의 시간을 2초를 넘길 수 없었다. 이를 해결하기 위해 전체 서비스에 장애로 전파될 수 있는 로직을 비동기로 처리하기로 하였다. Spring Framework에서 제공하는 @Async 어노테이션은 메서드를 비동기적으로 실행할 수 있게 해주는 강력한 기능이다. 이를 통해 애플리케이션의 성능을 향상시키고 리소스를 효율적으로 사용할 수 있다. ㅁ Webflux 비동처 처리 방식에 대한 나의 경험 @PostMapping("/1.0/noti") public Mono Notification( ServerHttpReque..
ㅁ 들어가며 Spring AOP(Aspect-Oriented Programming)는 애플리케이션의 비즈니스 로직과 공통 관심사를 분리하여 코드의 모듈화를 돕는 프로그래밍 패러다임이다. 이를 통해 코드의 중복을 줄이고 유지보수성을 높일 수 있다. ㅁ AOP의 주요 개념Aspectㅇ Aspect는 여러 객체에 공통으로 적용되는 기능을 모듈화한 것이다.ㅇ 이는 어드바이스(Advice)와 포인트컷(PointCut)을 결합하여 애플리케이션에 포함되는 횡단 관심사(Cross-cutting Concerns)를 정의한다. Join Pointㅇ Join Point는 애플리케이션 실행 흐름에서 특정 포인트를 의미하며, AOP가 적용될 수 있는 모든 지점을 나타낸다. ㅇ 스프링 AOP에서는 메서드 실행 지점이 주로 Joi..
ㅁ 들어가며ㅇ [Kotlin] Spring Boot 멀티모듈 프로젝트 구성하기에서 멀티 모듈을 구성하여 재사용 가능한 소스를 모듈화 하였다. ㅇ 모듈화된 공통 소스를 Jar로 배포하는 방법을 [Kotlin] Spring 멀티모듈, JAR 파일로 배포하는 방법에 정리하였다.ㅇ 이 글에서는 모듈로 생성된 jar를 로컬 파일 복사를 통해 다른 프로젝트에서 참조시키는 방법을 정리하였다. ㅁ libs 폴더 생성ㅇ 참조할 프로젝트의 루트 디렉토리에 libs라는 폴더를 생성하고, 참조하고자 하는 JAR 파일을 해당 폴더에 복사한다. ㅁ build.gradle 파일 수정ㅇ build.gradle 파일을 열고, dependencies 블록에 JAR 파일을 추가한다.// 특정파일 적용dependencies { imp..
ㅁ 들어가며ㅇ Spring Boot를 시작하면서 데이터베이스 초기화하는 방법을 검토 중이다.ㅇ 이번 글에서는 Spring Boot는 애플리케이션 실행 시 데이터베이스를 초기화하는 방법을 개론적으로 정리해 보았다.ㅇ 구체적으로 적용이 필요한 시점에 구체적인 적용방법을 정리할 것이다. ㅁ 관련 글ㅇ [Spring] JUnit5 조건부 테스트 실행방법 ㄴ JPA의 ddl-auto 기능과 함께 사용하면 개발환경 별 자동 테스트 환경을 구축할 수 있다. ㅁ JPA를 사용한 초기화ㅇ JPA의 DDL생성 기능을 활용해 애플리케이션 시작 시 데이터베이스 스키마를 생성할 수 있다.ㅇ 다음 두 가지 설정으로 제어한다.// JPA의 DDL 생성 기능을 켜고 끈다.spring.jpa.generate-ddl: true/fal..
ㅁ 들어가며ㅇ Elasticsearch와 연동하는 작업 중에 SSL 인증서 에러가 발생하였다. ㅇ 이를 분석하고 해결하는 과정을 글로 남긴다. ㅁ 에러 내용Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetㅇ SSL 통신을 위해서는 인증서를 교환해야하지만, 인증서를 찾을 수 없다는 에러 메시지이다.ㅇ [Elasticsearch] Elasticsearch + Kibana 설치하기 with Docker에서 curl로..