본문 바로가기

분류 전체보기

(359)
Spring Data - MongoDB&queryDsl 예제 오늘 다루어볼 내용은 spring data mongo + querydsl 연동 및 간단한 예제를 다루어볼 것이다. 예제 환경은 아래와 같다. - gradle : 6.4.1 - spring boot : 2.3.1.RELEASE 모든 코드는 아래 깃헙을 참고하자. yoonyeoseong/spring-mongo-querydsl Contribute to yoonyeoseong/spring-mongo-querydsl development by creating an account on GitHub. github.com 아래는 spring data mongo와 querydsl 연동을 위한 gradle 설정이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..
Spring Data - 여러 spring data module을 사용할때 레퍼런스 Spring Data MongoDB - Reference Documentation As of version 3.6, MongoDB supports the concept of sessions. The use of sessions enables MongoDB’s Causal Consistency model, which guarantees running operations in an order that respects their causal relationships. Those are split into ServerSession inst docs.spring.io
Gradle - 캐시된 dependencies 라이브러리 삭제하기 > $HOME/.gradle/caches/modules-2/files-2.1/ > rm -rf > ./gradlew --refresh-dependencies
알고리즘 - 다중 문자열 패턴 검색 알고리즘 아호 코라식(Aho-corasick) https://github.com/robert-bor/aho-corasick/tree/master/src/main/java/org/ahocorasick/trie robert-bor/aho-corasick Java implementation of the Aho-Corasick algorithm for efficient string matching - robert-bor/aho-corasick github.com https://www.slideshare.net/ssuser81b91b/ahocorasick-algorithm Aho-Corasick Algorithm(아호 코라식 알고리즘) Aho-Corasick Algorithm 장홍준 hongjun7@korea.ac.kr www.slideshare.net
Git - git reset, revert란(깃 커밋 되돌리기)? 오늘 다루어볼 내용은 평소에 조금 헷갈렸던 Git reset과 revert이다. 깃에서 되돌리기 위한 방법은 크게 2가지가 있다. 바로 reset과 revert이다. 그렇다면 둘의 차이점은 무엇일까? reset : 시계를 마치 과거로 돌리는 듯한 행위 revert : 특정 사건을 없었던 일로 만드는 행위 git reset "돌아가고 싶은 커밋 hash" 먼저 reset을 알아보자. reset은 특정 커밋으로 돌아가는 행위다. 그말은 특정 커밋 이후의 커밋이력 모두 없어지게 되는 것이다.(물론 옵션마다 상태가 다르긴하다) reset에는 옵션이 3가지가 있다. hard, soft, mixed 각 옵션에 대한 설명은 아래와 같다. hard : 돌아가려는 커밋 이후의 모든 내용을 다 지워버린다. soft : 돌..
Docker - 도커를 이용해 Single node Kafka 띄우기 이번 포스팅은 간단하게 싱글 노드 카프카를 도커로 띄우는 방법이다. git clone https://github.com/wurstmeister/kafka-docker cd kafka-docker 설정 파일은 docker-compoese로 되어있으며, 아래와 같다. version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: build: . ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_CREATE_TOPICS: "test:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volum..
Springboot - reactive mongo driver 사용시 ClusterSettings 시 유의사항 MongoDbConfig를 작성할때, 몽고디비 서버 호스트관련하여 ClusterSettings.Builder를 작성해줘야하는데, mongo host에 모든 클러스터 서버 호스트를 명시하지 않고, 하나의 DNS(여러 서버를 하나로 묶은) 혹은 여러 서버 리스트 중 하나의 primary 호스트(ex. primary host를 명시하면 밑에 예외는 발생하지 않지만, 읽기 부하분산이 안된다.)만 명시한경우에는 반드시 multiple mode를 명시해주어야 한다. 내부적으로 host의 갯수를 보고 single mode인지 multiple mode인지 판단하기 때문이다. 해당 코드는 아래와 같다. private ClusterSettings(final Builder builder) { // TODO: Unit tes..
Java - jdk 14 record(레코드) 란?! Data class(데이터 클래스) 오늘 다루어볼 내용은 java 14에서 도입된 record 타입의 클래스입니다. record란? 레코드(record)란 "데이터 클래스"이며 순수하게 데이터를 보유하기 위한 특수한 종류의 클래스이다. 코틀린의 데이터 클래스와 비슷한 느낌이라고 보면 된다. 밑에서 코드를 보겠지만, record 클래스를 정의할때, 그 모양은 정말 데이터의 유형만 딱 나타내는 듯한 느낌이다. 훨씬더 간결하고 가볍기 때문에 Entity 혹은 DTO 클래스를 생성할때 사용되면 굉장히 좋을 듯하다. sample code 간단하게 샘플코드를 살펴보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class SampleRecord { private final ..