본문 바로가기
728x90

Java18

Cursor<T> 개요 최근 회사 프로젝트 PR을 보던 중, Mapper 파일에서 그동안 보지 못했던 리턴 타입을 보았다. 주소록 그룹에서 FAX 번호를 대량으로 조회하는 쿼리의 리턴 타입이 Cursor으로 되어 있었는데, 해당 리턴값을 사용하는 곳을 보니 일반 List처럼 for문을 사용해서 순회하는것을 확인할 수 있었다. 이를 통해 Cursor는 리스트와 비슷하게 순회가 가능하지만 다른 이점이 있을것이라고 생각했고, 그 내용에 대해 정리해 보았다. Cursor? Cursor contract to handle fetching items lazily using an Iterator. Cursors are a perfect fit to handle millions of items queries that would not n.. 2023. 3. 9.
[Java] Spring Boot Actuator 개요 어플리케이션을 개발하는 것도 중요하지만 개발하는것만큼 중요한 것이 어플리케이션을 잘 운영하는 것이다. 서비스를 잘 운영하기 위해서는 여러 요소가 필요하겠지만, 모니터링은 빠질 수 없는 요소이며 이를 위한 도구들이 많이 개발되어 있다. 서비스의 운영에 있어서 모니터링은 필수 요소이지만, 모니터링만을 위해 별도의 엔드포인트를 만들거나 기능을 개발하는데 시간이 많이 든다면 배보다 배꼽이 더 커지는 경우일 수 있다. 스프링 부트에서는 spring-boot-actuator 모듈을 통해 이러한 모니터링 기능을 지원할 뿐만 아니라 서비스를 일부 조작할 수 있게 한다. Actuator 사용해보기 의존성 추가 Spring boot에서 엑추에이터를 사용하려면 spring-boot-starter-actuator모듈에 .. 2023. 2. 14.
[Spring Cloud] HA of Service Discovery Service Discovery의 고가용성 지난 글에서는 MSA에서 각 마이크로 서비스의 위치를 기억하고, 각 서비스가 다른 서비스의 위치를 조회할 수 있게 DB 역할을 해주는 Service Discovery에 대해 정리해 보았다. 이 주제는 나 뿐만 아니라 함께 스터디를 진행하고 있는 팀원도 다룬적이 있었는데, 당시에 했던 여러 질문 중 ‘만약 Service Registry에 장애가 발생한다면 전체 시스템에 영향을 줄 수 있을것 같은데 이에 대한 대비책이 있는지’ 라는 질문이 있던 것으로 기억한다. 각 서비스 간 통신을 통해 거대한 어플리케이션을 이루는 MSA 특성 상, 각 서비스의 위치를 저장하는 Serviece Discovery에 장애가 생긴다면 그 장애가 서비스 전체로 번지게 된다. 따라서 앞서 .. 2023. 2. 7.
[Spring Cloud] Service Discovery 몇 달 전 회사 팀원들끼리 진행하는 스터디에서 서비스 디스커버리에 대한 공유 글을 보고 MSA에 관심이 생겨 인프런을 통해 강의를 수강하고 있다. 앞으로 강의 내용을 파트별로 정리할 예정인데, 오늘은 MSA의 구성 요소 중 Service Discovery에 대한 내용을 정리하고자 한다. MicroService Architecture 서비스 디스커버리를 이해하기 위해서는 흔히 줄여서 MSA라고 불리는 마이크로서비스 아키텍처에 대해 알아야 한다. 본 글은 MSA 자체에 대한 글이 아니기 때문에 MSA를 구성하는데 있어서 Service Discovery가 왜 있어야 하고 어떠한 역할을 하는지 정도만 파악할 수 있도록 정리하려고 한다. MSA와 비교되는 대상으로 우리가 현재 회사에서 어플리케이션을 개발하는 방식.. 2023. 1. 22.