Linux의 경우 page cache, buffer cache, file cache구조가 있습니다. 가상 메모리 프로세스에서 메모리를 다루기 쉽게 하는 이점을 제공 OS가 커널에서 메모리를 추상화함 페이지 : OS가 물리 메모리를 확보/관리하는 단위. 가상 메모리의 최소 단위 리눅스의 페이지 캐시 원리 커널이 한 번 할당한 메모리를 해제하지 않고 계속 남겨두는 것이 페이지 캐시의 기본입니다. 캐싱 과정 디스크의 내용을 일단 메모리에 읽어 들인다 : 페이지가 작성된다 작성된 페이지는 파기되지 않고 메모리에 남는다 : 페이지 캐시 예외의 경우를 제외하고 모든 I/O에 투과적으로 작용한다. (디스크의 캐시를 담당하는 곳 - VFS) 리눅스는 메모리가 비어있으면 거의 다 캐싱하는 데에 메모리를 사용합니다. 그 ..
CPU bound 부하 프로그램 처리 속도가 CPU에 의해 좌우되어 디스크의 입출력은 없지만 CPU의 계산 속도에 의존하고 있기 때문에 CPU에서 발생하는 부하입니다. 과거 제가 API 서버에 엑셀 다운로드 기능을 구현했다가 약 7만 건의 데이터로 엑셀 파일을 만드는 과정에서 CPU 부하가 생겨 서버가 프리징 됐던 경험이 있는데요, 이것도 CPU 바운드 부하라고 볼 수 있을 것 같습니다. IO bound 부하 프로그램의 처리 속도가 CPU가 아닌 디스크의 읽기 쓰기 속도, 즉 입출력에 의존하기 때문에 생기는 부하입니다. 디스크에 저장된 대량의 데이터에서 임의의 문서를 찾아내는 검색 프로그램이나 DB서버를 예로 볼 수 있습니다. 디스크는 메모리 보다 느리다 디스크는 물리적인 이동이 수반되므로 메모리 대비 ..
이 글은 우아한 테크 세미나 '개발자도 글을 잘 써야 한다고요?'를 본 후 정리한 글입니다. 뭘 써야 할지 모르겠어요 😞 내 삶의 모든 것이 다 글감이 될 수 있다 내가 하고 있는 일 중에서 단서를 찾아보면 좋다 Ex) 새 환경 적응기, 시스템 개선 후기 등등 내가 경험한 나의 얘기를 녹여내면 생생한 글을 쓸 수 있다 주제 정하기 📌 작성자와 독자 모두 관심이 있는가 충분히 자료를 찾을 수 있는가 일정 내에 쓸 수 있는 내용인가 소재 모으기 📚 외부 자료 조사 반드시 찾고야 말겠다는 집요함과 집중력으로 찾자 왜?라는 꼬리에 꼬리를 무는 질문을 하며 자료를 찾는다 메모 & 정리 한 곳에 내용, 출처, 검색 날짜를 정리 숫자, 근거, 사례로 정리 소재별로 그루핑 그루핑 글감 & 소재 효과적으로 찾는 법 🔎 ..
백준허브라는 크롬 익스텐션을 사용하면 프로그래머스, 백준에서 문제 풀 시 자동으로 Github에 push를 해줍니다. 이렇게 push한 코드를 사용해서 지인들과 그날 푼 문제를 슬랙에 인증하는 활동을 하고 있는데요. 2개의 채널에 동시에 인증할 일이 생기면서 일일히 올리기가 아주 귀찮아졌습니다. https://velog.io/@flaxinger/%EB%B0%B1%EC%A4%80%ED%97%88%EB%B8%8C-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95 백준허브 사용 방법 백전허브의 사용자 매뉴얼입니다. velog.io 회사에서 일할 때도 슬랙 웹훅으로 이것저것 만드는 걸 재밌게 해왔던 터라 이번에도 깃허브액션을 사용하여 자동으로 슬랙 메세지 보내기를 시도해봤습니다. 슬랙에 웹훅 ..
우선순위 큐 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조 데이터를 우선순위에 따라 처리하고 싶을 때 사용 대표적인 우선순위 구현 방법 : 리스트, 힙(heap) 자료구조 → 힙 자료구조를 사용할 때 삽입&삭제 모두 O(logN) 힙(Heap) 자료구조 완전 이진트리 자료구조의 일종 항상 루트 노드를 제거한다. 최소 힙 (min heap) 루트 노드가 가장 작은 값을 가진다 값이 작은 데이터가 우선적으로 제거된다 최소 힙 구성 함수 : Min-Heapify() 최대 힙 (max heap) 루트 노드가 가장 큰 값을 가진다 값이 큰 데이터가 우선적으로 제거된다 🅰️ Heap 더미, 쌓다, 수많은, 엄청난 완전 이진 트리 (Complete Binary Tree) 루트노드부터 시작하여 왼쪽 자식 ..
클라이언트-서버간 양방향 통신 HTML5에서 많이 사용된다 다양한 브라우저에서 웹소켓 프로토콜을 지원한다 특징 양방향 통신 서로 원할때 데이터를 주고받는다 실시간 네트워킹 채팅, 주식, 비디오 데이터 등 연속된 데이터를 빠르게 노출 여러 단말기에 빠르게 데이터 교환 웹소켓 이전의 비슷한 기술 - 폴링, 롱폴링, 스트리밍 → HTTP 통신이므로 req, res 둘 다 Header가 불필요하게 크다 폴링 서버로 일정 주기로 요청을 계속 송신 롱 폴링 (long polling) 폴링의 개선 버전 서버에 요청 보내고 응답 받을 때까지 커넥션을 유지함 응답 받고면 끊고 다시 요청 많은 양의 메세지가 쏟아질 경우 폴링과 같아짐 스트리밍 서버에 요청을 보내고 끊기지 않은 연결상태에서 끊임없이 데이터 수신 클라이언트에..
분산처리, 동시성관리, 비동기 이런거 위주로 자료를 찾아보다가 아래 포스팅을 우연히 발견했습니다. 보다 보니 몰랐던 내용들이 너무 많아 JAVA NIO까지 추가로 찾아보게 되었습니다. https://velog.io/@sihyung92/how-does-springboot-handle-multiple-requests 스프링부트는 어떻게 다중 유저 요청을 처리할까? (Tomcat9.0 Thread Pool) 스프링 부트는 웹서버 어플리케이션 구조에 대해 잘 몰라도, 뚝딱 웹서버 어플리케이션을 만들게 도와줍니다. 하지만 한번씩 궁금증이 들 때가 있습니다. 이게 왜 되지..? 스프링, 이거 왜지? 시 velog.io 스프링부트의 다중 요청 처리 플로우 내장 서블릿 컨테이너인 Tomcat을 이용 Tomcat은 다중..
이전에 대량의 엑셀다운로드 처리 중 cpu가 급증하는 문제가 생겨 이를 해결한 내용을 다룬 적이 있는데요 그땐 시간이 없어서 그냥 XSSF에서 SXSSF로 바꾸면 되는구나~라고만 하고 넘어갔는데 SXSSF 컴포넌트는 어떻게 메모리를 관리하는건지 궁금해져서 공식문서를 다시 찬찬히 읽어봤습니다 이전 포스팅 👇 [Apache POI] 다량의 데이터 엑셀 다운로드 처리로 인한 서버 장애 대응 후기 스테이징 QA 도중 갑자기 사이트의 모든 기능이 먹통이 됐다는 소식을 들었습니다. 확인해보니 CPU 사용량이 급증하여 서버가 다운됐던 것이었습니다. 우선 서버를 재부팅하여 먹통 문제는 해결 jibsakim.tistory.com 공식문서에서의 SXSSF에 대한 설명을 보면 슬라이딩 윈도우(sliding window)가 ..
최근 MSA에 관심이 생겨 이것저것 아티클을 보다가 좋은 블로그 포스팅 시리즈를 발견하였습니다. 그냥 흘려보내기가 아까워 보면서 메모를 했는데, 같이 공유하면 좋을 것 같아 포스팅합니다. 자세한 내용은 아래 블로그를 참고해주세요. https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e
Java Bean이란 자바 빈이란, 3가지 규칙을 지키는 클래스이다 모든 필드는 private이며, getter/setter 메서드를 통해서만 접근이 가능하다 argument가 없는 (no-argument) 생성자가 존재한다 java.io.Serializable 인터페이스를 구현한다 import java.io.Serializable; public class SomeBean implements Serializable { private String beanName; private int beanValue; public SomeBean() { // no-argument constructor } public String getBeanName() { return beanName; } public void setB..
- Total
- Today
- Yesterday
- 리눅스 컨테이너
- Apache POI
- NoSQL
- 주니어개발자
- index
- laravel
- MySQL
- phpUnit
- redis
- mockery
- 몽고디비
- 백엔드
- 샤드
- 대규모 데이터 처리
- java
- pods
- laravel 테스트코드
- k8s
- mongoDB
- 쿠버네티스
- database
- 도커
- 라라벨
- kubernetes
- 분산처리
- laravel 테스트
- springboot
- docker
- php
- 샤딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |