본문 바로가기
728x90
반응형
SMALL

전체 글581

LocalDate, LocalTime JPA Timezone 문제 Java8 이전에는 Date 에 대해서 대응하는 것이 다소 허접했다. 물론 Joda-Time (https://www.joda.org/joda-time/) 이 있었지만 그래도... 이렇게나 많이 쓰이고 있는 Language 에서 Date, Time 을 다루는 객체가 너무 허접했다. Java8 에서 LocalDate, LocalTime, LocalDateTime 등이 나오면서 매우 편리해 졌다. ​Spring Boot 와 JPA 를 사용하면서 도메인 모델에 맞는 제대로 된 Type 을 사용하게 되면서 LocalDate 와 LocalTime 을 구분해서 많이 사용한다. 새로운 API 개발 및 테스트를 진행하다가 이상한 문제에 맞닥뜨렸다. ​Entity 의 일부 내용 중 적용기간과 적용시간에 대해서 아래와 같이.. 2020. 3. 25.
Spring Boot HTTPS 설정 & WebClient HTTPS Spring Boot 에서 HTTP를 설정하는 것은 간단하다. 참고로 테스트 한 Spring Boot 의 버전은 2.2.1 이며 undertow 를 사용했다. ​ keytool 을 이용하여 인증서를 생성한다. keytool -genkey -alias yhkim-ssl -keyalg RSA -keysize 2048 -validity 7300 -keypass 12341234 -keystore yhkim-server.jks application.properties 또는 application.yaml 파일에 ssl 관련 옵션을 설정한다. server: servlet: context-path: /linkage port: 8082 ssl: enabled: true key-alias: yhkim-ssl key-sto.. 2020. 2. 20.
AOP - 필요할 때 마다 알아서 해 줄테니 넌 핵심 로직에 집중해 AOP (Aspect Oriented Programming) - 관점지향 프로그래밍 다중 상속이 불가능한 Java에서 기능을 구현하는 핵심 기능 코드와 공통 기능 코드가 섞여 있어서 효율성이 떨어짐 핵심기능과 공통기능을 분리 시켜놓고, 공통 기능을 필요로 하는 핵식 기능들에서 사용하는 방식을 말합니다. AOP 주요 용어 Aspect: 공통 기능 Advice: Aspect의 기능 자체 Aspect를 공통 기능이라고 크게 묶었다면 Advice는 그 안의 세부적인 주요 기능이라고 생각하면 됨 Joinpoint: Advice를 적용해야 하는 부분 (ex. 메서드) Pointcut: Joinpoint의 부분으로 실제 Advice가 적용된 부분 Weaving: Advice를 핵심 기능에 적용하는 행위 Spring .. 2020. 1. 31.
[MySQL] 실행계획 옵티마이저 쿼리를 최적으로 실행하기 위해 테이블의 데이터가 어떤 형태로 분포되어 저장되어 있는지 통계 정보를 참조하고 실행계획을 만들어 낸다. 대부분의 DBMS는 비용기반 최적화(Coast-based optimizer, CBO)방법을 이용한다. 아주 오래전 예전 오라클에서는 규칙기반 최적화(Rule-based optimizer, RBO)을 이용하기도 했다. (현재는 거의 사용하지 않는 방법) ​ 통계정보 CBO에서 가장 중요한 것은 통계정보다. 오라클의 경우 통계정보가 상당히 정적이고 수집에 많은 시간이 소요되기 때문에 통계 정보만 따로 백업하기도 한다. MySQL에서 관리되는 통계정보는 대략의 레코드 건수와 인덱스의 유니크한 값의 개수 정도이다. Memory 테이블은 별도 통계 정보가 없으며, MyIS.. 2020. 1. 31.
728x90
반응형
LIST