분류 전체보기(363)
-
JAVA - Hashtable, HashMap, ConcurrentHashMap 비교
Hashtable, HashMap, ConcurrentHashMap 비교 1. Hashtable, HashMap, ConcurrentHashMap위에 나열된 클래스들은 Map 인터페이스를 구현한 콜렉션들입니다. 이 콜렉션들은 비슷한 역할을 하는것 같으면서도 다르게 구현되어 있습니다. 기본적으로 Map 인터페이스를 구축한다면 구조를 가지게 됩니다. 하나씩 살펴봅시다. 2. HashtableHashtable은 put, get과 같은 주요 메소드에 synchronized 키워드가 선언 되어 있습니다. 또한 key, value에 null을 허용하지 않습니다. 3. HashMapHashMap은 주요 메소드에 synchronized 키워드가 없습니다. 또한 Hashtable과 다르게 key, value에 null을..
2019.02.01 -
Lucene - 분석기(Analyzer)로 분석한 토큰(Token)결과 출력
Lucene - 분석기(Analyzer)로 분석한 토큰(Token)결과 출력 루씬에서 색인을 하기위해서는 선행과정이 있다. 물론 문서안에 정의된 여러개의 필드에 적용한 속성에 따라 다르긴 하지만 ANALYZE속성을 적용한 필드인 경우에는 색인하기 이전에 텍스트를 토큰으로 추출하고 그 토큰에 여러가지 메타정보(start,end 정수/위치증가값 등등의 데이터)를 섞은 텀으로 만든 후에 색인에 들어간다. 여기에서 보여줄 예제는 색인을 위한 텍스트에 분석기의 분석과정을 적용 후에 어떻게 토큰이 분리되는지 확인하는 간단한 예제이다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555..
2019.01.29 -
객체지향 design pattern - composite pattern 예제
https://plposer.tistory.com/29위의 포스트된 글 일부에 컴포지트 패턴이 설명되어있으며, 예제코드도 나와있음.
2019.01.29 -
JPA- 연관관계 외래키의 주인과 주인의 참조자 관계
JPA- 연관관계 외래키의 주인과 주인의 참조자 관계 JPA에서 일대일,일대다,다대일,다대다 관계에서는 항상 연관관계의 주인이 존재한다. 연관관계의 주인이라고 함은 데이터베이스 테이블에서 외래키의 주인을 뜻한다. 보통 일대다,다대일(다대다 포함, 다대다는 일대다,다대일관계로 매핑을 시킴) 관계에서는 보통 다쪽에 외래키가 존재한다. 일단 예제를 보면서 설명하겠다. 연관관계 예시 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364package com.spring.jpa.entitiy; import javax.persistence.Column;imp..
2019.01.24 -
JPA - 다대다 연관관계(@ManyToMany),N:N
JPA - 다대다 연관관계(@ManyToMany),N:N 설명에 앞서 사실 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 곤계를 표현할 수 없다. 그래서 보통 다대다 관계를 일대다,다대일 관계로 풀어내는 연결 테이블을 사용한다. 왜냐하면 다대다 관계를 1:1 테이블 매핑은 한다고 생각해보자. 회원과 상품의 관계인데, 한 회원이 여러개의 상품을 구입할 수 있고, 한 상품(ID)이 여러 회원에 의해 구입될 수 있다. 그렇다면 서로 몇개까지 살 수 있냐라는 제한이 없으면 외래키가 유동적으로 늘어난다. 그렇다면 엄청 많은 외래키를 굳이 미리 생성할 필요도 없다. 즉, 이렇게 몇개인지 알수 없는 다대다 관계를 중간에 연결 테이블 하나를 두고 일대다, 다대일 관계로 매핑을 시켜주는 것이다. 연결테이블은 단순히..
2019.01.24 -
JPA - 기본 키 매핑 전략(@Id)
JPA 기본 키 매핑 전략,@IdJPA에서 기본 키 매핑 전략에는 크게 4가지가 있다. 1)직접 할당 : 기본 키를 애플리케이션에서 직접 엔티티클래스의 @Id 필드에 set해준다. 2)자동 생성 : 대리 키 사용 방식 - IDENTITY : 기본 키 생성을 데이터베이스에 위임한다.(ex MySQL - AUTO INCREMENT...)- SEQUENCE : 데이터베이스 시퀀스를 사용해서 기본 키를 할당한다.(ex Oracle sequence...)- TABLE : 키 생성 테이블을 사용한다.(ex 시퀀스용 테이블을 생성해서 테이블의 기본키를 저장하고 관리한다.) 자동 생성 전략이 이렇게 다양한 이유는 데이터베이스 벤더마다 지원하는 방식이 다르기 때문이다. 위 중에서 IDENTITY와 SEQUENCE는 데이..
2019.01.17