Flow 1. Spring Web MVC Project 시작- was -> onStartup java configuration 기반의 spring web mvc 프로젝트는 was에서 onStartup 메소드가 호출되면서 시작한다.onStartup에서는 아래와 같은 일이 일어난다. 1. rootApplicationContext를 생성2. ServletContext에 rootApplicationContext 등록3. filter 등록4. dispatcherServlet 등록 2. AnnotationConfigApplicationContext 생성- was -> onStartup -> rootApplicationContext defaultListableBeanFactoryannotationConfigAppli..
QueryDSL 기본 - user define repository interface public interface MemberRepositoryCustom { Member search(String memberName); } - user define repository interface implement public class MemberRepositoryImpl implements MemberRepositoryCustom { @PersistenceContext(unitName = "jpaPractice") private EntityManager entityManager; public Member findOne(String memberName) { JPAQuery jpaQuery = new JPAQuery..
Criteria 기본 - Specification public Specification memberNameLike(String mamberName) { return (root, query, cb) -> cb.equal(root.get(Member_.memberName), memberName); } - Finder memberRepository.findAll(memberNameLike(memberName), pageable); 응용 public class QuerySupporter { public Specifications combineSpecifications(Specification... specifications) { return combineSpecifications(Lists.newArrayLis..
CloseableHttpClient를 생성할때 생성하려면 아래와 같이 기본 설정으로 생성할 수 있다. - CloseableHttpClient httpClient = HttpClientBuilder.create().build(); 기본 설정으로 HttpClient를 생성할 경우, 기본값이 아래와 같기 때문에 performance가 않나올 수 있다. - this.pool = new CPool(new InternalConnectionFactory(this.configData, connFactory), 2, 20, timeToLive, tunit); 때문에 아래 예제 코드와 같이 사용자가 설정을 직접 정의하여 HttpClient를 생성하는것도 고려해야 한다. import lombok.extern.slf4j.Sl..
JPA를 사용할때 특정 entity를 동시에 수정하는것을 방지해야할 경우가 있다. 처음에는 쉬워 보이지만 이를 방지하기엔 뭔가 딱 떠오르는 좋은 수단이 애매하다. 이럴때 사용할 수 있는 기능이 Hibernate의 @Version이다. 이 기능은 처음 객체를 조회시 Hibernate가 DB의 version field에 값을 수정하고, 값을 반환한다.그리고 사용자가 entity를 수정후 저장할때 Hibernate는 DB의 version값과 entity가 가지고 있는 version값을 비교한다. 일치하면 수정한 내용을 DB에 반영하고, 틀리다면 ObjectOptimisticLockingFailureException을 발생시킨다. 코드는 아래와 같다. @Getter @Entity @Table(schema = "..
https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem Docker에서 bash shell을 통하여 Application 실행할때 bash shell에서 직접 실행하지 않으면 PID는 아래와 같다. PID 1 : bash shellPID 2 ~ : application 이런 상태일때 어떤 문제가 발생할 수 있을까? 먼저 특정한 상황을 가정하겠다.상황 - Jenkins같은 CI Tool이 Docker로 띄어져 있다.- Application은 shell에서 java jar 명령어로 실행되었다.- Application을 kill하려고 한다. 이런 상황일 때 Jenkins는 Application을 종료하기 위해서 "KILL P..
docker image 에서 컨테이너 실행까지 1.docker build --tag ${imageName}:${version} . - dockerfile을 docker image 로 생성한다. 2. docker run -i -d -p ${host port}:${container port} -v ${host dir}:${container dir} --name ${container name} ${image name}:${image version} - "-d" 데몬으로 돌리는것으로 container를 백그라운드에서 실행한다. 3. docker exec -it ${container name or id} bash - container 안의 bash에 들어간다. 4. docker inspect ${container..
연습 사이트 : http://regexr.com참고 사이트 : https://blog.outsider.ne.kr/360 1. \b - sql의 like검색조건에 들어가는 "%"와 같다. 원본 텍스트car Car CaR CAR caR scar carry incarcerate 정규식\b [Cc][Aa][Rr] (대소문자 상관없이 car로 시작하는것) 결과car Car CaR CAR caR carry 정규식\b [Cc][Aa][Rr] \b (대소문자 상관없이 car) 결과car Car CaR CAR caR2. . (점, 마침표)- * 와 같은 의미, 아무거나 와도 상관없다는 의미. 점이 1개면 1개의 문자가 아무거나 와도 상관없고, 2개면 2개의 문자가 와도 상관없음- 진짜 마침표 "." 을 찾으려면 앞에 이..
Storm Storm의 기본 구성 - Tuple : key - value 형태의 데이터 객체 - Stream : Tuple의 집합 - Spout : DataSource의 데이터를 Storm에서 처리 가능한 형태인 Stream으로 변환하여 Bolt에게 Stream을 넘겨준다. - Bolt : 실시간 연산자, 함수의 역활을 수행한다. - Tuple 필터링 - Join 과 집계 - 연산 - DB 읽기 / 쓰기 EX : 단어 세기 Topology - 문장생성 Spout -> 문장 나눈기 Bolt -> 단어 세기 Bolt -> 결과 출력 Bolt - Topology : Stream, Spout, Bolt로 구성되어 있는 Storm의 분산 연산 단위. Lucidchart - Diagrams Done Right
StringBuffer, StringBuilder String은 Immutable Object이다. 때문에 입력한 String이 변경될 경우 새로운 memory(Heap)에 변경된 String 객체가 생성된다. 그래서 String을 parsing하여 "+" 연산으로 새로운 문자열을 생성하면 memory(Heap)가 낭비되고, 속도도 느리다. 이런 이유로 JDK 1.5 버전 이전에는 성능상 이슈가 있었지만 JDK 1.5 부터 StringBuffer, StringBuilder가 생기면서 이슈가 해결되었다. 또한 String을 사용하더라도 Compile시 String을 StringBuilder로 Compile되도록 변경되었다. 하지만 명시적으로 StringBuilder를 사용하는것이 좋을것 같다. String..
- Total
- Today
- Yesterday
- DI
- guava
- SmartLifecycle
- Charles proxy
- 복합키 Mapping
- Sprint RetryTemplate
- Typesafe Config
- JPA
- Spring Registrar
- java generic
- Embeddable Mapping
- Embedded Mapping
- Mapping
- RetryTemplate
- spring spel
- Criteria
- Query DSL
- java Equals
- docker
- Spring
- java EqualsAndHashCode
- @Primary
- Property
- Discriminate Mapping
- Akka
- Join Table
- Registrar
- JPA Criteria
- scikit-learn
- Spring JDBC Template
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |