목록분류 전체보기 (102)
개발자는 오늘도 달립니다.
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/9tNxM/btqKlUhoaSe/YtEmhxAgkklI7mIfHOI4A1/img.png)
현재, NoSQL 기술로 만들어진 제품의 종류는 무려 200개가 넘습니다. 하지만 아래 그림에서 보는 바와 같이 MongoDB가 5위에 랭크될 만큼 많은 관심과 우수한 기술을 기반으로 하고 있음을 알 수 있습니다. (2020.10.07) 그럼 거두절미하고 Centos 에서의 설치 방법을 기록해 보도록 하겠습니다. 1. 먼저 패키지 업데이트 여부를 확인 sudo yum -y update 2. MongoDB 4.0 저장소 메타 정보 생성 sudo touch /etc/yum.repos.d/mongodb-org.repo; sudo bash -c 'echo "[mongodb-org-4.0]" >> /etc/yum.repos.d/mongodb-org.repo'; sudo bash -c 'echo "name=Mong..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/dkE3jH/btqJtknREnB/EU7rlKflSOD5sxCmQdCfNK/img.png)
LV(Logical Volume) 리눅스 환경에서 루트 공간을 모두 사용하여 당황한 적이 종종 있습니다. 저 또한 간혹 그런 경우가 있는데요. 그래서 오늘은 PV(physical Volume)공간을 LVM(Logical Volume Manager)에 할당하는 방법을 포스팅 합니다. LVM 이란 논리 볼륨 관리자 물리적인 디스크를 여러 개의 논리적인 디스크로 할당하여 유연하게 관리하는 프로그램입니다. PV 란 물리적 디스크 공간을 말합니다. 필요 포인트 - 물리 디스크 공간은 충분한데 LV 용량이 부족한 경우 1. LV 논리 용량 체크 - 현재 루트 용량 확인 시 20GB 사이즈로 구성, 1.9G 를 사용하고 있는 상황입니다. df -h 2. PV 물리 용량 체크 - fdisk를 통해 확인 시 DISK 용..
! ' , .  ̄ : ; ‥ … ¨ 〃 ― ∥ \ ∼ ´ ~ ˇ ˘ ˝ ˚ ˙ ¸ ˛ ¡ ¿ ː " ( ) [ ] { } ‘ ’ “ ” 〔 〕 〈 〉 《 》 「 」 『 』 【 】 + - < = > ± × ÷ ≠ ≤ ≥ ∞ ∴ ♂ ♀ ∠ ⊥ ⌒ ∂ ∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ∈ ∋ ⊆ ⊇ ⊂ ⊃ ∪ ∩ ∧ ∨ ¬ ⇒ ⇔ ∀ ∃ ∮ ∑ ∏ # & * @ § ※ ☆ ★ ○ ● ◎ ◇ ◆ □ ■ △ ▲ ▽ ▼ → ← ↑ ↓ ↔ 〓 ◁ ◀ ▷ ▶ ♤ ♠ ♡ ♥ ♧ ♣ ⊙ ◈ ▣ ◐ ◑ ▒ ▤ ▥ ▨ ▧ ▦ ▩ ♨ ☏ ☎ ☜ ☞ ¶ † ‡ ↕ ↗ ↙ ↖ ↘ ♭ ♩ ♪ ♬ ㉿ ㈜ № ㏇ ™ ㏂ ㏘ ℡ ? ª º ─ │ ┌ ┐ ┘ └ ├ ┬ ┤ ┴ ┼ ━ ┃ ┏ ┓ ┛ ┗ ┣ ┳ ┫ ┻ ╋ ┠ ┯ ┨ ..
개발 프로그램에서 몽고DB를 핸들링 하기 위해서는 벤더사에서 제공하는 API를 활용해야 합니다. 이번 포스팅은 그 중 몽구스라는 API를 ECMA 5 프로미스(promise)를 사용하는 방법에 대해 알아보겠습니다. 기본적으로 몽고DB(노드용 드라이버)는 콜백으로 결과값을 반환합니다. 콜백은 간단하지만, 다들 아시다시피 중첩되었을 경우 콜백 지옥이 발생할 수 있다는 문제점이 있습니다. 따라서 콜백 대신 프로미스를 보통 많이 사용합니다. 게다가 프로미스는 자바스크립트와 노드에서 비동기 API로 밀어주고 있기 때문에 유망합니다. ES2017에서 나온 async/await도 사용할 수 있기 때문에 익숙해진다면 콜백보다 훨씬 가독성이 좋습니다. 몽고DB에 프로미스를 적용하기 위한 많은 라이브러리들이 있습니다. 몽..
Mongo DB 쿼리 연산자에 대해서 알아보겠습니다. ٩( ᐛ )و 쿼리 연산자는 다큐먼트를 조회할 때 구체적으로 찾기 위해 조건을 입력하는 것을 도와주는 기호입니다. 몇 개는 지난 시간에 미리 보셨을 겁니다. 쿼리 연산자는 모두 $로 시작합니다. 오늘은 비교 쿼리 연산자에 대해 알아보겠습니다. ⊙ 비교 쿼리 $gt 해당 값보다 더 큰 값을 가진 필드를 찾습니다. 숫자 뿐만 아니라 날짜와 ObjectId도 비교할 수 있습니다. { 필드: { $gt: 값 } } $lt 해당 값보다 작은 값을 가진 필드를 찾습니다 { 필드: { $lt: 값 } } $gte 해당 값보다 크거나 같은 값을 가진 필드를 찾습니다 { 필드: { $gte: 값 } } $lte 해당 값보다 작거나 같은 값을 가진 필드를 찾습니다 { ..
이전 포스팅에서 블록체인의 종류인 퍼블릭과 프라이빗 블록체인의 정의와 특징에 대해서 알아보았습니다. 오늘은 두 블록체인 네트워크에서 보편적으로 채택하고 있는 합의 알고리즘에 대해서도 자세히 알아 보고 이를 포스팅 남기려고 합니다. 합의 알고리즘을 설명하기에 앞서, 우선 채굴(마이닝)에 대한 이해가 필요하다. 단순히 코인을 캐내서 얻는다는 의미만 알고있을 것이 아니라, 채굴이 어떻게 이루어지는지 그 과정을 이해하는 것이 좋다. 1. 작업증명(Proof of Work, PoW) 말 그대로 작업한 내용을 증명하는 합의 방식이다. 비트코인을 비롯한 이더리움, 라이트코인 등 코인을 '채굴'한다고 말하는 가상화페들 대부분이 채택하고 있다. 여기서 작업이란 수학적 문제에 대한 답을 해결하는 과정..
사실 이전에 하이퍼레저 패브릭과 이더리움을 배우면서도 각각의 블록체인이 채택한 합의 알고리즘이 어떤 것인지 설명을 보긴 봤는데 기억이 제대로 나지 않는다. 그래도 블록체인을 조금이나마 경험해봤다고 하면 합의 알고리즘이 무엇인지는 제대로 알아놔야 할 것 같아서 정리해본다. 우선, 우리가 흔히 알고 있는 블록체인 종류에는 여러 가지가 있다. 정리를 위해 블록체인의 종류에 대해 검색해봤지만 명확한 기준 없이 블로그마다 내용이 약간씩 달랐다. 그중에서 우리가 흔히 아는 퍼블릭 블록체인과 프라이빗 블록체인에 대해서 일단 정리해보려고 한다. 이름에서 유추하자면 퍼블릭 블록체인은 모든 사용자가 참여할 수 있고, 프라이빗 블록체인은 선택된 특정한 사람들만 참여할 수 있을 것 같다. 이렇게 어떤 사용자가 블록체인..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/oOc5X/btqFnD5TssH/dwdVqYRaKveKpgGQY7DTek/img.png)
3. PBFT(Practical Byzantine Fault Tolerance) PBFT는 비잔틴 장군 문제를 해결하기 위한 알고리즘으로, 이를 이해하기에 앞서 비잔틴 장군 문제에 대해 알아야 한다. Q. 비잔틴 장군 문제란? 1) 비잔틴의 장군들이 흩어져서 성을 공격할 때, 장군들이 동시에 공격해야만 승리할 수 있다. 2) 또한, 흩어져있기 때문에 공격 시간을 정하기 위해선 메시지를 주고받아야 한다. 3) 하지만 이때 배신자가 껴있어서 정확한 시간을 공유할 수 없는 경우가 생긴다. 그리고 장군들은 누가 첩자인지 찾아낼 방법이 없다. 4) 이 경우 어떻게 신뢰도 있는 메시지를 주고 받을 수 있을까? 아래는 비잔틴 장군 문제를 그림으로 표현한 것이고, 그림에서 왕관은 다른 장군들을 이끄는 리더 장군..