MySQL과 Redis 인메모리 DB 와 디스크 기반 DB DBMS ( Data Base Management System )는 데이터를 저장 관리해주는 시스템을 얘기한다. 이 DBMS의 다양한 분류기준 중 데이터를 저장하는 위치에 따른 분류로 인메모리와 디스크로 나눌 수 있다. 인메모리는 RAM 이라고 부르는 휘발성 저장장치에 저장한고 반대로 디스크 기반인 경우 하드 디스크 혹은 SSD 라고 부르는 영속저장 장치에 저장된다. 기본적으로 MySQL의 경우 디스크에 저장되는 디스크 기반 데이터베이스이고 Redis의 경우 메모리(주 기억장치)에 저장되는 인메모리 데이터 베이스에 한 종류이다. 때문에 종류 별 특징을 아는 것은 중요하다. 인메모리 VS 디스크 기본적으로 인메모리 데이터베이스는 디스크(HDD/SS..
자바 NIO 등장이유 자바가 느리다는 얘기를 듣던 이유는 IO 때문이다. 이러한 문제사항을 해결하기 위해 NIO(New Input Output) 이 등장하였다. 자바 IO가 느린 이유 애플리케이션의 IO 과정에는 유저 영역과 커널 영역이 있다. 유저 영역은 H/W 에 직접 접근하는 것이 불가는 하고 커널 영역에 시스템 콜을 보내 드라이버 등을 통해 접근 가능하다. 커널 영역을 거치게 되면서 불필요한 버퍼와 복사 과정이 추가된다. 자바 I/O의 비효율 커널 영역을 거쳐 I/O를 진행하기 때문에 쓸 때없는 과정(버퍼 복사)이 추가된다. 예시로 비디오 카드(모니터) -> 커널 영역의 버퍼 로 데이터를 이동하는 것은 DMA(Direct Memory Access) 기술을 통해 CPU 자원이 필요없다. 하지만 커..
성능 테스트 도구 비교 Gatling 스칼라를 통해 테스트 스크립트를 생성하는 부하 테스트 도구 비동기식 아키텍처로 가상 사용자를 스레드가 아닌 메시지로 생성해 수천 명의 동시 사용자 재현가능한 성능 좋은 테스트 도구 분산 테스트 지원하지 않아 다 수의 컴퓨터를 통해 테스트 할 수 없음.. JMeter GUI를 제공해 쉽게 사용해 볼 수 있다. 한 명의 가상 사용자를 하나의 스레드로 생성하여 동시성제한 있음. 분산 테스트를 지원한다. 즉, 여러대의 컴퓨터를 통해 테스트하고 그 테스트 결과를 종합할 수 있다. nGrinder Jython, Groovy 스크립트를 활용해 테스트 시나리오 작성가능 한 명의 가상 사용자를 하나의 스레드로 생성하여 동시성제한 있음. 분산 테스트를 지원한다. 즉, 여러대의 컴퓨터를..
자바 IO 자바 애플리케이션의 입•출력 작업을 의미한다. java.io 패키지의 클래스를 사용하여 작업할 수 있다. java.io 패키지는 크게 바이트 스트림 클래스와 문자 스트림 클래스 로 나뉜다. 네이밍에 따른 특성 Stream 으로 끝나는 클래스 바이트 단위 IO Reader 로 끝나는 클래스 문자 단위 Input 클래스 Writer 로 끝나는 클래스 문자 단위로 출력하는 클래스 File 로 시작하는 경우 파일을 입출력 하는 클래스 ByteArray 로 시작 바이트 배열을 읽거나 출력하는 클래스 CharArray로 시작 문자 배열을 읽거나 출력하는 클래스 Filter로 시작 상속을 통해 구현해 필터링 목적으로 커스텀해 사용 Data로 시작 다양한 데이터 형식을 입출력 하는데 사용. 특히 기본형(pr..
- Total
- Today
- Yesterday
- Session
- Clean Architecture
- 동적 디스패치
- Object Pool
- RestAssured
- OOP
- Sticky Session
- 외부 단편화
- 수직 분할
- Memory Fragmentation
- 컴포짓 패턴
- 세션 불일치
- pool
- 육각형 아키텍처
- java
- 객체 풀
- 뾰족함
- pass by reference
- 장애 해결기
- SpringBoot 2.2
- ATDD
- 클린 아키텍처
- 동적 타입 언어
- pass by value
- 정적 타입 언어
- 내부 단편화
- 메모리 파편화
- 수평 분할
- 메모리 단편화
- multimap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |