728x90 반응형 개발29 Micrometor & Metrics Micrometer운영 중인 서비스에서는 다음과 같은 다양한 시스템 지표(metrics) 를 수집하고 모니터링하는 것이 매우 중요합니다.CPU 사용률메모리 사용량HTTP 요청 수 및 응답 시간DB 커넥션 수사용자 요청 트래픽 등이런 지표들을 잘 관리하면,문제가 발생하기 전에 조기 대응할 수 있고문제가 발생한 후에는 빠르게 원인 파악 및 복구가 가능합니다.실제 운영 환경에서는 Prometheus, Datadog, New Relic, Graphite 등 다양한 모니터링 툴이 사용됩니다.하지만 각 모니터링 시스템은 지표를 수집하는 방식과 포맷이 서로 다릅니다.Micrometer는 이러한 문제를 해결해주는 지표 수집 추상화 라이브러리입니다.쉽게 말해, "모니터링 툴과 애플리케이션 사이의 번역기" 역할을 합니다... 2025. 6. 5. Spring Boot Actuator actuator애플리케이션의 운영 상태를 모니터링하고 관리할 수 있도록 다양한 내부 지표(endpoint) 를 자동으로 제공해주는 Spring Boot 서브 모듈이다.서비스에 문제가 없는지 모니터링하고 지표들을 심어서 감시하여 장애에 대응할 수 있다.쉽게말하면 Spring 애플리케이션의 상태를 실시간으로 보여주는 계기판이다.build.gradle 설정implementation 'org.springframework.boot:spring-boot-starter-actuator'해당 디펜던시를 추가 후 실행한뒤 http://localhost:{본인포트}/actuator 로 접속하여 확인할 수 있다.application.yml 설정여러 기능들을 웹 환경에서 노출하기 위해서는 application.yml(.pro.. 2025. 6. 5. @Transactional 내부에서 어떻게 동작할까? Spring에서 @Transactional은 트랜잭션을 시작하고, 성공하면 커밋하고, 실패하면 롤백하는 역할을 합니다.내부적으로 어떻게 작동하는지 알아보자.Proxy비유: 트랜잭션은 '대리운전'이다내가 평소처럼 운전하려고 시동을 걸었더니대리운전 기사가 나 대신 운전대를 잡는다원래 가려던 목적지까지 대신 안전하게 운전해준다도착하면 비용 정산까지 알아서 처리한다→ 이 대리운전 기사가 바로 Spring이 생성한 Proxy 객체이다.내부 동작 구조트랜잭션 흐름 구조@Transactional 이 붙은 클래스나 메서드 발견Spring 은 그 객체를 직접 생성하지 않고, Proxy 객체를 만들어 감싼다.서비스 메서드 호출 시, 실제 객체가 아니라 Proxy가 먼저 호출을 가로챔Proxy 내부에서 다음 로직을 수행한다.. 2025. 6. 4. [Java] Java8에서의 날짜/시간 비교 (LocalDateTime) Java8 이전에는 흔히 알고 있는 Date, Calendar를 통해 날짜시간을 비교했었는데 불편한 사항이 많았다. 하지만 Java8 부터는 LocalDateTime, LocalDate, LocalTime, ZonedDateTime을 제공하기 때문에 기존의 불편한 사항이 많이 해소 되었다. 그래서 오늘은 많이 쓰이는 LocalDateTime을 이용한 대표적으로 날짜/시간 비교하는 함수를 정리해두려고 한다. isBefore() 인자보다 과거일 때 true 반환 LocalDateTime oldDate = LocalDateTime.parse("2021-11-10T10:11:15.000"); LocalDateTime newDate = LocalDateTime.parse("2021-12-16T10:11:15.00.. 2021. 11. 16. [Intellij] Type: In word 경고창 지우기(스펠링 체크 제거) for Mac 매번 주황색으로 인텔리제이에서 나타나는 경고 밑줄은 도움 될 때도 많지만 거슬릴 때가 더 많다. 그래서 항상 스펠링체크 제거할 때마다 구글에서 검색헀는데 블로그에 정리하면서 머릿속에 기억해두려고 한다. Mac 기준 스펠링 제거 경로 Intellij IDEA > Preference > Inspections > Proofreading > Typo 이다. 여기에서 Typo 부분을 체크 해제 해주면된다. 구글에서 인텔리제이 스펠링 제거를 검색했을 때 Inspections까지는 똑같은데 Spelling이라는 키워드가 없어서 해맸는데 이번 기회에 잘 알아두도록 하자 2021. 11. 11. [Java] 두 개의 List를 stream을 사용해서 비교하기 List를 비교하는 방법은 여러가지가 있다. 오늘은 java8부터 제공하는 stream을 사용해서 비교하는 방법을 알아보려고 한다. 예제1. List 2개를 각각 비교해 중복 되지 않은 값 찾기 void listTest() { List oldList = Arrays.asList("1", "2", "3", "4"); List newList = Arrays.asList("3", "4", "5", "6"); List resultList1 = oldList.stream() .filter(old -> newList.stream().noneMatch(Predicate.isEqual(old))) .collect(Collectors.toList()); System.out.println(resultList1); // [.. 2021. 10. 28. 이전 1 2 3 4 5 다음 728x90 반응형