반응형

스프링 데이터 JPA 사양으로 테이블 조인

1. 개요 이 짧은 사용방법(예제)에서는 쿼리를 생성할 때 테이블을 조인할 수 있는 Spring Data JPA 사양의 고급 기능에 대해 설명합니다. JPA 사양 및 사용법에 대한 간략한 요약으로 시작하겠습니다. 2. JPA 사양 Spring Data JPA는 재사용 가능한 컴포넌트로 동적 쿼리를 생성할 수 있도록 하는 사양 인터페이스를 도입했습니다. 이 문서의 코드 예제에서는 Author 및 Book 클래스를 사용합니다. @Entity public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String firstName; private String lastName; @OneT..

Java 2022.11.02

Spring Boot의 application.properties에서 환경 변수 사용하기

1. 개요 이 예제에서는 Spring Boot의 application.properties 에서 환경 변수를 사용하는 방법을 설명합니다 . 그런 다음 코드에서 이러한 속성을 참조하는 방법을 보여줍니다. 2. application.properties 파일 에서 환경 변수 사용 "C:\Program Files\Java\jdk-11.0.14" 값으로 JAVA_HOME이라는 전역 환경 변수 를 정의해 보겠습니다 . Spring Boot의 application.properties에서 이 변수를 사용하려면 중괄호로 묶어야 합니다. java.home=${JAVA_HOME} 같은 방식으로 System 속성을 사용할 수도 있습니다. 예를 들어 Windows에서 OS 속성은 기본적으로 다음과 같이 정의됩니다. environ..

Java 2022.11.02

Java의 단위 테스트 개인 메서드

1. 개요 이 예제에서는 개인 메서드를 직접 테스트하는 것이 일반적으로 좋은 생각이 아닌 이유를 간략하게 설명합니다. 그런 다음 필요한 경우 Java에서 개인 메서드를 테스트하는 방법을 보여줍니다. 2. 프라이빗 메소드를 테스트하지 말아야 하는 이유 일반적으로 우리가 작성하는 단위 테스트는 공개 메서드 계약만 확인해야 합니다. 비공개 메서드는 공개 메서드의 호출자가 인식하지 못하는 구현 세부 정보입니다. 또한 구현 세부 정보를 변경해도 테스트가 변경되어서는 안 됩니다. 일반적으로 말해서 비공개 방법을 테스트하도록 촉구하면 다음 문제 중 하나가 강조 표시됩니다. 우리의 개인 방법에는 데드 코드가 있습니다. 우리의 private 메소드는 너무 복잡하고 다른 클래스에 속해야 합니다. 우리의 방법은 처음부터 비..

Java 2022.11.02

환경 변수 값을 Dockerfile에 전달하는 방법

1. 개요 환경 변수는 애플리케이션 구성을 외부화하는 편리한 방법입니다. 따라서 Docker 컨테이너를 빌드하는 데에도 유용합니다. 그러나 Dockerfile 에서 전달하고 사용하는 것은 가능한 한 쉽지 않습니다. 이 짧은 사용방법(예제)에서는 환경 변수 값을 Dockerfile에 전달하는 방법을 배웁니다. 먼저 환경 변수를 빌드 프로세스에 전달하는 것이 유용할 수 있는 사용 사례를 보여줍니다 . 그런 다음 이를 수행하는 데 사용하는 ARG 명령을 설명합니다. 마지막으로 작업 예제를 살펴보겠습니다. 2. Dockerfile 대 컨테이너 의 환경 변수 Dockerfile 은 Docker 이미지를 빌드하는 방법에 대한 지침이 포함된 스크립트 입니다. 반대로 Docker 컨테이너는 이미지의 실행 가능한 인스턴..

Java 2022.11.02

Docker Compose 다시 시작 정책

1. 개요 이 사용방법(예제)에서는 Docker Compose 와 함께 다시 시작 정책을 사용하는 방법을 배웁니다 . 먼저 다시 시작 정책으로 Docker 컨테이너를 다시 시작하는 방법을 다룹니다. 그런 다음 Docker Compose가 일반 모드 및 스웜 모드에서 다시 시작 정책을 다중 컨테이너 Docker 애플리케이션의 구성으로 정의하는 방법을 다룰 것입니다. 2. 도커 재시작 정책 다시 시작 정책은 Docker 컨테이너를 자동으로 다시 시작하고 수명 주기를 관리하는 데 사용할 수 있는 전략입니다. 컨테이너가 예기치 않게 실패할 수 있다는 점을 감안할 때 Docker에는 서비스가 다시 시작 루프로 실행되는 것을 방지하는 보호 장치가 있습니다 . 실패 시 컨테이너가 10초 이상 성공적으로 실행되지 않으..

Java 2022.11.02

Java에서 병렬 스트림을 사용하는 경우

1. 개요 Java 8에서는 컬렉션을 데이터 스트림으로 쉽게 반복할 수 있는 Stream API 를 도입했습니다. 병렬로 실행되고 여러 프로세서 코어를 사용하는 스트림을 만드는 것도 매우 쉽습니다. 더 많은 코어에서 작업을 나누는 것이 항상 더 빠르다고 생각할 수도 있습니다. 하지만 그렇지 않은 경우가 많습니다. 이 사용방법(예제)에서는 순차 스트림과 병렬 스트림의 차이점을 살펴봅니다. 먼저 병렬 스트림에서 사용하는 기본 포크 조인 풀을 살펴보겠습니다. 또한 메모리 지역 및 분할/병합 비용을 포함하여 병렬 스트림 사용의 성능 영향을 고려할 것입니다. 마지막으로 순차 스트림을 병렬 스트림으로 변환하는 것이 합리적일 때 권장합니다. 2. 자바의 스트림 Java 의 스트림 은 단순히 데이터 소스를 감싸는 래퍼..

Java 2022.10.31

스프링 부트 Security 자동 구성

1. 개요 이 예제에서는 Security에 대한 Spring Boot의 독창적인 접근 방식을 살펴보겠습니다. 간단히 말해서 기본 Security 구성과 필요한 경우 비활성화하거나 사용자 지정할 수 있는 방법에 중점을 둘 것입니다. 2. 기본 Security 설정 Spring Boot 애플리케이션에 Security을 추가하려면 Security 스타터 의존성 을 추가해야 합니다 . org.springframework.boot spring-boot-starter-security 여기에는 초기/기본 Security 구성 을 포함하는 SecurityAutoConfiguration 클래스도 포함됩니다. 프로젝트가 이미 Boot를 부모로 사용하고 있다는 가정하에 여기에서 버전을 지정하지 않은 방법에 주목하십시오. 기..

Java 2022.10.31

Spring Boot에서 여러 데이터 소스 구성 및 사용

1. 개요 Spring Boot 애플리케이션의 일반적인 시나리오는 단일 관계형 데이터베이스에 데이터를 저장하는 것입니다. 그러나 때때로 여러 데이터베이스에 액세스해야 합니다. 이 사용방법(예제)에서는 Spring Boot로 여러 데이터 소스를 구성하고 사용하는 방법을 배웁니다. 단일 데이터 소스를 처리하는 방법을 알아보려면 Spring Data JPA 소개를 확인하세요 . 2. 기본 동작 Spring Boot에서 데이터 소스를 선언하는 것이 application.yml 에서 어떻게 보이는지 기억해 봅시다 . spring: datasource: url: ... username: ... password: ... driverClassname: ... 내부적으로 Spring은 이러한 설정을 org.springf..

Java 2022.10.31

Spring Bean 범위에 대한 빠른 사용방법(예제)

1. 개요 이 빠른 사용방법(예제)에서는 Spring 프레임워크의 다양한 유형의 빈 범위에 대해 학습합니다. 빈의 범위는 우리가 사용하는 컨텍스트에서 빈의 수명 주기와 가시성을 정의합니다. Spring 프레임워크의 최신 버전은 6가지 유형의 범위를 정의합니다. 하나씩 일어나는 것 원기 요구 세션 신청 웹 소켓 언급된 마지막 네 가지 범위인 request, session, application 및 websocket 은 웹 인식 응용 프로그램에서만 사용할 수 있습니다. 2. 싱글톤 범위 싱글톤 범위 로 빈을 정의할 때 컨테이너는 해당 빈의 단일 인스턴스를 생성합니다. 해당 빈 이름에 대한 모든 요청은 캐시된 동일한 객체를 반환합니다. 객체에 대한 모든 수정 사항은 Bean에 대한 모든 참조에 반영됩니다. 다..

Java 2022.10.31

Spring을 사용한 제어 및 의존성 주입의 역전 소개

1. 개요 이 예제에서는 IoC(Inversion of Control) 및 DI(Dependency Injection)의 개념을 소개하고 이러한 개념이 Spring 프레임워크에서 어떻게 구현되는지 살펴봅니다. 2. 제어 역전이란 무엇입니까? 제어 역전은 개체 또는 프로그램의 일부에 대한 제어를 컨테이너 또는 프레임워크로 이전하는 소프트웨어 엔지니어링의 원칙입니다. 우리는 객체 지향 프로그래밍의 맥락에서 그것을 가장 자주 사용합니다. 사용자 지정 코드가 라이브러리를 호출하는 기존 프로그래밍과 달리 IoC는 프레임워크가 프로그램의 흐름을 제어하고 사용자 지정 코드를 호출할 수 있도록 합니다. 이를 가능하게 하기 위해 프레임워크는 추가 동작이 내장된 추상화를 사용합니다. 자체 동작을 추가하려면 프레임워크의 클..

Java 2022.10.31
반응형