반응형

전체 글 274

[Spring Boot] HTTPS와 HTTP 동시 적용 방법

기본적으로 커넥터가 하나기 때문에 HTTPS를 적용할 경우 HTTP 통신을 하지 못한다. 하지만 따로 설정을 하게 되면 두가지 모두 사용할 수 있다. * Git https://github.com/kangilbin/Spring-Boot/tree/master/%EB%82%B4%EC%9E%A5%20%EC%9B%B9%EC%84%9C%EB%B2%84/webserver 1. HTTP 커넥터 설정 @Bean public ServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); // 커넥터 추가 tomcat.addAdditionalTomcatConnectors(..

Java 2023.06.13

[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

[Git] Git에 폴더 업로드 방법

1. Git 레포지터리 생성 생성 후 Git 주소 복사 2. Git Bash 명령 프롬프트 열기 업로드하고 싶은 최상위 폴더에서 마우스 우측 클릭 후 Git Bash 창을 연다. 3. 폴더 업로드 순서 : 초기화 => 파일 스테이징 => 커밋 => 저장소 연결 => 푸시 3-1) Git 저장소 초기화 Git 저장소를 초기화하고, 해당 폴더를 Git 저장소로 변환한다. $ git init 3-2) 파일 스테이징 업로드할 파일을 스테이징 영역에 추가하게 된다. 폴더의 모든 파일을 추가할 경우 A 옵션을 추가한다. $ git add -A 3-3) 커밋 스테이징 영역에 추가한 파일을 커밋하여 Git 저장소에 저장한다. $ git commit -m "커밋 메시지" 3-4) 원격 저장소 연결 업로드할 폴더를 원격 ..

CS 2023.06.07

[프로그래머스/JavaScript] Lv.2 요격 시스템

https://school.programmers.co.kr/learn/courses/30/lessons/181188#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 A 나라가 B 나라를 침공하였습니다. B 나라의 대부분의 전략 자원은 아이기스 군사 기지에 집중되어 있기 때문에 A 나라는 B 나라의 아이기스 군사 기지에 융단폭격을 가했습니다. A 나라의 공격에 대항하여 아이기스 군사 기지에서는 무수히 쏟아지는 폭격 미사일들을 요격하려고 합니다. 이곳에는 백발백중을 자랑하는 요격 시스템이 있지만 운용 비용이 상당하기 때문에 미사일을 최소..

Algorithm 2023.06.06

[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] 데이터 전달 Map과 DTO 장단점

데이터를 전달, 저장하기 위해서 Map나 DTO를 사용하게 된다. 1. Map의 장단점 1-1) 장점 유연성: Map은 동적으로 필드를 추가하거나 제거할 수 있기 때문에 데이터 구조가 유연합니다. 필요한 데이터만을 담을 수 있어서 데이터 모델이 유동적인 경우에 유용합니다. 간결성: 데이터를 키-값 쌍으로 저장하기 때문에 구조가 간단하고 직관적입니다. 작은 규모의 데이터를 다룰 때 간편하게 사용할 수 있습니다. 빠른 프로토타이핑: Map을 사용하면 데이터를 빠르게 구성할 수 있어 프로토타이핑 과정에서 효과적입니다. 1-2) 단점 타입 안정성 부족: Map은 동적으로 필드를 추가하거나 제거할 수 있어서 컴파일 시점에 타입 검사가 이루어지지 않습니다. 따라서, 잘못된 키나 타입을 사용할 수 있어 런타임 오류의..

CS 2023.06.01

[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
반응형