[JPA] 엔티티 equals 오버라이딩 괜찮을까?최근에 한 딜레마에 빠졌다. 레포지토리에 대한 테스트 코드를 짜고 있었는데, 확실한 DB 조회 확인을 위해 영속성 컨텍스트를 초기화(em.clear)하면서 문제가 생겼다. 테스트에서 em.clear()을 했을 때의 예시 @BeforeEach 에서 먼저 필드에 더미 데이터를 넣어준다. 추후의 테스트를 편리하게 할 목적의 필드이다. // ... public class MemberRepositoryTest { // ... ...Oct 26, 2023·3 min read
[database] 정규화정규화(Normalization) 데이터 이상(data anomaly) : 릴레이션 처리 과정에서 불필요한 데이터 중복으로 인해 발생하는 부작용 일단 아무 생각 없이 릴레이션을 짰을 때 무슨 문제가 생기는지 알아보자. 여기 Student 릴레이션이 있다. 학번이름학과학과 위치나이 170원석컴퓨터SW304호27 180영두컴퓨터SW304호24 181성욱정보보호303호24 얼핏 보면 별 문제 없어보이고 검색(SELECT)까지만 해...Feb 7, 2023·4 min read
[database] 키와 제약 조건릴레이션(Relation)과 키(Key) 관계형 데이터 모델 관계형 데이터베이스 개념은 관계형 데이터 모델에 기반하고 있다.관계형 데이터 모델은 이론적으로는 릴레이션(relation)이라는 수학적 집합 개념에 기초하고 있다. 관계 모델에서 릴레이션(relation)은 동일한 구조로 이뤄진 튜플(tuple)의 집합을 말한다.쉽게 표현하면 릴레이션은 2차원 테이블(table) 형태의 단순한 구조다. 테이블 개념은 내부 저장 구조에 대한...Feb 4, 2023·3 min read
[database] 관계형 데이터베이스데이터베이스 데이베터이스점 시스템을 쓰는 이유 과거에는 파일 시스템에 많은 문제 파일 정보 시스템의 문제점: 데이터 중복성, 비일관성 검색의 비효율성 데이터들간에 연결성 부족(여러 파일에 같은 종류의 데이터가 흩어져있을 수 있음) 동시 접근 불가능 및 데이터 무결성 부족(여러 사용자가 접근할 때 데이터에 손상이 생길 수 있다) 복구 어려움 데이터베이스 관리 시스템(DBMS)의 장점: 데이터의 독립성물리적 독립성 : 데이터베이스 사이즈...Jan 31, 2023·2 min read
[자료구조] B-treeB-tree와 B+tree B-tree란? : 이진트리를 확장한 자료구조 탐색 성능을 높이기 위해 평소에 데이터들의 높이를 균형있게 유지하는 Balanced Tree의 일종이다. 노드에는 2개 이상의 데이터(key)가 들어갈 수 있다. 하나의 노드가 가질 수 있는 자식의 최대 숫자가 2보다 크다. 모든 단말(leaf) 노드는 같은 레벨에 있어야 한다. 항상 균형을 유지한다 (균형 잡힌 트리). 최대 M개의 자식을 가질 수 있는 B 트리를 M차...Jan 28, 2023·3 min read
[자료구조] 우선순위 큐와 힙우선순위 큐와 힙(Binary Heap) 우선순위 큐란? 데이터들이 우선순위를 가지고 있어, 우선순위가 높은 데이터부터 먼저 나가는 큐. 특정 순서대로 기다리고 있는 데이터들을 저장한다는 점에서 큐와 비슷하다.그러나 큐는 FIFO인 반면, 우선순위 큐는 PFO(Priority First Out)라는 점에서 차이가 있다. (PFO는 내가 만들어낸 단어다.) 우선순위 큐가 쓰이는 컴퓨터의 작업 스케줄링(운영체제 내용)에서는 우선순위에 따라 ...Jan 25, 2023·3 min read
[자료구조] 그래프Graph (그래프) 그래프란? 그래프 : 정점(vertex)과 간선(edge)으로 이뤄진 비선형 자료구조.현실 세계의 사물, 객체, 추상적인 개념 간의 연결 관계를 표현한 것 그래프는 정점(Vertex, node)과 간선(edge)으로 이뤄진 비선형 자료구조이며 정점과 간선들의 유한 집합이라고 할 수 있다.e.g. 도시들을 연결하는 도로망, 사람들의 지인 관계, 네트워크, 웹 사이트 간의 링크 관계 그래프에는 부모 자식 관계에 대한 제약이 ...Jan 23, 2023·4 min read