반응형

Java 45

[Spring Boot] 사설 SSL 인증서 생성 및 적용 방법

SSL(Secure Sockets Layer)란? SSL 인증서는 웹사이트나 애플리케이션과 사용자 사이의 통신을 암호화하고 보안하는 데 사용되는 디지털 인증서로 SS웹사이트의 신원을 확인하고 데이터 전송을 암호화하여 중간에 제3자가 정보를 엿볼 수 없도록 보호한다. 이를 통해 사용자는 안전하게 개인 정보를 전송하고 민감한 데이터를 주고받을 수 있다. 1. Key Store 만드는 방법(SSL 인증서) keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 4000 keystore가 생성된다. 2. application.properties파일에 SSL 세팅 keystore..

Java 2023.06.12

[Spring Boot] 내장 웹 서버 개념 및 활용(서버 변경, 포트 변경)

1. 내장 서블릿 컨테이너(웹 서버) 스프링 부트는 서버가 아니라 내장 서블릿 컨테이너를 쉽게 사용할 수 있도록 해주는 Tool이다. 서버 : Tomcat, Netty, Jetty, undertow 스프링 부트를 사용해 프로젝트를 만들면 의존성에 톰캣이 들어와 있다. 2. 코드로 보는 Tomcat 아래 코드 과정을 스프링 부트에서 설정하고 실행해 준다. 서블릿 컨테이너는 설정에 따라(pom.xml) 달라질 수 있지만, 서블릿은 변하지 않기 때문에 따로 분리되어 작동한다. - ServletWebServerFactoryAutoConfiguration : 서블릿 컨텍스를 만들어준다. - DispatcherServletAutoConfiguration : 어떠한 컨텍스트를 사용하든 등록해 준다 public cla..

Java 2023.06.11

[Spring Boot] 자동 설정 JAR 파일 생성 및 사용 방법

* 공식 문서 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-developing-auto-configuration 1. 프로젝트 생성 Maven 선택 => [Next] 클릭 프로젝트명은 네이밍 규칙에 맞게 작성한다. - 자동 설정 모듈 : '기술명-spring-boot-autoconfigure' - 필요한 의존성 정의 모듈 : '기술명-spring-boot-starter' - 하나의 모듈만 만들 경우 : '기술명-spring-boot-starter' 2. 의존성 추가(pom.xml) org.springframework.boot spring-boot-autoconfigure org.springframew..

Java 2023.06.05

[Java] CompletableFuture 클래스 사용 방법

CompletableFuture 클래스란? Java 8부터 도입된 클래스로, 비동기적인 작업을 처리하고 결과를 다루는 데 사용된다. 1. 비동기 실행 방법 1-1) runAsync 비동기로 작업을 실행하고 결과를 반환하지 않고, Runnable 인터페이스를 구현한 람다 표현식으로 정의된다. CompletableFuture future = CompletableFuture.runAsync(() -> { // 비동기로 실행될 작업 }); 1-2) supplyAsync 비동기로 작업을 실행하고 결과를 제공하는 CompletableFuture를 반환한다. Supplier 인터페이스를 구현한 람다 표현식으로 정의된다. CompletableFuture future = CompletableFuture.supplyAsy..

Java 2023.06.02

[Java] Optional 클래스 개념 및 사용 방법

Optional 클래스란? Java 8에서 추가된 기능으로 값이 존재하지 않는 경우(Null)를 다루는 데 사용된다. 이 클래스는 값이 있을 수도 있고 없을 수도 있는 상황을 나타내는 컨테이너 역할을 하며, NullPointerException과 같은 예외를 방지한다. 1. Optional 클래스 주요 메서드 메서드 설명 Optional Optional 객체를 생성하기 위한 제네릭 타입입니다. T는 값의 타입을 나타냅니다. Optional.of(value) 지정된 값을 갖는 Optional 객체를 생성합니다. 값이 null이 아닌지 확인하고, null이면 NullPointerException이 발생합니다. Optional.ofNullable(value) 지정된 값을 갖는 Optional 객체를 생성합니다..

Java 2023.05.31

[Java] 날짜 및 시간 API (Date and Time API) 사용 방법

Java 8에서는 java.time 패키지가 추가되어 날짜와 시간을 다루는 API를 제공한다. 이 API는 이전의 java.util.Date 및 java.util.Calendar 클래스보다 사용하기 쉽고, 더 정확하고 기능을 제공하고있다. 1. java.time 제공 클래스 클래스 설명 LocalDate 날짜를 표현하는 클래스로, 연, 월, 일 정보만 포함 LocalTime 시간을 표현하는 클래스로, 시, 분, 초, 밀리초 정보만 포함 LocalDateTime 날짜와 시간을 모두 포함하는 클래스로, LocalDate와 LocalTime의 조합 Instant 기계적인 시간의 흐름을 나타내는 클래스로, 에포크부터 경과한 시간 표현 Duration 두 시간 간의 지속 시간을 나타내는 클래스로, 시간 기반의 간..

Java 2023.05.30

[Java] 함수형 인터페이스 종류 및 사용 방법

함수형 인터페이스란? Java 8에서 추가된 기능으로 단 하나의 추상 메서드를 가지며, 람다 표현식이나 메서드 참조로 이를 구현할 수 있다. 람다 표현식과 스트림(Stream) API가 도입되면서 함수형 프로그래밍 스타일이 훨씬 더 쉽고 강력해졌으며, 함수형 인터페이스는 이를 지원하기 위한 핵심 요소입니다. 1. 함수형 인터페이스 1-1) 종류 인터페이스 설명 추상 메서드 Supplier 매개변수 없이 값을 제공하는 함수형 인터페이스 T get() Consumer 매개변수를 받아서 값을 소비하는 함수형 인터페이스 void accept(T t) BiConsumer 두 개의 매개변수를 받아서 값을 소비하는 함수형 인터페이스 void accept(T t, U u) Predicate 매개변수를 받아서 논리적인 ..

Java 2023.05.26

[Java] 기본 메서드(Default Methods) 개념 및 사용 방법

기본 메서드란? Java 8에서 추가된 기능으로 인터페이스에 새로운 메서드를 추가하기 위한 방법이다. 이전의 Java 버전에서는 인터페이스에 메서드를 선언하면 해당 인터페이스를 구현하는 모든 클래스에서 해당 메서드를 구현해야 했지만, 기본 메서드를 사용하면 인터페이스에 기본 구현을 제공할 수 있으며, 구현 클래스에서 해당 메서드를 오버라이드하지 않아도 된다. 1. default 메서드 구문 public interface MyInterface { // 추상 메서드 void abstractMethod(); // default 메서드 default void defaultMethod() { // 구현 코드 } } default 키워드를 사용하여 메서드를 선언 중괄호 내부에 메서드의 구현 코드를 작성 defaul..

Java 2023.05.25

[Java] 메서드 참조 사용 방법

메서드 참조 (method reference)란? Java 8에서 추가된 기능으로 메서드를 참조하여 람다식을 더 간결하게 표현할 수 있는 방법이다. 메서드 참조는 함수형 인터페이스를 사용하는 람다 표현식의 축약된 형태로 볼 수 있습니다. 1. 사용방법 1-1) 정적 메서드 참조 클래스이름::정적메서드이름 class StringUtils { public static boolean isNotEmpty(String str) { return str != null && !str.isEmpty(); } } public class MethodReferenceExample { public static void main(String[] args) { List strings = Arrays.asList("Alice", "..

Java 2023.05.24

[Java] 스트림(Stream) API 사용 방법

스트림 API(Stream API)란? Java 8부터 도입된 기능으로, 컬렉션 데이터를 처리하고 변환하는 작업을 간단하게 할 수 있는 API이다. 스트림을 사용하면 데이터 처리를 파이프라인 형식으로 연결하여 선언적으로 표현할 수 있다. 1. Stream API 구문 import java.util.Arrays; import java.util.List; public class StreamExample { public static void main(String[] args) { List numbers = Arrays.asList(1, 2, 3, 4, 5); // 스트림 생성 numbers.stream() // 중개 연산: 짝수만 필터링 .filter(n -> n % 2 == 0) // 중개 연산: 제곱값으로..

Java 2023.05.23
반응형