DB/개념 정리 4

[용어 정리] DAO, DTO, VO, Mapper, Repository, Entity

개요 회의에 들어가면 저를 포함해서 DAO와 Repository, DTO와 VO를 혼용해서 사용하는 사람들이 많습니다. 이번 기회에 위 용어들의 개념을 정리하면서 차이점을 명확하게 짚고 가고자 합니다. * 출처에 남긴 블로그 및 유튜브를 많이 참고했습니다. 보다 자세한 내용은 출처를 확인해 주시면 감사하겠습니다! Entity DB 테이블을 표현하는 객체 (실제 DB와 매핑되는 객체) DB 테이블 내 모든 칼럼을 필드로 갖는 클래스로 비즈니스 로직을 갖는 메서드를 선언 가능 엔티티의 가장 큰 특징은 식별자를 가진다는 것 식별자 외 필드 데이터가 변경된다고 하더라도 식별자는 동일하기 때문에 해당 객체가 다른 객체가 되는 것은 아님 후술 하겠지만 VO와 Entity의 차이점은 Entity의 경우 식별자가 있지..

DB/개념 정리 2023.11.06

[DB] 트랜잭션과 DB Lock 정리

데이터를 DB에 저장하는 이유: 트랜잭션 서비스를 개발하면 자연스럽게 데이터를 데이터베이스에 저장하게 되는데 한 번쯤은 아래와 같은 의문이 들 때가 있습니다. 데이터를 파일에 저장할 수도 있지 않을까? DB를 사용하는 여러 가지 이유가 있겠지만 그중 대표적인 이유는 데이터베이스가 트랜잭션이라는 기능을 지원하기 때문입니다. 트랜잭션은 직독직해하자면 거래라는 뜻이고 해당 기능은 아래에 열거할 ACID 원칙을 따르기 때문에 데이터 정합성 및 안전성을 보장해줘야 합니다. 원자성(Atomicity): 트랜잭션 내에서 실행할 작업들은 마치 하나의 작업인 것처럼 모두 성공하거나 모두 실패하도록 처리 일관성(Consistency): 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지하며 DB에서 정한 무결성 제약 조..

DB/개념 정리 2023.03.20

[DB] Connection Pool 정리

기존에 작성한 JDBC 정리글을 먼저 읽고 오시면 내용을 이해하는데 도움이 될 것 같습니다. https://jaimemin.tistory.com/2266 JDBC 정리 JDBC란? JDBC(Java Database Connectivity)는 Java에서 DB에 접속할 수 있도록 하는 자바 API입니다. 시중에 다양한 DB가 존재하는데 각각의 데이터베이스마다 연결하는 방법, SQL을 전달하는 방법, 그리고 응답 jaimemin.tistory.com Connection Pool 데이터베이스에 연결을 할 때는 아래와 같이 복잡한 과정을 거쳐야 합니다. 비즈니스 로직이 JDBC 드라이버를 통해 커넥션을 조회 JDBC 드라이버는 DB와 TCP/IP 연결을 진행 (3 way handshake) TCP/IP 연결되면..

DB/개념 정리 2023.03.20

[DB] JDBC 정리

JDBC란? JDBC(Java Database Connectivity)는 Java에서 DB에 접속할 수 있도록 하는 자바 API입니다. 시중에 다양한 DB가 존재하는데 각각의 데이터베이스마다 연결하는 방법, SQL을 전달하는 방법, 그리고 응답을 받는 방법이 모두 상이하므로 기존에는 개발자들이 새로운 DB를 사용할 때마다 위 과정을 새로 학습하며 코드를 수정해야 했습니다. 이러한 애로사항 때문에 JDBC라는 자바 표준이 생겼고 이를 통해 개발자들은 아래의 장점을 얻을 수 있었습니다. DB 변경할 때마다 DB 접근하는 코드를 수정하는 대신 추상화된 JDBC 인터페이스 의존하여 개발 JDBC 표준 인터페이스만 학습하면 학습한 내용을 수십 개의 데이터베이스에 동일하게 적용 가능 JDBC는 대표적으로 아래와 같..

DB/개념 정리 2023.03.17