전체 글 (133) 썸네일형 리스트형 [Java] 동일성(identity)와 동등성(equality) (equals(), ==) 동일성(identity)은 객체의 주소를 비교하는 것이고, (==) 동등성(equality)은 객체의 같음을 비교하는 것입니다. (equals) 기본적으로 자바에서는 Object 클래스에 정의된 equals() 메소드가 동일성 비교를 합니다. 따라서, 개발자는 원한다면 equals() 메서드를 오버라이딩해서 동등성의 판단 기준을 정의해주면 됩니다. [JPA] JPA란? JPA JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 됨 JPA가 개발자 대신 적절한 SQL을 생성하여 DB에 전달하고, 객체를 자동으로 Mapping 해줌 JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어짐 이 때, JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높임 ORM ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻 ORM 프레임워크를 사용하면 객체를 마치.. [Database] Join이란? Join은 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법으로 두 개의 테이블을 마치 하나의 테이블인 것처럼 보여주는 것입니다. 기본 사용 방법 두 개의 테이블에 하나라도 같은 컬럼이 있어야 함 두 컬럼의 값은 공유 되어야 함 보통 조인을 위해 기본키(Primary Key)와 외래키(Foreign Key)를 활용함 [Database] 정규화란? 정규화는 데이터의 중복 방지, 무결성을 충족 시키기 위해 데이터베이스를 설계하는 것을 의미합니다. 제1정규형: 모든 속성 값이 원자값을 갖도록 분해한다. 제2정규형: 제1정규형을 만족하고, 기본키가 아닌 속성이 기본키에 완전 함수 종속이도록 분해한다. 제3정규형: 제2정규형을 만족하고, 기본키가 아닌 속성이 기본키에 직접 종속하도록 분해한다. BCNF 정규형: 제3정규형을 만족하고, 함수 종속성 X->Y가 성립할 때 모든 결정자 X가 후보키가 되도록 분해한다. [Database] 트랜잭션 격리 수준(Transaction Isolation Levels) 트랜잭션 격리 수준은 고립도와 성능의 트레이드 오프를 조절합니다. Read Uncommitted: 다른 트랜잭션에서 커밋되지 않은 내용도 참조할 수 있음 Read Committed: 다른 트랜잭션에서 커밋된 내용만 참조할 수 있음 Repeatable Read: 트랜잭션에 진입하기 이전에 커밋된 내용만 참조할 수 있음 Serializable: 트랜잭션에 진입하면 락을 걸어 다른 트랜잭션이 접근하지 못하게 함 (성능이 매우 떨어짐) [Database] 트랜잭션 ACID ACID는 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질입니다. Atomicity(원자성): 트랜잭션의 연산은 모든 연산이 완벽하게 수행되어야 하며, 한 연산이라도 실패하면 트랜잭션은 실패해야 합니다. Consistency(일관성): 트랜잭션을 수행하기 전이나 후나 데이터베이스는 항상 일관된 상태를 유지해야 합니다. Isolation(고립성): 트랜잭션은 동시에 실행될 경우 다른 트랜잭션에 의해 영향을 받지 않고 독립적으로 실행되어야 합니다. Durability(내구성): 트랜잭션이 커밋된 이후에는 시스템 오류가 발생하더라도 커밋된 상태로 유지되는 것을 보장해야 합니다. 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야 합니다. [Database] 트랜잭션이란? 트랜잭션(Transaction) 이란 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위라고 할 수 있으며, 트랜잭션에는 여러 개의 연산이 수행될 수 있습니다. 트랜잭션은 수행중에 한 작업이라도 실패하면 전부 실패하고, 모두 성공해야 성공이라고 할 수 있습니다. [Database] 데이터베이스에서 인덱스(Index) 를 사용하는 이유 및 장단점 데이터베이스에서 인덱스를 사용하는 이유는 검색 성능을 향상 시키기 위함입니다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있습니다. 장점으로 빠른 검색 성능을 들 수 있습니다. 단점으로는 인덱스를 구성하는 비용 즉, 추가, 수정, 삭제 연산 시에 인덱스를 형성하기 위한 추가적인 연산이 수행됩니다. 검색 성능을 실질적으로 향상시키기 위해서는 해당 쿼리가 index를 사용하는지, 카디널리티, Selectivity 같은 요소들이 고려된 인덱스가 생성되어야 합니다. 따라서, 인덱스를 생성할 때에는 트레이드 오프 관계에 놓여있는 요소들을 종합적으로 고려하여 생성해야합니다. 이전 1 ··· 6 7 8 9 10 11 12 ··· 17 다음