spring boot 7

Spring Boot: 스프링 부트 공통 라이브러리 구축하기 (공통 모듈)

소프트웨어 개발 세계에서 DRY(Do not Repeat Yourself) 원칙은 효율적인 코딩의 핵심입니다. 앤디 헌트와 데이브 토마스가 그들의 기념비적인 책 "The Pragmatic Programmer"에서 만들어낸 DRY 원칙은 코드베이스 내의 반복을 줄이는 것의 중요성을 강조합니다. 이 원칙을 준수함으로써 개발자는 중복을 최소화하고 오류 발생 가능성을 줄이며 코드를 더 유지 보수하기 쉽게 만들 수 있습니다. DRY 원칙이 빛을 발하는 일반적인 시나리오는 마이크로서비스 아키텍처의 개발입니다. 마이크로서비스는 여러 서비스가 유사한 기능을 공유하는 경우가 많습니다. 이러한 기능은 유틸리티 함수, 보안 구성, 예외 처리, 공통 비즈니스 로직 등 다양합니다. 이러한 코드를 여러 서비스에 중복시키는 대신,..

Development/Code 2024.07.02

Spring Boot: 사용 가능한 메모리보다 더 많은 데이터 쿼리하기

개발자로서 아직 이런 문제를 겪지 않았다면, 이 글이 도움이 될 수 있을 것 같습니다. 경력 중 어느 시점에서든, 메모리에 맞지 않는 결과를 반환하는 데이터베이스 쿼리를 수행하는 Spring Boot REST 엔드포인트를 만들어야 할 가능성이 큽니다. 이 글에서는 메모리 한계로 인해 전통적인 방식으로 구현할 수 없는 REST 엔드포인트의 예를 살펴보겠습니다.시나리오이 연습에서는 Customer, Order, OrderItem, Product를 포함한 간단한 시나리오를 사용합니다: 우리의 목표는 다음을 쿼리하고 반환하는 보고서를 생성하는 엔드포인트를 만드는 것입니다:백만 개의 Orders500만 개 이상의 OrderItems전통적인 구현다음과 같은 필드가 있는 DTO를 정의해 봅시다:@Datapublic ..

Development/Code 2024.07.01

자바 개발자를 위한: 개발 시간을 단축시킬 6가지 Lombok 기능

자바 개발자는 종종 반복적인 보일러플레이트 코드를 작성하는 데 많은 시간을 소비하게 됩니다.Project Lombok은 이러한 문제를 해결하기 위해 다양한 어노테이션을 제공하여 많은 보일러플레이트 코드를 자동화해 줍니다.많은 개발자가 @Data와 @Getter 같은 Lombok의 인기 있는 어노테이션을 알고 있지만, 덜 알려진 기능들도 생산성을 크게 향상시킬 수 있습니다. 이 글에서는 여섯 가지의 유용한 기능에 대해 설명하겠습니다.1. @Delegate@Delegate를 사용하면 다른 클래스의 메서드를 자신의 클래스에서 직접 쓸 수 있습니다. 예를 들어, A라는 클래스에 sayHello()라는 메서드가 있고, B라는 클래스에서도 이 메서드를 사용하고 싶다면, B 클래스에 A 타입의 필드를 추가하고 @De..

카테고리 없음 2024.06.29

알아두면 좋은 Spring Boot 기능 10가지

Spring Boot는 자바 기반 웹 애플리케이션 및 마이크로서비스를 구축하기 위한 강력한 프레임워크로, 설정보다 관례를 중시하는 접근 방식으로 개발 작업을 간소화하여 널리 인정받고 있습니다. 그러나 잘 알려진 기능 외에도 개발 경험을 크게 향상시킬 수 있는 숨겨진 보석 같은 기능들이 있습니다. 이번 글에서는 잘 알려지지 않은 Spring Boot의 10가지 기능을 깊이 있게 살펴보고, 이들을 프로젝트에 통합하여 개발 워크플로를 어떻게 향상시킬 수 있는지 보여드리겠습니다.1. Custom Banner (사용자 정의 배너)목적: 애플리케이션 시작 경험을 개인화하여 사용자 정의 배너를 만듭니다.이점: 브랜드 정체성을 강화하고, 필수 정보를 표시하거나, 창의성을 더해 시작 프로세스를 더욱 기억에 남고 유익하게..

Development/Code 2024.06.28

Spring Boot의 성능을 향상시키는 10가지 방법

Spring Framework는 자바 생태계에서 가장 인기 있고 성숙한 애플리케이션 개발 프레임워크 중 하나입니다. Spring Boot는 사전 구성된 모듈, 자동 설정, 스타터 종속성을 제공하여 Spring 기반 애플리케이션 개발을 간소화합니다. 이러한 간편함과 인기, 성숙도로 인해 많은 시스템이 Spring Boot로 구현되었으며, 이 중 일부는 최적화되지 않았을 가능성이 큽니다. 이 글에서는 먼저 성능이란 무엇인지 논의한 후, Spring Boot를 빠르고 자원 효율적으로 만드는 10가지 성능 최적화 방법을 다루겠습니다.아래는 목차입니다.성능이란 무엇을 의미하나요?Spring Boot 성능을 향상시키는 방법?최신 버전의 Spring Boot 사용JVM 버전 및 튜닝JDK 21에서 웹 MVC 스택에 ..

Development/Code 2024.06.28

Spring State Machine을 어떻게 활용할 수 있을까요? (사용 방법 및 예제)

상태 기계란 무엇인가?상태 기계(State Machine)는 시스템이 다양한 조건에서 어떻게 동작하는지를 모델링하는 방법입니다. 이를 특정 시점에 유한한 수의 상태 중 하나에 있을 수 있는 기계로 생각할 수 있습니다. 이 기계는 받은 입력에 따라 상태를 변경하며, 각 상태에서는 특정 작업이나 출력을 수행할 수 있습니다.작동 방식의 개요:상태 : 시스템이 있을 수 있는 다양한 조건입니다. 예를 들어, 신호등은 빨간색, 노란색, 녹색의 상태를 가질 수 있습니다.전이 : 시스템이 한 상태에서 다른 상태로 이동하는 규칙입니다. 신호등의 예에서, 빨간 상태의 타이머가 만료되면 노란 상태로 이동하는 전이가 있을 수 있습니다.입력 : 상태 기계를 상태 변경하게 만드는 이벤트입니다. 예를 들어 사용자 동작, 센서 판독..

Development/Code 2024.06.26

Spring AI : Spring Boot와 대형 언어 모델(LLM)의 쉬운 연동 방법

안녕하세요, 저는 자바 백엔드 개발 엔지니어 devloo입니다. 대형 언어 모델(LLM)의 응용에 큰 관심을 가지고 있는 저는, 이번 AI의 봄을 맞아 여러분께 흥미로운 소식을 전하려고 합니다. 바로 Spring AI입니다. 이번 글에서는 Spring AI와 Ollama 로컬 모델을 어떻게 통합할 수 있는지 자세히 소개해 드리겠습니다. AI와 자바의 만남을 통해 새로운 가능성을 탐구해보세요.Spring AI 2024년 2월 29일에 공식적으로 Spring AI가 Spring Initializr에 등록되었습니다. 이는 AI와의 상호작용을 보다 간편하게 하여 자바 작업에 LLM 모델을 통합하는 학습 곡선을 줄여줍니다. 이제 start.spring.io에서 사용 및 구성이 가능합니다.Spring AI는 인공지..