![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwlSmh%2FbtsEcrrieit%2Fs0qKHwFeYDWv3GLEjBgD5K%2Fimg.jpg)
분류 전체보기
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPwkUL%2FbtsD4vnxlHH%2F1JljbpPacFGdKKZeakfCwk%2Fimg.png)
개요 악보 생성 단계는 총 3단계로 나뉘어져있었습니다. 1) 음원 분리 2) 코드 추출 3) 악보 배치 단계로 이루어져있었는데요 이러한 단계가 완료될때마다 해당 음원을 요청한 사용자에게 악보 생성정도를 전파해줘야 했습니다. 특정 악보가 처음 요청 될 경우 N 개의 추론서버중 1개의 유효한 추론서버가 메세지를 가져와서 처리하면 되었기 때문에 Topic 기반 이벤트 전파 방식이 아닌 메세지 큐를 사용하고 Long Polling 방식으로 메세지를 하나의 서버에서 한번만 가져와서 처리할 수 있도록 하였습니다. Redis 를 통한 API 서버에 이벤트 전달 1) 악보 생성 단계를 실시간으로 전파해야하고, 2) 동일한 음원에 대한 악보 생성 요청이 동시에 혹은 아주 짧은 시간의 간격을 두고 요청이 올 경우에 대해 ..
개요 페이지 테이블은 각 프로세스마다 가지고 있으며 메모리내에 OS 가 관리할 수 있는 영역에 저장이됨 따라서 페이지 테이블의 크기를 줄이는 것은 중요함 PTE(Page Table Entry) 의 크기가 4Byte == 32bit 로 가정하고 각 페이지의 크기가 2^12 바이트일경우 2^32 / 2^12 개의 entry 가 존재할 수 있음 2^20 * 4KB == 4MB 페이지 테이블 크기를 줄일 수 있는 방법 페이지 크기를 늘린다. entry 의 개수가 줄어듬 내부 단편화 문제, 메모리 낭비 문제 발생 Segmentation 기법 사용 Code, Stack, Heap 세그멘트에 각각 페이지 테이블을 생성 segment를 위한 base, bound register 가 필요함 Context-Switch 시..
목적 어떤 인프라스트럭처든 간에 하나의 작업 흐름으로 프로비저닝하는 것 큰 규모의 조직에서 Terrform 의 사용을 관리할 때의 사용패턴은 “collaborative infrasturcture as code” 라고 부름 프로비저닝이란 준비, 예제, 설비의 뜻을 가지고 있음 IT 인프라 자원을 사용자 또는 비즈니스의 요구사항에 맞게 할당, 배치, 배포해서 시스템을 사용 할 수 있도록 만들어 놓는 작업을 의미함 근본적인 도전 기술적 복잡성 인프라스트럭처 프로바디어는 새로운 리소스를 프로비저닝할때 다른 인터페이스를 사용하고 작업을 매일 하며 인터페이스의 불일치성 때문에 추가 비용이 발생하게 됨 Terraform 은 프로비저닝 작업을 분리해 이런 복잡성을 해결함 IAC 의 구성을 읽고 리소스 간의 관계를 결정..
컴파일러가 나오게 된 배경 고급언어가 나오기 이전 소프트웨어는 전부 어셈블리어로 작성되어왔음. 어셈블리어는 기계어와 매핑이 되는 저급 수준의 언어임. 하지만 CPU 의 아키텍처가 다르면 해당 아키텍처와 호환히 되는 어셈블리어를 다시 작성해야했음. 이러한 문제점을 해결하기 위해 고급언어가 등장함 고급언어로 프로그램을 작성하면 이를 기계어로 변환하여 CPU 가 해석할 수 있게해야하는데 고급언어에서 기계어로 변환을해주는 소프트웨어가 바로 컴파일러와 인터프리터임 컴파일러 전체 파일을 스캔하여 한꺼번에 번역한다. 초기 스캔시간이 오래 걸리지만, 한번 실행 파일이 만들어지고 나면 빠르다. 기계어 번역과정에서 더 많은 메모리를 사용한다. 전체 코드를 스캔하는 과정에서 모든 오류를 한꺼번에 출력해주기 때문에 실행 전에..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvzRcQ%2FbtsDQ9FwWI0%2FhSYpyUkoAz0BuZ5KatmzV1%2Fimg.png)
캐시 메모리 캐시 메모리는 CPU 에서 메모리를 참조할때의 병목을 줄이기 위해 사용되는 SRAM 기반의 메모리 (속도가 느린장치와 빠른 장치의 병목을 해결하기 위해, 웹 서비스에서도 사용되는 개념임) ex1) CPU 코어와 메모리 사이의 병목 현상 완화 ex2) 웹 브라우저 캐시파일은, 하드디스크와 웹페이지 사이의 병목 현상을 완화 빠른 Access 속도를 얻을 수 있지만, 용량이 적고 비용이 비싸다는 단점이 존재함 CPU 는 L1, L2, L3 캐시를 사용하고 속도와 크기에 따라서 이를 구분함 일반적으로 L1캐시부터 사용됨 듀얼 코어 프로세서에서의 캐시 메모리 각 코어마다 독립된 L1 캐시 메모리를 가지고, 두 코어가 공유하는 L2캐시 메모리가 내장됨 만약 L1 캐시가 128KB면 NKB, MKB 씩 ..