프로젝트
-
MongoDB Data Modeling프로젝트/mongoDB 2024. 2. 6. 00:01
개요 SQL에서는 정규화라는 개념이 존재하여 Data Modeling을 수행합니다. Document Database인 MongoDB에서는 Data Modeling을 어떻게 수행할 수 있을까요? Data Modling 데이터 모델링은 업무 수행 시 비즈니스 요구사항 등으로 발생하는 데이터를 효율적으로 데이터베이스에 저장하기 위해 데이터 구조를 설계하는 과정입니다. MongoDB는 유연한 스키마 모델을 가질 수 있습니다. 컬렉션(테이블) 내에 문서가 동일한 필드 집합을 가질 필요가 없습니다. 필드의 데이터 유형은 문서마다 다를 수 있습니다. 어떻게 데이터 모델링을 수행하는가에 따라 데이터 정합성과 성능에 큰 영향을 주게 되므로 데이터 모델링에 대한 이해가 필요합니다. Schema 설계 물론 운영을 하면서 유..
-
MongoDB Aggregation Operations프로젝트/mongoDB 2024. 2. 5. 00:01
개요 "MongoDB 공식문서 Aggregation Operations"의 내용을 정리해보고자 합니다. Aggregation Operation 여러 문서의 값을 group으로 묶거나, group화 된 데이터에 연산을 수행하여 결과를 반환하거나, 데이터를 분석하기 위해 사용되는 연산을 의미합니다. SQL의 group by 등의 집계 함수와 유사한 개념입니다. Aggregation Operation이 등장하기 전에는 Map-Reduce라는 개념이 존재하였지만 MongoDB 5.0부터 deprecated 되었습니다. Aggregation Pipelines Aggregation Operation이 여러개가 파이프라인으로 실행되는 개념입니다. filter를 수행하거나 group으로 묶고 값을 계산하는 절차 등이 ..
-
MongoDB 쿼리로 CRUD 해보기프로젝트/mongoDB 2024. 2. 4. 00:01
개요 MongoDB CRUD Operations 공식문서를 기반으로 MongoDB CRUD를 수행해보고자 합니다. 특별한 설치 없이 수행할 수 있는 mongoplayground를 활용해보겠습니다. CRUD란? Create, Read, Update, Delete의 약어로 문서에 대한 생성, 읽기, 갱신, 삭제를 의미합니다. Create Operation collection에 새로운 document를 생성하거나 삽입할 수 있는 명령어입니다. 만약 collection이 존재하지 않는다면 collection이 생성됩니다. 아쉽게도 playgroud에서는 create operation은 지원하지 않습니다. insertOne 문법 db.collection.insertOne( , { writeConcern: } ) ..
-
MongoDB란?프로젝트/mongoDB 2024. 1. 6. 00:01
MongoDB란? MongoDB는 NoSQL의 한 종류로 document database입니다. 애플리케이션 개발과 scaling이 용이하도록 설계된 오픈소스 데이터베이스입니다. 거대한 데이터베이스라는 의미의 Humongous(거대한) Database를 줄인 MongoDB로 이름 지어졌습니다. NoSQL이란? 흔히 SQL 언어를 활용하는 관계형 데이터베이스가 아니다는 NoSQL이라는 용어로부터 시작하여 현재는 Not Only SQL의 의미로 SQL 이외에 여러 가지 기능을 제공한다는 의미로 일반화되었습니다. key-value, document, graph 등 다양한 형태의 데이터베이스들이 존재합니다. 여기에서 mongoDB는 document database에 속합니다. Document Database란?..
-
React란?프로젝트/react 부시기 2023. 12. 10. 00:01
React란? React.js 또는 ReactJS라고도 알려진 React는 웹 애플리케이션용 사용자 인터페이스(UI) 또는 사용자 인터페이스 구성 요소를 구축하기 위한 오픈 소스 JavaScript 라이브러리입니다. Facebook에서 개발하고 오픈소스화 하여 대화형 및 동적 웹 애플리케이션을 만드는 데 널리 사용됩니다. 대규모의 활발한 개발자 커뮤니티를 가지고 있습니다. React의 등장배경 react를 사용하지 않더라도 html, css, javascript를 활용하여 DOM을 조작하여 콘텐츠를 변경하거나 사용자 작업에 응답할 수 있습니다. 하지만 Javascript를 활용하여 복잡한 UI를 관리하고 브라우저 간 호환성 문제를 처리하는 것이 점점 더 어려워지고 오류가 발생하기 쉽기 때문에 이 접근 방..
-
React vs VueJS vs Angular 비교해보기프로젝트/react 부시기 2023. 12. 7. 00:01
개요 react에 대해서 본격적으로 알아보기에 앞서 유사한 기술스택에 대해서 어떤 차이점들이 있는지 비교해보고자 합니다. 주로 사용되는 유명한 프레임워크로는 reactJS, vueJs, Angular 등이 있습니다. "React vs VueJs vs Angular"에 대해 비교해 보는 시간을 가져보겠습니다. 공통점 - Single Page Application 세 가지 기술의 공통점은 모두 SPA라는 것입니다. SPA를 해석하자면 단일 페이지 애플리케이션이라는 의미로 웹 사이트의 전체 페이지를 하나의 페이지에 담아 동적으로 화면을 변경하는 기술입니다. 페이지 전환 시 페이지를 새로 요청하는 게 아니라 자바스크립트로 HTML을 갈아치우면서 부드럽게 구현하는 것인데 일일이 구현하려면 귀찮고 코드가 길어지게 ..
-
백엔드 개발자의 React 공부 시작프로젝트/react 부시기 2023. 12. 5. 00:01
개요 react 부시기라는 카테고리를 시작으로 프론트엔드 공부를 소소하게 시작해보려 합니다. 애써 외면했던 프론트엔드 개발을 처음 시작할 때는 내가 만들고 싶었던 2~3개 정도의 서비스들을 개발하면서 백엔드는 Python, Flask를 활용하고 프론트엔드는 HTML, CSS, Javascript를 활용했던 경험이 있었습니다. 하지만 내 마음대로 배치되지 않는 CSS 때문에 프론트엔드에는 급격한 흥미가 떨어지게 되었습니다. 심지어 "나는 백엔드 개발자가 될 거야"라는 생각으로 SSAFY에서는 Vue.js를 배웠지만 한 귀로 듣고 한귀로는 흘려버리기도 하였습니다. "어드민 페이지가 필요해?" 그러면 Retool이나 Appsmith와 같은 로우 코드/노 코드 개발 플랫폼을 사용해서 대시보드를 쉽게 구축하면 되..
-
Kafka Consumer를 On Off 할 수 있을까?프로젝트/kafka 2023. 11. 26. 00:01
개요 Kafka를 활용하다가 잠시 DB의 장애가 발생하거나 Applicaion에 문제가 발생하는 경우 DLQ에 수십만 건의 데이터가 쌓여있을 수 있습니다. 이때 DLQ를 off 해두었다가 장애가 복구하면 on을 하여 활용하면 괜찮은 전략이 될 수 있을 것 같아 on, off 방법을 구성해보려 합니다. Kafka Listener autoStartUp @KafkaListener(id="assigned_listener_id", autoStartup = "false", topics = "topic-to-listen-to") public void listen(Message message){ // interesting message processing logic } consumer를 구성할때 autoSartUp을 ..