MongoDB 스터디 6주차(MongoDB CURD 쓰기 연산)

created: 2021-02-23 | updated: 2021-02-25
Create Operations db.collection.insertOne() 도큐먼트를 하나 추가합니다. 문법 db.collection.insertOne( <document>, { writeConcern: <document> } ) writeConcern w: 몇 개의 mongod 에 저장 후 응답할 지 설정 <숫자>: 몇 개의 mongod 에 기록될 지 직접 지정 “majority”: 과반의 mongod 에 기록되게 설정 <커스텀 write concern 이름>: 특정 데이터 센터에 저장되게 설정가능, Custom Multi-Datacenter Write Concerns j: 디스크의 저널에 저장 후 응답할지 설정 여부 timeout: 쓰기 제한 시간(밀리세컨드), 반환하기 전에 이미 성공한 쓰기 작업을 롤백하지 않음 예 db.

MongoDB 스터디 5주차(패턴과 안티패턴)

created: 2021-02-10 | updated: 2021-02-17
패턴 Attribute Pattern 상황 비슷한 필드가 많을 때 여러 필드에 걸쳐 조회하고 싶을때 필드가 일부 도큐먼트에만 있을 때 해결책 필드를 k/v 짝으로 나누어 서브도큐먼트에 저장 예 적용 전 { "title": "Star Wars", "release_US": "1977-05-20T01:00:00+01:00", "release_France": "1977-10-19T01:00:00+01:00", "release_Italy": "1977-10-20T01:00:00+01:00", "release_UK": "1977-12-27T01:00:00+01:00", } 적용 후 { "title": "Star Wars", "director": "George Lucas", "releases": [ { "location": "USA", "date": "1977-05-20T01:00:00+01:00" }, { "location": "France", "date": "1977-10-19T01:00:00+01:00" }, { "location": "Italy", "date": "1977-10-20T01:00:00+01:00" }, { "location": "UK", "date": "1977-12-27T01:00:00+01:00" }, ] } 장점 인덱싱하기 쉬움 더 적은 인덱스가 필요함 쿼리가 간단해지고 일반적으로 빨라짐 Extended Reference Pattern 상황 너무 많은 조인이 발생함 해결책 주가 되는 도큐먼트에 쪽에 필드를 임베딩함 예 적용 전

(Book) 팀장의 탄생

created: 2021-01-25 | updated: 2021-02-12
지은이: Julie Zhuo ISBN: 979-11-6521-268-1 38쪽 진정한 관리자의 본분은 ‘여러 사람이 협력하는 집단에서 더 좋은 성과를 도출하는 것'이다. 40쪽 하지만 시간이 지나면 진실이 드러나는 법이다. 유능한 인재는 자신을 홀대하는 상사나 존경심이 생기지 않는 상사 밑에서 몇 년이나 참고 버티지 않는다. 그리고 유능한 관리자는 쇄신을 단행할 권한만 준다면 형편없는 성과를 내던 팀을 환골탈태시킨다. 47쪽 모름지기 관리자라면 팀의 목적, 사람, 프로세스를 개선함으로써 팀의 전체적인 성과에 최대한 멀티플라이어 효과를 내야 한다.

와인 일지

created: 2021-01-10 | updated: 2021-02-09
이름 가격 구매 장소 구매 날짜 사진 시음 날짜 후기 Viberti Barbera La Gemella 2019 27,000원 뱅가드와인머천트(광화문점) 2021-02-09 Colombina San Martino 2012 41,000원 뱅가드와인머천트(광화문점) 2021-02-09 BARBARESCO BRIC MICCA 2016 55,000원 뱅가드와인머천트(광화문점) 2021-02-09 Soumah Single Vineyard Chardonnay 2019 45,000원 뱅가드와인머천트(광화문점) 2021-01-11 Essay Chenin Blanc 2020 12,900원 뱅가드와인머천트(광화문점) 2021-01-11 2021-01-15 살짝 단 맛, 가성비가 좋은 와인 Viberti Giovanni La Gemella Barbera d’Alba 2019 24,300원 뱅가드와인머천트(광화문점) 2021-01-11 2021-01-26 향이 좋음 Viberti Giovanni Nebbiolo Langhe 2018 34,200원 뱅가드와인머천트(광화문점) 2021-01-11 Bleda Pino Doncel 12 Meses 2018 25,000원 뱅가드와인머천트(광화문점) 2021-01-11 Essay Cabernet Sauvignon 2018 12,900원 뱅가드와인머천트(광화문점) 2021-01-11 THE BALVENIE DOUBLEWOOD12 137,000원 (주)현대백화점 신촌점 2021-01-09 Talo Primitivo di Manduria San Marzano 2018 30,000원 (주)현대백화점 신촌점 2021-01-09 Trapiche Broquel Malbec 2018 20,000원 (주)현대백화점 신촌점 2021-01-09 2021-01-10 별로임, 와인의 향이 없고 술 맛만 남

MongoDB 스터디 3주차(샤딩을 통한 시스템 확장)

created: 2021-01-24 | updated: 2021-01-28
샤딩 샤딩은 여러 물리장비에 데이터를 분산하는 방법 MongoDB 는 샤딩을 이용해 매우 큰 데이터에 대해 높은 처리량을 제공 시스템을 확장하는 두 가지 방법 스케일업 스케일아웃(MongoDB 는 샤딩 통해 스케일아웃을 지원) 대상이 되는 자원 CPU 네트워크 메모리 디스크 고려사항 경제적으로 이득인가? 실현가능한가? 예 1) 서버의 CPU 자원에 한계가 다가오고 필요한 CPU 자원은 2배로 예상됨 다음으로 좋은 CPU는 처리량이 10배이고 비용도 10배임 스케일업을 한다면 10배의 비용으로 2배의 CPU만 사용 스케일아웃을 한다면 2배의 비용으로 2배의 CPU 사용가능 예 2) 현재 사용가능한 가장 좋은 CPU를 사용 중 자원에 한계가 다가옴 스케일업으로 해결불가 스케일아웃으로 해결가능 예 3) 디스크를 1TB 에서 20TB 로 20배 스케일업 백업, 복구, resync 에 20배의 시간이 듬 스케일아웃한다면 병렬화의 장점을 사용해 시간을 절약할 수 있음 또 MongoDB의 경우 큰 데이터는 큰 인덱스를 만들기 때문에 메모리 사용량도 함께 증가함 기타 장점 분산처리에 용이하기 때문에 MongoDB 에서 제공하는 존 샤딩, 어그리게이션 등의 기능을 효과적으로 사용가능

MongoDB 스터디 2주차(MongoDB 설치하기)

created: 2021-01-17 | updated: 2021-01-21
Replica Set Replica set 은 같은 데이터를 가진 mongod 프로세스 그룹입니다. 이를 통해 MongoDB는 데이터 중복과 고가용성을 제공합니다. 그렇기 때문에 일부 서버에 장애가 발생하더라고 전체 시스템은 정상적으로 운영될 수 있습니다. 특정한 경우 복제를 통해 읽기 수용량을 증가시킬 수 있습니다. 또 서로 다른 데이터센터에 복사본을 유지하여 가용성을 증가시킬수 있도 장애복구, 분석, 백업 목적으로 추가 복사본을 만들 수도 있습니다. Replication Replica set 은 데이터를 가진 여러 노드로 이루어지며(데이터가 없는 아비터가 추가될 수도 있음), 이 중 하나만이 primary 노드가 됩니다.

MongoDB 스터디 1주차(MongoDB 기초)

created: 2021-01-10 | updated: 2021-01-13
들어가며 지금까지 필요 없는 로그성 데이터를 MongoDB에 저장한 경험이 있으며, 대부분은 RDBMS를 사용했습니다. MongoDB도 많이 발전하였고(트랜잭션, 컨시스턴시 관련) 우리의 MongoDB 운영능력도 증가했기 떄문에 애플리케이션에서 스케일아웃을 핸들링하지 않고 MongoDB를 사용해 개발속도를 향상시키고 싶습니다. MongoDB란 도큐먼트를 기본 자료형으로 사용하는 NoSQL 데이터베이스 도큐먼트와 컬렉션 도큐먼트 도큐먼트는 field와 value의 쌍으로 데이터를 저장하고 관리 JSON 형태로 사용되며 실제로는 BSON으로 시리얼라이즈되어 저장됨 { "name" : "hueypark", "title" : "software engineer" } 컬렉션 도큐먼트들이 모여있는 집합 일반적으로 한 컬렉션에 있는 도큐먼트들은 공통된 필드를 가지고 있음 BSON BSON은 바이너리로 시리얼라이즈 된 JSON

뉴스피드 2020

created: 2020-11-25 | updated: 2020-12-31
2020년 12월 Disagree and commit 이병준님의 면접시 조심하면 좋은 것들 중 일부 링크: https://youtu.be/SZEHjcDSEdE?t=183 자기가 동의하지 않는 내용이라도 팀원의 한 사람으로서 동의를 했다면 그 동의한 내용을 반드시 따라야 한다. 기계인간님의 개발자의 성격 이야기 어떤 역할을 하느냐에 따라 조금씩 다르겠지만, 개발자도 적극적이어야 할 필요가 있다는 점에서 크게 공감합니다. 사람마다 회사생활하며 느낀바는 다르겠지만 개발자는 어느 수준부터는 축구선수같길 요구받는다. 내가 수비수라고 수비만 하면 안된다. 내가 공격해야 하는 상황일 땐 공 차고 나가면서 골도 넣을 수 있어야 한다.