Spring
-
[Spring, Spring Boot] 데이터 캐싱(Caching)Spring 2024. 12. 11. 11:15
Spring Boot에서 데이터 캐싱(Caching)은 데이터베이스나 외부 API에서 자주 조회하는 데이터를 임시 저장소에 저장하여 애플리케이션의 성능을 향상시키는 기술입니다. 캐싱을 통해 불필요한 데이터 조회를 줄이고, 응답 속도를 크게 개선할 수 있습니다. Spring Boot에서 캐싱 구현 방법캐싱 활성화Spring Boot 애플리케이션 클래스에 @EnableCaching 어노테이션을 추가하여 캐싱 기능을 활성화합니다.@SpringBootApplication@EnableCaching // ---> 캐싱 사용public class CachingApplication { public static void main(String[] args) { SpringApplication.run(C..
-
[Spring Boot] RESTful API 설계 원칙Spring 2024. 12. 2. 09:47
RESTful API는 REST(Representational State Transfer) 아키텍처 스타일을 따르는 API를 말합니다.클라이언트와 서버 간의 통신을 단순하고 확장 가능하게 설계하기 위해 RESTful 원칙을 준수해야 합니다. RESTful API 설계 원칙 자원(Resource) 중심 설계: API는 자원을 명확히 정의하고, URI는 자원의 경로를 나타냅니다. URI는 명사형으로 표현하며, 동사 대신 HTTP 메서드를 사용합니다. 예: GET /users (모든 사용자 조회) POST /users (새 사용자 생성) PUT /us..
-
[Spring, Spring Boot] 비동기 처리 TaskExecutorSpring 2024. 11. 28. 14:39
Spring Boot에서 TaskExecutor를 활용해 비동기 처리의 스레드 풀을 직접 커스터마이징 할 수 있습니다. 기본적으로 Spring은 SimpleAsyncTaskExecutor라는 기본 스레드 풀을 사용하지만, 애플리케이션의 성능을 최적화하거나 특정 요구사항을 충족하기 위해 스레드 풀 설정을 직접 수정하는 경우가 많습니다. 아래는 TaskExecutor를 작성하여 스레드 풀을 커스터마이징하는 방법입니다. TaskExecutor 작성하기Spring Boot에서 TaskExecutor를 설정하려면 ThreadPoolTaskExecutor를 빈으로 등록해야 합니다. 이를 통해 스레드 풀의 동작 방식을 유연하게 제어할 수 있습니다. import org.springframework.context.ann..
-
[Spring, Spring Boot] 비동기 처리 Asynchronous ProcessingSpring 2024. 11. 28. 14:33
비동기 프로그래밍은 멀티스레드 환경에서 비즈니스 로직의 병목을 줄이고, 시스템의 성능을 향상시키기 위해 자주 사용됩니다. Spring Boot는 비동기 처리를 쉽게 지원하기 위해 @Async 어노테이션을 제공합니다. 비동기 처리는 특정 작업을 메인 스레드와 분리하여 별도의 스레드에서 실행하는 방식입니다. 예를 들어, 데이터를 저장하거나 외부 API를 호출하는 시간이 오래 걸리는 경우, 이 작업을 메인 스레드에서 처리하면 애플리케이션의 응답 시간이 길어질 수 있습니다. 비동기 처리를 사용하면 이러한 무거운 작업을 별도 스레드로 처리하여 응답성을 향상시킬 수 있습니다. 1. 설정 추가하기먼저, 비동기 처리를 활성화하기 위해 Spring Boot 애플리케이션 클래스에 @EnableAsync 어노테이션을 추가해..
-
[Spring, Spring Boot] 관점 지향 프로그래밍 AOP (Aspect-Oriented Programming)Spring 2024. 11. 28. 14:17
AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 애플리케이션의 횡단 관심사(Cross-Cutting Concerns)를 모듈화하기 위한 프로그래밍 패러다임입니다. 횡단 관심사란 로깅, 트랜잭션 관리, 보안, 예외 처리 등 여러 모듈에서 반복적으로 사용되는 로직을 의미합니다. AOP는 이러한 공통 기능을 코드의 핵심 비즈니스 로직과 분리하여 코드의 가독성과 유지보수성을 높이기 위해 사용됩니다.스프링 프레임워크는 AOP를 간편하게 사용할 수 있도록 지원하며, 이를 통해 애플리케이션의 코드 중복을 줄이고 핵심 로직에 집중할 수 있습니다. AOP의 주요 개념AOP를 이해하려면 몇 가지 핵심 개념을 이해해야 합니다:Aspect: 횡단 관심사를 모듈화한 것을 Aspect라고 합니..
-
[Spring, Spring Boot] 의존성 주입 (Dependency Injection, DI)Spring 2024. 11. 28. 14:05
의존성 주입 (Dependency Injection, DI) 이란?의존성 주입(Dependency Injection, DI)은 객체지향 프로그래밍에서 객체 간의 의존성을 줄이고, 코드의 유연성과 재사용성을 높이기 위해 사용하는 디자인 패턴입니다. 의존성 주입은 객체가 다른 객체에 의존할 때, 이를 객체 내부에서 직접 생성하는 것이 아니라 외부에서 주입받는 방식을 의미합니다. 이러한 방식은 객체 간 결합도를 낮추고, 테스트 용이성을 높여 유지보수를 쉽게 만듭니다.의존성 주입의 세 가지 방법의존성 주입을 구현하는 방법에는 크게 세 가지가 있습니다: 생성자 주입(Constructor Injection), 세터 주입(Setter Injection), 필드 주입(Field Injection)입니다. 각각의 방법에..
-
[Spring, Spring Boot] JAVA ORM (Object Relational Mapping) 객체 관계 매핑Spring 2024. 11. 26. 15:01
JAVA ORM (Object Relational Mapping) 객체 관계 매핑 객체지향 언어와 데이터베이스 간의 상호작용을 쉽게 하기 위한 기술인 ORM(Object Relational Mapping)에 대해 설명합니다. ORM을 사용하면 SQL 쿼리를 직접 작성하지 않아도 데이터베이스와 통신할 수 있으며, 데이터베이스 테이블을 자바 클래스와 매핑하여 코드의 가독성과 유지보수성을 크게 향상시킵니다.ORM 기본 개념객체와 테이블 간의 매핑데이터베이스의 테이블을 자바 클래스와 1:1로 매핑합니다. 이를 통해 객체지향적인 코드를 유지하면서도 관계형 데이터베이스에 쉽게 접근할 수 있습니다.자동 쿼리 생성ORM은 데이터 조작에 필요한 SQL 쿼리를 자동으로 생성해 줍니다. 복잡한 SQL을 직접 작성할 필요..
-
[Spring Boot] Lombok 롬복 설치 (Eclipse STS)Spring 2022. 5. 26. 10:59
1. 롬복 다운로드https://projectlombok.org/download Download projectlombok.org 2. 롬복 실행롬복 경로 이동 후 실행java -jar lombok.jar 3. IDE 선택 (Specify location -> STS.exe) 후 Install/Update 4. 설치 확인SpringToolSuite4 ini 파일 확인 시, lombok.jar 설치 확인 가능 5. lombok 라이브러리 설정 (MvnRepository 검색) 6. Gradle refresh 후 확인자바 클래스(CheckLombok.java) 생성 후 @Setter 어노테이션 생성해보면 import lombok.Setter; 나오면 적용 완료