비지니스로직을 처리할 때 Exception이 발생하는 경우가 있다. 이 때 에러를 무시할 수 도 있고, 잡아서 다시 처리해야할 때도 있다. 에러를 다시 처리해야할 경우 Spring에서 제공하는 RetryTemplate을 유용하게 사용할 수 있다. Catch 할 Exceptions, Retry Period, Retry Max Count 등을 설정할 수있다. 사용방법은 아래와 같다. //dependency (https://mvnrepository.com/artifact/org.springframework.retry/spring-retry/1.3.0) compile group: 'org.springframework.retry', name: 'spring-retry', version: '1.3.0' //Some..
복잡한 Domain Logic을 좀 더 이해하기 쉽게 "AND", "OR", "NOT" 의 논리 연산으로 추상화 한다. 복잡한 Logic을 하나 하나 풀어 각각의 Specification으로 정의하고, 각 Specification을 위 "AND", "OR", "NOT" 논리연산으로 연결한다. public interface Specification { Specification and(Specification other); Specification or(Specification other); Specification not(); boolean isSatisfiedBy(Object candidate); } public abstract class AbstractSpecification implements Spe..
Spring은 Controller에 Parmeter를 Mapping할 때 Annotation, Debug정보를 참고한다. Annotation은 @PathVarible, @RequestParam, Debug는 Compile할 때 정보를 활용한다. Compile Option은 기본값이 debug=true이지만, 서버에 따라 debug=false로 설정하기도 한다. 이런 상태에서 @PathVarible, @RequestParam이 없는 Controller로 Request되면 Spring은 Parameter Mapping 정보를 찾을 수 없기 때문에 IllegalArgumentException 발생한다. 참고 https://www.slideshare.net/benelog/ss-35627826
출근길에 Out Of Memory Alert을 받았다. 원인은 아침에 kakao plus 친구로 진행한 광고였다. 순간적으로 분당 5,000건으로 Request가 급격하게 증가했다. 하지만 이 서버는 하루중 가장 요청을 받이 받을때에는 5,000건도 원활하게 Request를 처리한다. 그렇다면 왜 Out Of Memory가 발생했을까? Heap Dump를 추출하여 확인해 보았다. 특정 ConcurrentHashMap에서 전체 사용 가능한 Memory의 70% 정도를 사용하고 있었다. 이상했다. 이런 비슷한 상황이 있을것 같아 구글링을 해보았는데 역시나 있었다. 이 상황의 원인과 해결방법은 아래 Blog를 참고했다. 원인은 Controller에서 특정 Page로 Redirect하는 방법이었다. @GetMa..
Validation 회귀분석 모형을 만들기 위해서는 모수 추정 즉 학습(training)을 위한 데이터 집합이 필요하다. 이 데이터 집합을 학습용 데이터 집합(traning data set)이라고 한다. 이 학습 데이터 집합의 종속 변수값을 얼마나 잘 예측하였는지를 나타내는 성능을 표본내 성능 검증(in-sample testing)이라고 한다. 회귀분석 모형을 만드는 목적 중 하나는 종속 변수의 값을 아직 알지 못하고 따라서 학습에 사용하지 않은 표본의 대해 종속 변수의 값을 알아내고자 하는 것 즉 예측(prediction)이다. 이렇게 학습에 쓰이지 않는 표본 데이터 집합의 종속 변수 값을 얼마나 잘 예측하는가를 검사하는 것을 표본외 성능 검증(out-of-sample testing) 혹은 교차검증(c..
1. Outlier - novelty detection : 새로운 값이 들어왔을 때, 그 값이 기존의 분포에 적합한 값인지 아닌지를 구별해 내는 방법 - outlier detection : 현재 가지고 있는 값들 중에서 이상치를 판별해는 방법 종류 구분 설명 One-class SVM Novelty Novelty를 위한 방법론으로 처음 관측 분포의 윤곽선을 새로운 차원 공간에 그려 놓고 추가 관측치가 경계로부터 구분된 공간 내에 있으면 초기 관측치와 같은 집단, 그렇지 않으면 비정상 데이터라고 간주한다. Fitting an elliptic envelope Outlier 이 방법론은 데이터 분포에 대한 가정이 필요하다. inlier 데이터가 가우스 분포라고 가정하면 inlie 위치 및 공분산을 추정할 수 있..
Install Anaconda (python 3.x) Anaconda ? Python 및 주로 사용되는 1,400개의 패키지와 데이터 과학 패키지들이 포함되어 있다. 쉽게 가상환경을 만들고 버전 관리를 할 수 있는 도구이다. https://www.anaconda.com/distribution/#download-section Launch Launch Jupyter Lab Develop Machine Learning Using Scikit-Learn
SomeJpaRepositoryConfig, OtherJpaRepositoryConfig 2개의 Config가 존재한다. 이 경우 SomeJpaRepositoryConfig에 있는 @Primary Annotation으로 인해 OtherJpaRepositoryConfig의 DataSource와 EntityFactory는 SomeJpaRepository의 DataSource와 EntityFactory가 주입된다. @Configuration public class SomeJpaRepositoryConfig { @Bean @Primary public DataSource dataSource() { ... return new DataSource(...); } @Bean @Primary public LocalCont..
1. Reflection 이란? - Java에서 지원하는 기능으로, 실행중인 Java Application에서 동적으로 Class의 Metadata를 읽어와 특정 정보를 획득하거나, Instance를 다룰 수 있다. 대표적으로 Spring에서는 @Component가 붙은 Class의 Instance를 생성하거나, 제 3의 Instance를 DI해줄 때 사용된다. Spring에서 이런 작업들이 수행될 때 접근 제한자가 private이어도, 해당 메소드를 실행할 수 있는 이유가 바로 Reflection을 사용하기 때문이다. 2. 자주 사용될 수 있는 Class Metadata //Class String simpleName = clazz.getSimpleName(); Class superclass = claz..

다음과 같은 상황에서 SmartLifecycle Interface를 확장하여 사용한다. require to be started upon ApplicationContext refresh and/or shutdown in a particular order. 특정 순서로 ApplicationContext 새로 고침 및/또는 종료 시 시작되어야 한다. The callback-accepting stop(Runnable) method is useful for objects that have an asynchronous shutdown process. 콜백 수용 정지(Runnable) 방법은 비동기 종료 프로세스가 있는 객체에 유용하다. 직접 구현한 예제 @Service public class SomeKafkaCon..
- Total
- Today
- Yesterday
- Embedded Mapping
- guava
- Discriminate Mapping
- scikit-learn
- @Primary
- Query DSL
- docker
- java Equals
- java EqualsAndHashCode
- Embeddable Mapping
- spring spel
- Typesafe Config
- Join Table
- DI
- JPA Criteria
- java generic
- Spring Registrar
- Akka
- Mapping
- Registrar
- RetryTemplate
- Criteria
- SmartLifecycle
- Property
- Spring
- Sprint RetryTemplate
- JPA
- 복합키 Mapping
- Spring JDBC Template
- Charles proxy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |