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. 지연로딩을 할..
jeesoo.work/latency-and-bandwidth Puffin's devlog: 네트워크: 레이턴시와 대역폭 레이턴시와 대역폭은 모든 네트워크 트래픽의 성능을 좌우합니다 jeesoo.work 위의 출처에 정리가 잘 되어 있다. 위 출처에 따르면, 네트워크에서의 Latency는 패킷을 전송하는 곳에서부터 전달받는 곳까지 이동하는 데 걸리는 시간이라고 한다. 그리고 좋은 사용자경험을 제공하기 위해서는 프로그램의 응답 속도가 중요하며, 이는 네트워크 레이턴시를 주의 깊게 관리해야 함을 의미한다고 한다.
오류 처리 코드 때문에 프로그램 논리를 이해하기 어렵다면 그건 깨끗한 코드라고 할 수 없다. 예외가 발생할 수 있는 코드를 짤 때는 try-catch-finally문으로 시작해라. 외부 API를 사용할 때는 감싸기 기법을 사용해라. 특수 사례 패턴의 경우, 코드상에서 처리하지 말고 클래스를 만들거나 객체를 조작해 처리한다. null을 반환 혹은 전달하는 방식으로 에러 처리를 하지 마라. 필요에 따라 자바에서 지원하는 Collections.emptyList()를 사용해서 미리 정의된 읽기 전용 리스트를 반환해라.
오늘 바보처럼 로컬에서 작업하고 푸시까지 했는데 사실 잘못된 커밋이었다는 걸 깨달았다... 여러 번 이런 적이 있었고, 그때마다 어찌저찌 돌아가긴 했는데 이번엔 정말 내가 완벽하게 이해한 상태에서 되돌릴 수 있어서 뿌듯했다. 앞으로 같은 문제가 터지면 제대로 해결할 수 있을듯. 그래서 정리해둔다! 우선 정확한 상황을 말해보자면, 1. 원격 : 정상(0) + 잘못된 커밋 1개 올라가 있는 상태 2. 로컬 : 1의 상태(정상(0) + 잘못된 커밋 1개) + 잘못된 merge까지 있는 상태 이랬다. 그래서 로컬이 원격보다 2 커밋 앞에 있던 상태. 그리고 따로 브랜치가 분리된 상태는 아니었다. 단순히 강의들었던 내용 기록목적이라 그냥 main브랜치에서 작업하고 있었다. 그래서 되돌리기 위해 해야 할 일은 1...