본문 바로가기

전체 글161

Intrinsic Lock 고유락 개념 고유 락 Java의 모든 객체는 각자 고유한 lock을 가지고 있다. synchronized 블록은 고유 락을 통해 스레드 접근 제한 Synchronized 블록 synchronized(객체){ … } 를 통해 블록 생성 가능 public synchronized int 처럼 접근제어자 뒤에 붙여 객체를 생성할 필요 없이 블록 생성 가능 재진입 가능성(Reentrancy) lock을 획득한 thread가 lock을 얻기 위해 대기할 필요가 없는 상태 lock을 획득하는 것은 호출 단위가 아니라 스레드 단위이다. 하나의 스레드가 synchronized로 선언된 메서드에 접근하고 그 안에 또 다른 synchronized로 선언된 메서드를 호출하는 상황에서 스레드가 lock을 가지고 있기 때문에 호.. 2023. 4. 6.
Inverted Index Inverted Index 개념 Inverted Index(역인덱스) 내용과 그것이 위치한 위치를 자료구조로 표현한 것 인덱스와의 차이 방향성에 차이가 존재 인덱스는 doc Id와 내용을 매핑하지만 역 인덱스는 내용과 그 내용이 위치한 doc Id를 매핑한다. 검색 방식 인덱스 전통적인 RDBMS에서는 like 검색을 사용 매핑되는 내용 중에 찾으려는 내용을 row마다 탐색한다. 데이터가 많으면 검색 대상이 증가하여 검색 시간이 증가한다. 역인덱스 elastic search에서 사용 데이터를 저장할 때 내용을 파싱 하여 추출된 키워드를 텀(term)이라고 하고 이 키워드를 통해 검색 데이터가 늘어나도 역인덱스가 가리키는 id가 증가하기 때문에 탐색 속도가 상대적으로 빠르다. Reference https:.. 2023. 4. 5.
Casting Casting 개념 casting 형변환이라고도 하며 다른 타입의 정보도 가지고 있어 변환 가능할 경우 사용 목적 다형성을 통해 오버라이딩 된 함수를 분리해서 활용 가능 상속을 통해 프로그래밍 가능 종류 묵시적 형변환 캐스팅이 자동으로 발생 업캐스팅에서 사용 상위 클래스에게 하위 클래스 객체를 할당하는 경우 형변환 기호를 붙이지 않아도 된다. 명시적 형변환 캐스팅 내용을 직접 작성 다운 캐스팅에서 사용 상위 클래스의 객체를 하위 클래스 형태로 변환 소괄호를 통해 구현 Reference https://gyoogle.dev/blog/computer-language/Java/Casting.html 2023. 4. 4.
Join Join 개념 Join 두 개 이상의 테이블을 연결하여 데이터를 검색할 때 사용하는 sql 문의 하나이다. 종류 Inner Join ON 절의 조건을 만족하는 데이터만 가져와서 출력 Natural Join 두 테이블에서 동일한 칼럼명을 가지는 칼럼이 모두 내부 조인된다. 타입과 이름이 동일한 칼럼명이 존재해야 한다. Full Outer Join 공통된 부분뿐만 아니라 두 테이블의 모든 데이터를 가져온다. mySQL에서는 지원하지 않기 때문에 Left Outer Join과 Right Outer Join을 union해야 한다. Left Outer Join 왼쪽 테이블을 기준으로 일치하는 행만 결합하고 일치하지 않는 부분은 null로 채운다. Right Outer Join 오른쪽 테이블을 기준으로 일치하는 행.. 2023. 4. 3.