HTTP/2 적용을 위해서는 기본적으로 SSL이 적용되어 있어야 한다. 먼저 application.properties에 아래와 같이 적용한다. server.ssl.key-store=keystore.p12 server.ssl.key-store-type=PKCS12 server.ssl.key-store-password=kyhslam server.ssl.key-alias=spring server.port=8443 server.http2.enabled=true // http2 적용그리고 pom.xml에서 tomcat을 제외하고 undertow를 추가한다. 마지막으로 애플리케이션을 실행해서 아래와 같이 뜨면 성공! 자세히보면 Undertow started on port(s) 8443 (https) with con..
스프링부트(Spring Boot_) HTTPS 설정 콘솔 창에서 다음의 명령어로 keysotre 파일을 생성한다 https://gist.github.com/keesun/f93f0b83d7232137283450e08a53c4fdhttps://gist.github.com/keesun/f93f0b83d7232137283450e08a53c4fd keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 4000 keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12..
@Configuration @AutoConfigureOrder(-2147483648) @ConditionalOnClass({ServletRequest.class}) @ConditionalOnWebApplication( type = Type.SERVLET ) @EnableConfigurationProperties({ServerProperties.class}) @Import({ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class, EmbeddedTomcat.class, EmbeddedJetty.class, EmbeddedUndertow.class}) public class ServletWebServerFactoryAutoConf..
커스텀 AutoConfigure클래스 선언의 문제점 @EnableAutoConfiguration 어노테이션을 통한 빈이 주입되었을 경우 특별한 경우로 이 빈으 다시 재정의하여 쓸 경우 에러가 발생하며 재정의가 안된다. @ConditionalOnMissingBean을 통한 충돌 요소 해결 오버라이딩 충돌을 해결하려면 재정의 한 @Bean에 @ConditionalOnMissingBean 어노테이션을 추가해 줘야 한다. 그러면 동일한 스프링 빈이 정의되었을 시에는 쓰지 않고 그 빈이 없을 경우 자동으로 등록한 빈을 쓰게하는 용도이다.
| 스프링 부트 자동 설정 이해 스프링 부트는 자바의 main 진입점에 @SpringBootApplication을 붙임으로서 사용할 수 있다. 스프링 부트는@SpringBootApplication에 있는 @ComponentScan과@EnableAutoConfiguration어노테이션을 통해 두 단계로 나뉘어서 스프링 부트 프로젝트의 스프링 빈을 찾아내어 등록한다. @ComponentScan은 스프링 프레임워크에서@Repository, @Configuration, @Service등 스프링 빈을 나타내는 어노테이션을@ComponentScan이 붙은 클래스가 위치해 있는 현재 패키지를 기준으로 그 아래 패키지까지 찾아내서 스프링 빈으로 등록하는 기능을 수행한다. @EnableAutoConfiguration은 ..
해당 URL에서 자신이 사용할 설정을 셋팅하여 파일을 다운로드 받는다. https://start.spring.io/ Web, JPA, Lombok, Thymeleaf, H2 DB 선택하였다. 그리고 GENERATE를 하면 ZIP파일을 다운로드 받고 압축을 해제한다. Intellij로 압축 푼 경로로 가서 pom.xml을 선택해 실행한다. pom.xml을 열어보면 아래와 같이 여러 dependencies들이 자동으로 설정되어있다. 4.0.0 org.kyhslam maven_study 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-parent 2.1.7.RELEASE org.springframework.boot spring-boot-starter-da..
| 오라클에서의 조건문 활용법 - CASE WHEN의 기본 구문 CASE WHEN 조건절 THEN 참일때 값 ELSE 거짓일때 값 END 컬럼명 - 다중 CASE WHEN 구문 CASE WHEN RATIO2 = 'X' OR RATIO2 = 0 THEN '' WHEN TO_NUMBER(RATIO2) > 9 THEN TO_CHAR( TO_NUMBER(RATIO2) / 100 ) ELSE '' END AS COMP_COUNT
퀵정렬 | 퀵 정렬이란 ? 분할정복 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법이다. 분할 정복(Divide and conquer)방법 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략 분할 정복은 대개 순환 호출을 이용하여 구현한다. 하나의 리스트를 피벗(Pivot)을 기준으로 두 개의 비균등한 크기로 분할하고 분할된 부분 리스트르 정렬한 다음, 두개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법 퀵 정렬의 단계 분할(Divide) : 입력 배열을 피벗을 기준으로 비균등하게 2개의 부분 배열로 분할 한다 (왼쪽 : 피벗보다 작은 요소, 오른쪽 : 피벗보다 큰 요소) 정복(Conquer) : 부분 배열을..
메모제이션을 활용한 피보나치 수열 이미 계산한 내용들을 저장해 두고, 연산할 필요없이 저장된 데이터를 불러오는 것이다. 메모제이셔늘 쓰게 되면 기존 O(2^N)에서 O(N)으로 급격하게 줄어든다. 더보기 data[1] = fibo(1) data[2] = fibo(2) data[3] = data[1] + data[2] = fibo(3) data[4] = data[2] + data[3] = fibo(4) data[5] = data[3] + data[4] = fibo(5) 소스 package org.kyh.codeup; import java.util.Scanner; public class p1905 { static int[] data; //static int sum = 2; public static void ..
1. 병행프로세스 프로세스 여러 개가 동시에 실행되면 병행 프로세스라고 부른다. 병행 프로세스들은 제한된 자원을 공유하기 위해 자주 상호작용한다. 상호작용하는 프로세스는 순서에 맞게 실행되도록 동기화 시켜야 한다. 다중 프로세싱 시스템에서는 프로세서들이 동일한 자원에 접근할 경우 충돌이 발생할 수 있다. 따라서 프로세서 간의 충돌을 해결해주는 프로세스 동기화 알고리즘이 필요하다. (선행그래프) 2. 상호배제와 동기화 특정 공유자원을 한 순간에 한 개의 프로세스만 사용할 수 있다고 했을 때, 프로세스 하나가 공유 데이터에 접근하는 동안 다른 프로세스가 해당 데이터를 접근할 수 없게 하는 것을 상호배제(Mutual Exclusion) 라 한다. 공유자원을 동시에 사용하지 못하게 실행을 제어하는 기법을 프로세..
프로토콜 통신하기 위한 규칙을 프로토콜이라 한다. OSI 모델이란? 데이터의 송수신은 컴퓨터에서 컴퓨터로 데이터를 전송하는 거다. 이때, 컴퓨터 내부에서 여러 가지 일을 하는데, 이런 일을 일곱 개 계층이 나눠서 한다. 그 일곱개 계층이 OSI모델이다. 통신할때 데이터는 맨 위의 응용계층에서 순차적으로 아래 계층으로 전달된다. TCP/IP 모델이란? OSI 7계층을 4계층으로 바꿔서 생각하면 더 이해하기 쉬운데 이 4계층을 TCP/IP 모델 이라고 한다. TCP / IP 1 계층 : 네트워크 엑세스 계층 (Network Access Layer) - OSI 7 계층의 1, 2 계층에 해당 - MAC, LAN, 패킷망 등에 사용 - 프로토콜 : Ethernet, PPP, Token Ring TCP / IP ..
파일 쓰기 writerFile 함수의 상세 소스를 보자 실행하면 아래와 같은 결과를 알수 있다. 특히 FileWriter(fileName, false) 부분을 보면 두 번째 매개변수가 false이면 파일을 새롭게 덮어씌워서 생성을 하고, true로 변경을 하면 해당 내용 뒤에 추가로 이어서 쓰기가 진행된다. 파일 읽기 아래의 readFile함수를 실행하자 위에서 쓰여졌던 내용들이 출력된다.