분류 전체보기 67

2. Vertex와 Edge

Vertex 혹은 Node, Edge 혹은 Relationship 에 대한 개념을 먼저 짚고넘어가야합니다. 이 두가지는 Graph Database를 이루는 모든 것이라고 봐도 무방하며 모든 결과물은 이 두가지를 이용하여 만들게 됩니다. Vertex 는 RDB에서 레코드 혹은 튜플과 유사하며 우리가 흔히 알고있는 데이터 그자체입니다.그러나 몇가지 특징을 가지고있는데레이블이라는 카테고리로 묶을수 있지만 RDB의 TABLE처럼 정형데이터만 취급할 수 있는 형태가 아닌 다양한 형태의 데이터를 다룰 수 있도록 설계되어 있습니다. 저장소에 따라 인덱스를 같이 저장할수있는 유형이 있고 (Neo4j) 간접적으로 인덱싱을 지원하는 경우도 있습니다 (TinkerPop) Vertex 안에는 프로퍼티라는 이름의 속성값을 넣을..

1. Gremlin과 Cypher

GraphDatabase는 안타깝게도 SQL처럼 표준언어가 없고 현재 Gremlin, SPARQL, Cypher로 파편화 되어있는데요 다행히 저희회사에는 아마존 넵튠을 사용하기에 세가지 언어를 모두 사용할 수 있었습니다 (Cypher는 OpenCyper지만요) 각 언어의 특징을 아주 짧게 요약하면 우선 SPARQL은 학술적으로 많이 사용되고 있습니다, Graphdatabase 논문을 찾아보시면 SPARQL을 많이 사용하는걸 보시게 될겁니다. 현업에서는 Gremlin과 Cyper로 나뉘는데 상용 그래프데이터베이스의 대표인 Neptune 이 Gremlin을 오픈소스의 대표인 Neo4j 가 Cypher를 표준으로 채택했기 때문으로 보입니다. 개인적인 소감으로는 Cypher가 훨씬 직관적이고 쉽지만 복잡성이 증..

0. 자연스러운 데이터베이스 Graph Database

RDB와 SQL은 오랜기간 동안 개발자들의 동반자였고, 끊임없이 개선되고 발전해왔으나 수십년의 시간이 지나면서 많은 문제점이 노출되었습니다. 가장 큰 문제는 두가지 형태로 나타났는데 1. 비정형 데이터의 저장 2. 부자연스러운 탐색 이를 해결하기 위해 NoSQL (not only sql) 이 등장하게 되는 것은 자연스러운 현상이였습니다. 수 많은 NoSQL 중에서 오늘 이야기해볼 대상은 Graph Database입니다. 아이디어는 간단합니다. 기존의 SQL에서는 데이터간의 관계를 FK로 정의하고 JOIN 을 통해 데이터를 가져올수 있었습니다 그러나 Graph Database 세계에서는 관계라는 부분을 더욱더 강화하여 관계를 데이터와 동격으로 승격시킨 방식이라고 할 수 있습니다. 예를들어 관계자체가 검색조..

1. 행복 = 성취 / 욕망

Happiness equals consumption divided by desire - Paul Samuelson 행복을 추구하는 방법은 단순하게 성취를 늘리고 욕망을 줄이는 것에 집중하면 됩니다. 그러나 안타깝게도 성취를 늘릴수록 욕망이 따라오게 되고 성취가 꺾였을 때 같이 올라온 욕망은 매우 느리게 줄어듭니다. 또 어느 정도 욕망이 없으면 뛰어난 성취를 이뤄내기도 힘듭니다, 성취라는 불꽃은 욕망이라는 장작이 필요한 셈이지요. 우리는 가끔 부자이면서 검소한 생활을 하는 사람을 볼 수 있습니다. 그런 분들을 보며 존경심을 가지고 추앙하고 언론에서는 성인이라고 추켜세웁니다. 그러나 오해하면 안 되는 것이 이 세상에 모든 것에는 예외가 있습니다. 사람은 모두 똑같지 않고 같은 프로세스로 생각하지 않습니다. ..

행복론 2023.04.23

0. 우리는 행복을 목표로 해야한다

사람이 인생을 살면서 수많은 가치관을 가질 수 있고 누군가에겐 중요하지만, 누군가에겐 중요하지 않은 목표가 있을 수도 있습니다. 그러나 행복만큼은 모두가 추구해야 될 궁극적인 목표입니다. 사람은 저마다 살아온 궤적이 다르고 환경도 다릅니다. 그러나 이 세상에 태어난 모두는 행복을 추구하며 살다가 죽을 것이라는 겁니다. 하지만 대부분의 사람은 행복을 쫓아가지 않습니다. 왜냐하면 행복을 추구하기란 쉽지 않기 때문입니다. 행복 때문에 포기해야 하는 부분도 있고 상대적으로 더 큰 행복을 위해 눈앞에 작은 행복을 포기하는 법도 알아야 합니다. 지금부터 제가 드리는 이야기는 행복이란 무엇이고 어떻게 하면 그 행복을 향해 나아갈 수 있는지에 대한 지침입니다.

행복론 2023.04.22

일본여행 계획 - 아이묭 투어

1. 헨젤카페 (3-16 Koshiencho, Nishinomiya, Hyogo 663-8152 일본) 고등학교부터 다니던 카페, 아이묭 픽은 로코모코 2. 키친 (15-14 Koshienurakazecho, Nishinomiya, Hyogo 663-8165 일본) 단골 오코노미야키집 3. 타워 랄랄랄 (1-100 Koshien 8bancho, Nishinomiya, Hyogo 663-8178 일본) 인디시절부터 인연이 있는 레코드점 + 4. 시마무라악기라푸토 (일본 〒663-8178 Hyogo, Nishinomiya, Koshien 8bancho, 1−100 ららぽーと甲子園 2F) 첫녹음기타 HISTORY NT-301 산 악기점 5. 맥도날드 (11-20 Koshien 7bancho, Nishinomi..

일본문화 2023.01.24

완벽한 언어 RUST

누군가에게 왜 러스트를 좋아하세요라고 질문을 받는다면 간략하게 대답할 수 있는 말은 "러스트는 완벽하니까요" 라는 표현말고는 달리 생각나는 게 없습니다. 프로그래밍을 위해 필요한 언어는 힙영역의 관리 부분에서 자신의 결함을 노출하고 그걸 감수하면서 사용하는 언어가 99%였습니다 C, C++ 을 대표로 힙영역을 개발자가 컨트롤 할수 있는 언어가 있고 Java, C#, Python 을 대표로 힙영역을 가비지컬렉터가 대신 처리해주는 언어로 세상은 양분되어 있었습니다. 그러나 Rust는 제 3의 길을 걷는 언어입니다. 오랜기간 양분되어 각자의 길을 걷고있던 프로그래머들이 이 러스트에 열광하는 이유도 여기에 있습니다. 매니지드언어 개발자들은 인간의 실수를 늘 두려워하고 언매니지먼드언어 개발자들은 자신들이 컨트롤하..

개발/Etc 2022.12.24