전체 글

공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
Git

Git Stash

Git Stash 개념 어떤 작업 내용을 개발자가 커밋했다. 이후 다른 업무로 인해 코드를 작성하다가 다른 브랜치로 이동하고 싶어졌다. 바로 git checkout과 switch를 쓰면 다른 브랜치로 이동할 수 있을까? 아쉽게도 그렇지 않다. 커밋하지 않은 코드가 남아있으므로 다른 브랜치로 이동이 불가능하다. 그럼 어떻게 코드를 작성하다가 다른 브랜치로 편하게 넘어갈 수 있을까? 이런 상황에서 스태시(stash)기능을 사용한다. stash를 번역기에 돌려보니 은닉처라고 나온다. 깃은 커밋되지 않은 변경 내용이 남아 있을 때, 현재 작업을 임시로 저장할 수 있는 스태시 기능을 제공한다. 스태시는 현재 워킹 디렉터리 내역을 별도의 스택 영역에 저장해 브랜치가 이동할 때 작업 중인 내용으로 워킹 디렉터리가 충..

개발/Java

자바에서 모니터가 동작하는 원리 (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 자바에서의 모니터 모든 자바 객체는 모니터를 가진다. 여러 스레드가 객체..

Database/MySQL

MySQL Full Text (with QueryDsl)

전문 검색 인덱스 문서의 내용 전체를 인덱스화해서 특정 키워드가 포함된 문서를 검색하는 전문(Full Text)검색에는 InnoDB, MyISAM 스토리지 엔진에서 제공하는 일반적인 용도의 B-Tree 인덱스를 사용할 수 없다. 문서 전체에 대한 분석과 검색을 위한 인덱싱 알고리즘을 전문 검색 인덱스라고 하는데, 전문 검색 인덱스는 일반화된 기능의 명칭이지 전문 검색 알고리즘의 이름을 지칭하는 것은 아니다. 전문 검색 인덱스 알고리즘 전문 검색 인덱스는 문서의 키워드를 인덱싱하는 기법에 따라 크게 단어의 어근 분석과 n-gram 분석 알고리즘으로 구분할 수 있다. 예전에는 구분자도 하나의 알고리즘으로 평가됐지만 어근 분석과 n-gram 분석 알고리즘에 포함되었다. 어근 분석 알고리즘 MySQL 서버의 전..

개발/Java

Java Thread (version 2)

Java Thread 자바 스레드는 JVM에서 User Thread를 생성할 때 시스템 콜을 통해서 커널에서 생성된 커널 스레드와 1:1로 매핑이 되어 최종적으로 커널에서 관리된다. JVM에서 스레드를 생성할 때마다 커널에서 자바 스레드와 대응하는 커널 스레드를 생성한다. 자바에서는 플랫폼 스레드로 정의되어 있다. 즉 OS 플랫폼에 따라 JVM이 사용자 스레드를 매핑하게 된다. 스레드 생성은 Thread 클래스를 상속하는 방법과 Runnable 인터페이스(함수형 인터페이스)를 구현하는 방법이 있다. Thread 실행 및 종료 자바 스레드는 OS 스케줄러에 의해 실행 순서가 결정되며 스레드 실행 시점을 JVM에서 제어할 수 없다. 새로운 스레드는 현재 스레드와 독립적으로 실행되고 최대 한번 시작할 수 있고..

Debin
리팩토링하는 블로그