하나의 프로덕트를 만든다고 할 때, 처음부터 끝까지 전부 직접 개발하는 경우는 드물다. 외부 패키지, API, 프레임워크 등 외부 코드를 사용하게 된다. 이때, 제공자들은 범용적으로 사용되도록 하지만 사용자는 자신의 요구에 집중하는 인터페이스를 원한다. 경계 인터페이스를 이용할 때는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의한다. 외부 코드를 사용할 때는 먼저 간단한 테스트 케이스를 작성해서 외부 코드를 익히자. 이렇게 테스트를 통하게 되면 필요한 지식만 확보하게 되고, 이해도도 높여준다. 그리고 새 버전이 나왔을 때 우리 코드와 호환되는지, 호환되지 않는지 테스트를 통해 바로 알 수 있게 된다. 외부 패키지를 호출하는 코드를 가능한 줄여 경계를 관리하자. 새로운 클래스로 경계를 감..
1. 직접 할당 : 기본 키를 애플리케이션에서 직접 할당 2. 자동 생성 : 대리 키 사용 방식 - IDENTITY : 기본 키 생성을 데이터베이스에 위임(MySQL). 먼저 엔티티를 DB에 저장한 후에 식별자를 조회해서 엔티티의 식별자에 할당. - SEQUENCE : 데이터베이스 시퀀스를 사용해서 기본 키 할당(오라클). persist() 호출시 먼저 DB 시퀀스를 사용해서 식별자를 조회. 그리고 조회한 식별자를 엔티티에 할당 후 엔티티를 영속성 컨텍스트에 저장) -> IDENTITY나 SEQUENCE전략은 사용하는 데이터베이스에 의존 - TABLE : 키 생성 테이블을 사용 -> 모든 데이터베이스에서 사용 가능 키 생성 전략을 사용하려면 persistence.xml에 hibernate.id.new_g..
요즘 JPA를 공부하고 있는데, 그 책에서 회원을 설명하는 필드인데, 길이 제한이 없다고 가정했기 때문에 VARCHAR가 아닌 CLOB타입을 이용했다. CLOB은 처음 들어봐서 CLOB과 BLOB을 정리해둔다. kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=274&dbnum=127097&mode=detail&type=techreport 데이터 기술 동향 < 정보마당 - 한국데이터산업진흥원 Oracle+PHP Cookbook 시리즈 PHP 애플리케이션에서 Oracle의 PL/SQL API를 활용하는 방법에 대한 다양한 How-To 문서가 제공됩니다. Oracle/PHP 환경의 LOB 처리 Harry Fuecks│PHP 개발자..
atoz-develop.tistory.com/entry/DB-Connection-Pool-용어-정리와-Single-Connection의-문제점 DB Connection Pool - 용어 정리와 Single Connection의 문제점 DB Connection Pool - 용어 정리와 Single Connection의 문제점 용어 정리 DB Connection Pool - DB 커넥션을 관리하는 객체 - DB 커넥션 객체를 여러개 생성해서 Pool에 담아 놓고 필요할때 꺼내 쓰는 방.. atoz-develop.tistory.com 위 출처에 따르면, DB와 연결할 때 Connection을 하나 만들고(Single Connection) 그 Connection에서 여러 개의 Statement를 만들어서 사용하..
초기화 : 영속성 컨텍스트의 1차 캐시, 쓰기 지연 SQL저장소가 비워진다. 종료 : 영속성 컨텍스트의 1차 캐시, 쓰기 지연 SQL저장소도 사라진다. 영속성 컨텍스트가 초기화나 종료되면 엔티티는 준영속상태가 된다. 비영속 : 아직 영속성 컨텍스트나 데이터베이스와 전혀 관련이 없는 순수한 객체 상태 준영속 : (원래 관리했지만) 영속성 컨텍스트가 관리하지 않는 상태 준영속 상태로 만들려면 아래와 같은 세 가지 방법이 있다. // 1. 준영속 상태로 em.detach(); // 2. 영속성 컨텍스트 종료 em.close(); // 3. 영속성 컨텍스트 초기화 em.clear(); 준영속 상태의 특징 1. 비영속 상태와 유사하지만 영속상태를 거쳤기 때문에 반드시 식별자 값은 가지고 있다. 2. 지연로딩을 할..