본문 바로가기
반응형

전체 글350

Git Stash Git Stash 개념 어떤 작업 내용을 개발자가 커밋했다. 이후 다른 업무로 인해 코드를 작성하다가 다른 브랜치로 이동하고 싶어졌다. 바로 git checkout과 switch를 쓰면 다른 브랜치로 이동할 수 있을까? 아쉽게도 그렇지 않다. 커밋하지 않은 코드가 남아있으므로 다른 브랜치로 이동이 불가능하다. 그럼 어떻게 코드를 작성하다가 다른 브랜치로 편하게 넘어갈 수 있을까? 이런 상황에서 스태시(stash)기능을 사용한다. stash를 번역기에 돌려보니 은닉처라고 나온다. 깃은 커밋되지 않은 변경 내용이 남아 있을 때, 현재 작업을 임시로 저장할 수 있는 스태시 기능을 제공한다. 스태시는 현재 워킹 디렉터리 내역을 별도의 스택 영역에 저장해 브랜치가 이동할 때 작업 중인 내용으로 워킹 디렉터리가 충.. 2024. 1. 17.
자바에서 모니터가 동작하는 원리 (with synchronized) 모니터란 모니터란 뮤텍스나 세마포어보다 더 고수준의 동기화 기법이다. 전공 수업에서는 세마포어를 편리하게 사용하기 위해 인터페이스를 제공한 것이 모니터라고 배웠었다. 부족하지만 수업을 듣고 정리해 놓은 글이 있다. https://devdebin.tistory.com/16#%EC%84%B8%EB%A7%88%ED%8F%AC%EC%96%B4-1 임계 구역과 임계 구역 해결 방법 2021. 10. 2. 00:51 2022. 6. 22. 15:30 복습을 위한 수정 시작 프로세스는 독립적으로 작업을 할 수도 있고 공유된 자원을 가지고 공동 작업을 할 수도 있다고 이전 장에서 언급했다. 이번에는 본격적으로 devdebin.tistory.com 자바에서의 모니터 모든 자바 객체는 모니터를 가진다. 여러 스레드가 객체.. 2023. 12. 28.
MySQL Full Text (with QueryDsl) 전문 검색 인덱스 문서의 내용 전체를 인덱스화해서 특정 키워드가 포함된 문서를 검색하는 전문(Full Text)검색에는 InnoDB, MyISAM 스토리지 엔진에서 제공하는 일반적인 용도의 B-Tree 인덱스를 사용할 수 없다. 문서 전체에 대한 분석과 검색을 위한 인덱싱 알고리즘을 전문 검색 인덱스라고 하는데, 전문 검색 인덱스는 일반화된 기능의 명칭이지 전문 검색 알고리즘의 이름을 지칭하는 것은 아니다. 전문 검색 인덱스 알고리즘 전문 검색 인덱스는 문서의 키워드를 인덱싱하는 기법에 따라 크게 단어의 어근 분석과 n-gram 분석 알고리즘으로 구분할 수 있다. 예전에는 구분자도 하나의 알고리즘으로 평가됐지만 어근 분석과 n-gram 분석 알고리즘에 포함되었다. 어근 분석 알고리즘 MySQL 서버의 전.. 2023. 12. 16.
Java Thread (version 2) Java Thread 자바 스레드는 JVM에서 User Thread를 생성할 때 시스템 콜을 통해서 커널에서 생성된 커널 스레드와 1:1로 매핑이 되어 최종적으로 커널에서 관리된다. JVM에서 스레드를 생성할 때마다 커널에서 자바 스레드와 대응하는 커널 스레드를 생성한다. 자바에서는 플랫폼 스레드로 정의되어 있다. 즉 OS 플랫폼에 따라 JVM이 사용자 스레드를 매핑하게 된다. 스레드 생성은 Thread 클래스를 상속하는 방법과 Runnable 인터페이스(함수형 인터페이스)를 구현하는 방법이 있다. Thread 실행 및 종료 자바 스레드는 OS 스케줄러에 의해 실행 순서가 결정되며 스레드 실행 시점을 JVM에서 제어할 수 없다. 새로운 스레드는 현재 스레드와 독립적으로 실행되고 최대 한번 시작할 수 있고.. 2023. 12. 14.
ElasticSearch 기초와 동작 과정 ElasicSearch 소개 검색 엔진 엘라스틱서치는 루씬 기반의 오픈소스 검색 엔진이다. 단순한 텍스트 매칭 검색이 아닌 full-text-search가 가능하며 다양한 종류의 검색 쿼리를 지원한다. 다양한 애널라이저를 조합해 여러 비즈니스 요구사항에 맞는 색인을 구성할 수 있고 형태소 분석도 가능하다. full-text-search란? (MongoDB 사이트 왈) 전체 텍스트 검색(full-text search)"은 전자적으로 저장된 방대한 텍스트 데이터에서 특정 텍스트를 검색하고, 쿼리에서 지정된 단어 중 일부 또는 전체가 포함된 결과를 반환하는 것을 의미합니다. 이에 비해 전통적인 검색은 정확한 일치만을 반환하는 것이 특징입니다. 분산 처리 엘라스틱 서치는 분산 처리를 고려하여 설계됐다. 데이터를.. 2023. 12. 13.
equals()와 hashCode() 자바에서 모든 클래스는 Object 클래스를 부모 클래스로 가진다. Object 클래스에는 equals()와 hashCode()가 있다. 오늘은 이 둘에 대해 정리해보려고 한다. 동등성과 동일성 동일성은 두 객체가 동일한 인스턴스임을 의미하며 == 연산자로 확인이 가능하다. 동등이란 두 객체가 동일한 상태나 값을 갖는다는 것을 의미하며, equals 메서드로 확인할 수 있다. 동일성은 동등하다고 말할 수 있지만, 동등하다고해서 동일성을 가진다고 말할 수는 없다. equals() public boolean equals(Object obj) { return (this == obj); } equals()는 객체가 동등한지(논리적 동치성, 동등성)를 검사한다. 기본적으로 Object 클래스의 equals 메서드.. 2023. 12. 13.
반응형