본문 바로가기

DevOps97

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.
DevOps Day 17 (3.29) 데이터베이스_문제 상황에 따른 해결책 문제 상황에 따른 해결책 낮은 검색 성능 – 인덱싱 첫번째는 데이터를 저장하는 것이고, 두번째는 요청에 왔을 때 저장되어있는 데이터 중에 요청에 맞는 데이터를 찾아서 제공하는 것입니다. 데이터베이스 기능의 두번째 경우에서, 낮은 검색 성능이 나타날 때, 좀 더 효율적인 방법으로 특정 키의 값을 확인하고 제공하기 위해서 인덱스(색인)를 이용합니다. 데이터 검색에 도움을 주기 위한 메타데이터 인덱스는 데이터베이스에 저장된 기본데이터(primary data)에서 파생된 부가적인 메타데이터(meta-data : 데이터에 관한 구조화된 데이터)입니다. 데이터에 영향을 주지 않는 인덱스 인덱스 추가 및 삭제가 가능하며 인덱스 편집사항은 데이터베이스의 내용에는 영향을 주지 않습니다. 단지 질의 (Query) 성능에만.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_기초 메모리에 임시 저장 (In-Memory) 프로그래밍 언어에서 데이터를 다룰 때에는 프로그램이 실행될 때에만 존재하는 데이터가 있고 프로그램이 종료되면 데이터도 같이 없어집니다. 파일 입/출력 (I/O) 파일을 읽는 방식으로 작동하는 형태를 말합니다 그러나 한계가 존재합니다. - 데이터가 필요할 때마다 전체 파일을 매번 읽어야 합니다. 파일의 크기가 커질수록 이 작업은 버겁고, 비효율적이어서 파일 입출력 방식의 큰 단점입니다. - 파일이 손상되거나 여러 개의 파일들을 동시에 다뤄야 하거나 하는 등 복잡하고 데이터량이 많아질수록 데이터를 불러들이는 작업이 점점 힘들어 집니다. RDBMS vs NoSQL - 데이터베이스는 크게 관계형 데이터베이스와 비관계형 데이터베이스로 구분합니다. 관계형 데이터베이스는 SQ.. 2023. 3. 31.
DevOps Day 16 (3.28) WAS와 Web Server_Cozstory WAS 개발 실습 Cozstory WAS 개발 위해 프론트엔드, 백엔드, 클라우드 등 API를 읽고 이해 및 작성하여 웹페이지를 만듭니다. 1. Github 에서 Repository 내용 Clone 하여 폴더 확인 2. Nmp install 명령로 서버 폴더에 필요한 모듈을 설치 3. Package.json을 참고해, 서버를 어떻게 실행해야 하는지 파악 4. Npm test를 통해 테스트케이를 확인하고 문제점을 찾아 수정 5. CRUD 작업을 위한 코드를 수정 -> create, Read, Update, Delete 6. Create 7. Read 8. update 9. Delete 10. npm test 으로 코드에 문제가 있는지 확인. 11. 상단처럼 이상 없을 경우 npm run dev / npm start를 통해 .. 2023. 3. 28.
DevOps Day 15 (3.27) WAS와 Web Server_서버_CORS Cors – Cross Origin Resource Sharing Cross origin에서 리소스(서버자원)을 요청하여 사용한다. HTTP header based mechanism that allows a server to indicate any origins (domain scheme, or port) other than its own from which a browser should permit loading resources. 모든 도메인(*)을 허용하고 있으며 메소드는 GET, POST, PUT, DELETE, OPTIONS만 허용 합니다. 헤더에는 content-type과 accept만 쓸 수 있고 preflight request는 10초 까지 허용 됩니다. Options 요약 : 서버에서 A.. 2023. 3. 28.