본문 바로가기

반응형

전체 글

Neo4j - Cypher 언어 Cypher Query 그래프 데이터베이스 질의어로, 다른 질의어에 비해 단순하지만 강력한 질의어. Cypher Query는 그래프 데이터베이스 Neo4j사가 만들었으나 2015년 10월 오픈 사이퍼 프로젝트를 통해 개방됨. Cypher Query는 프로퍼티 그래프 모델에 기반을 두며, 노드와 엣지의 표준 그래프 요소들에 레이블(label)과 프로퍼티(property)를 추가해서 데이터베이스화 할 수 있다. 예시 CREATE CREATE : Data를 만드는 구문 () : Node 단위 {} : 속성 추가 변수:라벨 : 변수, 라벨로 node 구분 [] : 관계 설명 CREATE(길동:학생 {이름:"홍길동", 학년:"3학년"}) CREATE(수학:과목 {담당선생님:"장발산", 경력: "3년"}) CREA.. 더보기
Neo4j 개요 Neo4j Neo4jwiki ACID 트랜잭션 지원 Native 그래프 DB Cypher 쿼리 언어 제공 그래프 DB와 Neo4j 그래프 DB란 데이터 간의 관계를 일급 엔티티로 다룰 수 있도록 설계된 데이터베이스이다. 관계형 데이터베이스의 경우 검색 시점에 저장된 관계를 이용하는 반면, 그래프 DB는 데이터 간의 관계를 저장 시점에 저장한다. 그래프 DB의 핵심 요소는 Node와 Relation이다. 노드 그래프 엔티티로서 역할에 따른 레이블을 가짐 예) Employee, Company, City 관계 두 노드 사이의 관계 예) :HAS_CEO, :LOCATED_IN 레이블 여러 노드를 하나의 집합으로 묶기 위해서 사용하는 이름을 가지는 그래프 구조체 도메인 객체의 역할을 식별함으로써 레이블을 식별할 .. 더보기
HADOOP 이란 1. 하둡이란? 하둡은 검색엔진을 개발하는 과정에서 대용량의 비정형 데이터를 기존의 RDB 기술로는 처리가 힘들다는 것을 깨닫고, 새로운 기술을 찾는 중 구글에서 발표한 GFS(Google File System)과 MapReduce 관련 논문을 참고하여 개발되었다. 하둡은 하나의 성능 좋은 컴퓨터를 사용하는 대신 적당한 성능의 범용 컴퓨터 여러 대를 클러스터화하고, 큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것을 목적으로 하는 분산처리를 위한 오픈소스 프레임워크라고 할 수 있다. - 맵리듀스 원리: 1) Map: 흩어진 데이터를 key, value로 데이터를 묶어줌 2) Reduce: Map 단계의 key를 중심으로 필터링 및 정렬 2. 하둡 에코시스템 1) Zookeep.. 더보기
인구조사 데이터를 활용하여 캘리포니아의 주택 가격 모델 만들기 1. 작업환경 만들기 export ML_PATH="$HOME/ml" mkdir -p $ML_PATH pip3 --version pip3 install --upgrade pip pip3 install --user --upgrade virtualenv // 에러 -> sudo -H pip install virtualenv 1-2. 독립적인 환경 만들기 cd $ML\_PATH virtualenv env source env/bin/activate // 활성화 환경이 활성화되면 어떤 패키지든 독립된 이 환경에 설치되고 파이썬은 이 패키지만 사용하게 된다. 1-3. 패키지 설치 pip3 install --upgrade jupyter matplotlib numpy pandas scipy scikit-learn pip.. 더보기
JAVA string 관련 메소드 1. length() 문자열의 길이 확인 String str = "abcde"; str.length(); 2. isEmpty() 문자열이 비어있는지 확인한다. 문자열의 길이가 0이면 true, 0이 아니면 false반환 3. charAt 문자열 중 해당 인덱스의 문자를 반환한다. (인덱스는 0~문자열의길이 - 1) 4. getChars 문자열을 문자배열로 복사 String str = new String("abcd"); char [] ch = new char[4]; str.getChars(0,2,ch,0); // 시작 인덱스, 끝 인덱스, 복사받을 char 배열 이름, 복사 시작 위치 //ch에는 "ab" 배정 5. equals 해당 문자열과 매개변수의 문자열이 같은지 비교하여 true 또는 false 반.. 더보기
정규 표현식(=정규식) 참고 링크는 여기입니다. 정규식 패턴은 /abc/ 같이 단순 문자로 구성될 수 있고, /ab*c/ 또는 /Chapter (\d+)\.\d+/ 와 같이 단순 문자와 특수 문자의 조합으로도 구성될 수 있습니다. 1. 단순 패턴 사용하기 단순 패턴은 문자열을 있는 그대로 대응시키고자 할 때 사용됩니다. 예를 들어, /abc/라는 패턴은 문자열에 정확히 'abc'가 순서대로 나타나야 대응됩니다. 2. 특수 문자 사용하기 Character Meaning \ - 특수 문자가 아닌 문자 앞에 사용된 백슬래시는 '해당 문자는 특별하고, 문자 그대로 해석하면 안된다'는 사실을 가리킨다. 예를 들어, 앞에 \가 없는 'b'는 보통 소문자 b가 나오는 패턴과 대응되지만 '\b'는 어떤 문자와도 대응되지 않는다. - 특수 문.. 더보기
node 버전 관리하기 expo 를 사용하여 react-native 앱 개발 도중 expo init 명령어가 error가 뜨길래 확인해보니 다음과 같은 에러가 발생했다. 즉, node.js 버전이 안맞는다는 것이다. 따라서 나는 여기를 비롯해서 많은 구글링을 통해 버전 12.10.0(최신버전) 설치에 완성했다. 그런데, 딱 봐도 뭔가 설치는 됐는데 12.10.0에선 활동하지 않아 라고 보이는 이 결과 문구를 보고 두근 거리며 다시 expo init을 실행시켜봤지만 위와 동일한 에러가 발견됐다. 설치는 확실히 되어있었고 brew, npm 계속 반복해서 같은 버전 설치를 반복(삽질)하는 도중에 이상함을 느꼈다. 원래 설치 가이드 대로라면 명령어 n 을 입력한 후 사용하고 싶은 node version을 누르면 해당 버전이 실행이 되.. 더보기
defaultdict defaultdict()는 딕셔너리를 만드는 dict 클래스의 서브클래스이다. 작동방식은 dict 클래스와 거의 동일하나 인자로 주어진 객체의 기본값을 딕셔너리의 초기값으로 지정할 수 있는 것이 차이점이다. from collections import defaultdict int_dict = defaultdict(int) 위와 같이 설정을 하면 값을 지정하지 않은 키는 그 값이 0으로 지정된다. 따라서 지정하지 않은 키 값에 대해서 조회할 경우, 자동으로 0값이 value로 주어지며 key-value가 defaultdict에 저장된다. int_dict['key2'] = 'test' 위와 같이 키에 명시적으로 값을 지정하게 되면 그 값이 지정된다. 이외에도 default 값으로 list를 주게되면 지정하지 .. 더보기

반응형