분류 전체보기
-
SpringBoot+Neo4j [1. 하나의 노드 엔티티만을 가지는 GraphDB프로젝트]NOSQL/Neo4j 2021. 11. 9. 14:57
목차 graphDB neo4j를 이해하기 위해 SpringBoot를 이용하여 기본적인 프로젝트부터 진행하기로 했다. graphDB를 이해하기 위한 이론적 요소는 개발을 진행하며 하나하나 다루도록 하겠다. 첫번째 프로젝트가 가질 데이터 구조는 다음과 같다. 해당 노드 엔티티에 대하여 CRUD를 수행할 것이다. CRUD를 수행하기 위해 기존에 사용하던 RDBMS의 쿼리와는 다른, CyperQuery를 사용하게 된다. 우선 노드와 CyperQuery가 무엇인지부터 알아보자. 노드란? 노드는 라벨과 속성(properties)으로 이루어져있다. 라벨은 테이블 이름에 대응되고, 속성은 칼럼명에 대응된다고 이해하면 편하다. 위 노드를 RDBMS모델로 표현하자면 다음과 같이 표현될 수 있을 것이다. 이외에도 노드에는 ..
-
SpringBoot+Neo4j [CRUD 기능 구현]NOSQL/Neo4j 2021. 11. 9. 14:38
Spring을 이용한 Neo4j의 CRUD Method들을 살펴보겠다. 아래 코드를 꼭 참고하며 보는 것을 추천한다. https://github.com/alska95/Spring_Neo4j_Project 앞서 언급한 것처럼 SpringDataNeo4j가 제공하는 3가지 방법을 통해 다뤄보겠다. 1.Neo4jRepository 를 이용하는 방법 2.Neo4jClient를 이용하는 방법 3.Driver을 이용하는 방법 a. Create neo4jRepository 이용 아래와 같이 neo4jRepository의 save를 이용하는 방법이 있다. save 구현 메소드는 Neo4jTemplate클래스의 saveImpl을 참고하면 되는데 복잡하다. 본 프로젝트같이 단순한 프로젝트에서는 pk가 중복되면 업데이트를 ..
-
SpringBoot+Neo4j [Neo4jRepository에 관하여]NOSQL/Neo4j 2021. 11. 9. 14:28
Neo4jRepository에 대해 살펴보도록 하겠다.SpringDataJPA와 유사한 SpringDataNeo4jNeo4jRepository는 JPARepository처럼 PagingAndSortingRepository를 상속받으며, JPARepository처럼 메소드명 기반 구현체를 구현하는 기능을 제공해 준다. 또 @Query 어노테이션을 지원한다. (@NamedQuery는 지원하지 않는 듯하다.)@Query안에 CyperQuery를 집어넣어 사용한다. 아래와 같이 사용할 수 있다.@Query로 직접 구현한 findSearchResults와Neo4jRepository가 메소드 이름을 기준으로 구현해주는 findAllByTitleLike메소드는 동일하게 동작한다. Neo4jRepository는 구현..
-
[Java , BaekJoon] 자바로 백준 입력 받는 법 정리Java/BaekJoon 2021. 6. 29. 20:08
백준 문제를 자바로 풀다 보면, Scanner 대신 BufferedReader을 사용해야만 하는 문제들이 있다. 필자의 경우에는 10815번 문제를 올바르게 풀었음에도 계속 시간 초과가 나는 상황을 맞닥뜨렸다. 이때 Scanner 보다 성능이 좋은 BufferedReader에 대해 알게 되었고 , 시간 초과를 해결할 수 있었다. 본 포스트는 이에 대한 정리이다. 성능 차이에 대한 글 : https://algospot.com/forum/read/2496/ BufferedReader 사용하려면 main클래스에 throws IOException을 추가해 주어야 한다. public static void main(String[] args) throws IOException readLine을 사용하여 한 줄씩 읽어..