기타(32)
-
Webpack
Webpack이란 Webpack의 등장 이유 규모가 큰 시스템에서는 많은 Javascript가 존재합니다. 이 많은 Javascript 파일을 하나로 관리하기에는 어려움이 있습니다. 그렇다고 여러 개의 파일을 브라우저에서 로딩하는 것은 네트워크 비용이 커지면서 반응 속도가 느려지게 됩니다. 더 나아가 각 파일 변수의 충돌 위험성도 존재하게 됩니다. 이를 해결하기 위해 Webpack이 등장하게 되었습니다. Webpack의 개념 Webpack은 Javascript Application의 Static Module Bundler입니다. Webpack이 실행되면 Dependencies Graph를 통해 필요한 형태의 하나 또는 여러 개의 Bundle로 생성합니다. Module: 프로그램을 구성하는 구성 요소의 일..
2021.03.23 -
Promise
Promise란 Promise의 개념 Promise는 자바스크립트 비동기 처리에 사용되는 객체입니다. jQery ajax 코드 function getData(callbackFunc) { $.get('url 주소/products/1', function(response) { callbackFunc(response); // 서버에서 받은 데이터 response를 callbackFunc() 함수에 넘겨줌 }); } getData(function(tableData) { console.log(tableData); // $.get()의 response 값이 tableData에 전달됨 });Promise 코드 function getData(callback) { // new Promise() 추가 retu..
2021.03.21 -
Local Cache와 Global Cache
Caching이란 Caching은 애플리케이션의 처리 속도를 높여줍니다. 이미 가져온 데이터나 계산된 결과 값의 복사본을 저장함으로써 처리 속도를 향상시키며, 이를 통해 향후 요청을 더 빠르게 처리할 수 있습니다. 대부분의 프로그램이 동일한 데이터나 명령어에 반복해서 액세스하기 때문에 Caching은 효율적인 아키텍처 패턴입니다. Local Cache Local Cache는 서버 마다 Cache를 따로 저장하는 방법입니다. 각 서버 장비의 Resource(Memory, Disk)를 이용하기 때문에 다른 서버의 Cache를 참조하기 어렵습니다. 해당 서버 내에서 작동하기 때문에 Global Cache에 비해 속도가 빠릅니다. 캐시에 저장된 데이터가 변경되는 경우에는 해당 서버를 제외한 모든 peer에 변경..
2021.03.07 -
Redis
Redis란 Redis의 개념 Redis는 메모리 기반의 "key-value" 구조의 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 비 관계형 데이터베이스입니다. Redis는 크게 String, Set, Sorted Set, Hash, List의 5가지 데이터 형식을 지원합니다. Redis의 특징 영속석을 지원하는 인메모리 데이터 저장소입니다. 읽기 성능 증대를 위해 마스터 / 슬레이브 형태의 서버 측 복제를 지원합니다. 마스터에서 쓰기가 수행되면 슬레이브 데이터 세트를 실시간으로 업데이트하기 위해 연결된 모든 슬레이브로 전송됩니다. 쓰기 성능 증대를 위해 클라이언트 측 샤딩을 지원합니다. String, Set, Sorted Set, Has..
2021.02.19 -
동시성과 병렬성
동시성(Concurrency)과 병렬성(Parallelism) 동시성이란 동시성은 한 번에 여러 스레드를 다루는 것을 의미합니다. 동시성은 하나의 코어에서 여러 스레드가 번갈아가며 실행되면서, 동시에 실행되는 것처럼 보이지만 실제로는 시분할하여 번갈아 실행되는 것입니다. 병렬성이란 병렬성은 한 번에 여러 스레드를 실행하는 것을 의미합니다. 병렬성은 다중 코어에서 실제로 각 코어들이 동시에 실행됩니다.
2021.02.14 -
DDD
DDD(Domain Driven Design)란 객체 지향에서부터 객체 지향에서의 핵심은 실세계의 객체들이 서로간의 상호작용을 바탕으로 책임, 협력, 역할의 관점을 가지고 메시지를 교환하는 것입니다. 즉 객체지향에서의 핵심은 결국 객체(무언가를 만드는 주체)입니다. 객체들을 어떻게 하면 추출할 수 있을까요? 어떤 객체가 필요한지 어떻게 알 수 있을까요? 객체들은 어떻게 해야 상호작용할 수 있을까요? 위의 질문들을 해결할 수 있는 방법이 바로 DDD(도메인 주도 설계)입니다. 도메인이란 도메인의 사전적 의미는 '정보와 활동의 영역'을 말하며, DDD에서는 어플리케이션 내의 로직들이 관여하는 정보와 활동의 영역이라고 받아들여 집니다. DDD의 개념 DDD란 도메인을 중심으로 설계해 나가는 것을 의미합니다. ..
2021.02.05