본문 바로가기

전체 글134

Project 1 : WAS 실습 회고 Achievement Goals - API 문서를 작성할 수 있습니다. - Fastify를 이용해 DB와 통신하는 서버를 만들 수 있습니다. - PostgreSQL을 이용하여 DB를 구성할 수 있습니다. - GitHub을 활용하여 팀원들과 협업합니다. 제작 범위 및 기술 스택 1. 백엔드를 만듭니다. - Fastify를 사용합니다. 2. 데이터베이스를 사용해야 합니다. 즉, 데이터 모델을 디자인해야 합니다. 3. Entity-Relationship Diagram (ERD)을 그려야 합니다. - https://dbdiagram.io/home 4. API 문서를 만들어야 합니다. - Method, Endpoint, Request, Response가 예시와 함께 포함되어야합니다. 참고 마일스톤 Day 1 - .. 2023. 4. 5.
DevOps Day 19 (3.31) 데이터베이트_실습 실습 안내 nginx 웹 서버의 로그로부터 접속 기록을 추출하여, PostgreSQL에 적재하는 것입니다. 1. PostgreSQL 데이터베이스 생성하고 SQL문을 이용해 데이터를 넣고 결과 확인 2. Nginx 웹 서버의 로그를 확인 3. 파서 (Parser) 프로그램 수정 및 활용 4. 프로그램 수집기 Collector.js으로 내용 확인 1. Github 에서 실습 내용 fork 후 git clone 으로 파일 받습니다. 2. Nginx 로그 파일 분석하기 위해 $cat sample.log 으로 확인합니다. 3. Npm install 으로 모듈 설치 후 $cat sample.log | ./parser.js 으로 내용 확인합니다. (필요시 Parser 파일 수정하여 원하는 값이 나올 수 있도록 합니다.. 2023. 3. 31.
DevOps Day 18 (3.30) 데이터베이스_데이터 파이프라인 데이터 파이프라인과 OLTP vs OLAP 데이터 파이프라인이란 다양한 데이터 소스로부터 원시 데이터를 수집하여 분석을 위해 데이터 웨어하우스와 같은 별도의 데이터 저장소로 이전하는 과정을 의미합니다. OLTP vs OLAP OLTP (Online Transaction Processing) 데이터베이스는 그 목적이 트랜잭션(기본적인 CRUD 작업)에 포커스가 맞추어져 있는 데이터베이스임. - 분석은 가능하나 여러 개의 테이블을 함께 묶어 조회할 경우 복잡도가 늘어 처리가 힘들어짐 OLAP (Online Analytical Processing) 데이터베이스는 적재된 데이터를 다양한 방법으로 분석하는 데 포커스가 맞춰져 있습니다. - 데이트터 기반의 의사결정을 위한 도구로, 다양한 관점의 분석을 하는데 적합.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_수평확장된 데이터베이스와 중복처리 데이터 중복성 높은 가용성을 위해 한 컴퓨터의 클론을 만든다는 것은, 그 안에 존재하는 데이터 역시 복제되어야 함을 의미합니다. 이러한 데이터 중복 메커니즘은 가용성을 얻기 위해 필요한 작업입니다. 물론 여기에는 Trade-off가 존재합니다. 데이터 중복 발생의 원인 1. 관리시스템 내의 소프트웨어(코딩) 품절 데이터 중복은 조직에 긍정적이거나 부정적인 결과를 가져옵니다. 우발적인 데이터 중복의 원인 중 하나는 조직의 데이터 관리 시스템 내 소프트웨어 품질 때문입니다. 이로 인해 경로 오작동으로 이어질 수 있습니다. 2. 백업시스템 조직에 백업 스토리지가 있는 경우 백업은 데이터 관리 시스템 또는 원본 데이터베이스의 문제를 완화하기 위해 정보의 복사본 역할을 합니다. 이를 위해서는 궁극적으로 정보가 손.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_배치 작업에 따른 성능 저하 배치 작업에 따른 성능 저하 – 스트림 처리 Data Batch Processing : 데이터 배치작업을 데이터 일괄처리작업이라고 칭하기도 합니다. 이름에서 알 수 있듯이 유입되는 데이터를 특정량 또는 특정기간 모아서 한번에 처리한다는 의미입니다. 배치의 특징 : - 대량의 데이터 처리 - 특정 시간에 프로그램 실행 - 일괄적으로 처리 배치 작업의 단점 예약된 일이 순차적으로 실행되기 때문에 앞선 프로그램의 실행이 다 끝나야지만 뒤에 등록된 데이터가 실행이 됩니다. 대량의 배치작업을 한꺼번에 진행하게 되면 특정시간대에 I/O가 몰리게 되어 서버에 갑작스러운 부하가 일어나 성능이 저하 될 수 있습니다. DB를 효율적으로 처리하는 방법 지체를 줄이기 위해서는 좀 더 자주 처리를 실행해야 합니다. 시간을 초단.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_데이터 파티셔닝 + 캐시 대용량의 데이터 – 파티셔닝 데이터셋이 매우 크거나, 쿼리 처리량이 매우 높아 복제하는 것만으로는 부족할 수 있는 문제가 있을 경우 데이터베이스를 파티션이라는 작은 단위로 쪼개서 활용하는 방법이 있습니다. 샤딩 (sharding)이라고도 표현합니다. 파티셔닝의 목적 데이터 파티셔닝을 필요로 하는 주된 이유는 확장성 때문입니다. 데이터베이스가 확장되면서 점점 대용량의 데이터베이스가 되고, 그러한 환경에 맞게 프로세스를 처리할 필요성이 생기기 때문입니다. 쓸림현상 (Skewed) 방지를 위한 시도 - 일반적으로 파티셔닝과 복제(Replica)는 함께 사용됩니다. 파티션 내부를 더 자세히 살펴보면 각 파티션의 복사본을 여러 노드에 저장하고 있는 것을 알 수 있습니다. 이러한 방식을 사용하는 이유는 요청의 쏠림.. 2023. 3. 31.