전체 글 (총 582개) 썸네일형 리스트형 Redis - 영속화(Persistence) 이번 포스팅에서는 Redis의 영속성(Persistency) 에 대해서 알아보도록 하겠습니다 1. RDB 첫번째 영속성을 얻기 위한 방법은 RDB입니다. 관계형 DB가 아니라, Redis Database의 줄임말입니다. 이 방법은 지정된 간격으로, 데이터의 스냅샷을 찍어 저장합니다. 즉, 현재 메모리에 저장된 데이터 상태들을 특정 시점에 저장하는 방법을 말합니다. 장점 RDB는 매우 압축된(작은 크기의) 특정 시간에 대한 메모리 상태(데이터)를 나타냅니다. Ex) 예를들어, 시간마다, 또는 매일 스냅샷을 통해 Redis에 장애가 발생한 경우 원하는 특정 지점의 데이터를 복구할 수 있습니다. 별도의 저장소로 보낼 수 있는 단일 압축 파일이기 때문에 재해 복구에 좋습니다. 단점 특정 시간마다 현재 메모리의 .. DynamoDb - 기본 개념 1. 정의 하드웨어 프로비저닝이나, Replication, Software Update등 별도 설정이 필요 없는 완전 관리형 NoSQL Database Service입니다. 2. 구성 Tables 데이터들의 모음으로, 위 그림과 같이 People Tables에는 각각의 Person 정보들이 담깁니다. Items 각각의 Tables는 0개 이상의 Items 을 포함합니다. Items는 attributes 들의 모음입니다. 위 그림에서 각각의 Person이 Items를 의미합니다. Attributes Items내의 각 구성요소를 의미합니다. 위 그림에서, PersonId, LastName, FirstName, Phone이 Attributes입니다. Primary Key Tables 생성 시, 이름과 함께 P.. Database - 샤딩과 파티셔닝 이번 포스팅에서는 파티셔닝과 샤딩의 차이에 대해 알아보도록 하겠습니다. 대규모 트래픽, 데이터를 다루는 곳에서는 확장성을 위해서 샤딩, 파티셔닝을 필수적으로 고려하게 됩니다. 파티셔닝에서는 수평(테이블의 Row를 특정 컬럼의 값을 기준으로 나누는 것)파티셔닝과 수직(컬럼을 여러 테이블로 나누는것)파티셔닝이 존재합니다. 필자는 수평파티셔닝 == 샤딩으로 잘못 인지를 하고있었습니다 .. 샤딩, 파티셔닝(수평) 차이 위 글에 나온것을 보면 샤딩과 파티셔닝 모두, 큰 데이터를 여러 서브셋으로 나누어 저장하는 기술을 말합니다. 하지만, 샤딩의 경우에는 각 서브셋을 여러 인스턴스에 저장하는 반면, 파티셔닝은 하나의 인스턴스의 여러테이블에 나누어 저장하는 것을 말합니다. 샤딩 샤딩은 앞서 말씀드렸듯이 하나의 큰 데이.. Build Tool - Gradle 개념 정리 Gradle의 중요 기능 1. Gradle 개념1.1 Gradle의 중요 기능성능빌드캐시변경된 것중 꼭 필요한것만 다시 실행 JVM 토대 Gradle은 JVM위에서 동작한다, 또한 JDK가 필수적으로 설치되어 있어야 한다.사용자 정의 테스크, 플러그인 등의 빌드 로직에서 JAVA API를 사용할 수 있다. 확장성Gradle을 쉽게 확장해 자체 task를 만들 수 있다 IDE 지원Intellij등 주요 IDE등에서 gradle을 가져오고 상호작용 가능 빌드 스캔https://scans.gradle.com/?_ga=2.111392064.553798570.1608338427-2052134233.1608338427빌드 문제를 식별하는데 사용할 수 있는 정보를 제공빌드 성능문제를 식별하는데도 도움이 됨scans... Kafka - Kafka란? (Kafka의 구조와, 주요개념) Apache Kafka Apache Kafka의 각 구성요소와 구성요소들의 주요 개념을 알아보도록 하겠습니다. 어떤 기술의 특성을 이해하고, 구성요소를 이해하는것은, 해당 기술을 이용해 특정 기능을 구현할때 매우 중요한 요소입니다. 불필요한 처리를 줄일 수 있고, 꼭 필요한 처리를 할지를 판단할 수 있는 밑거름이 되기 때문입니다. https://kafka.apache.org/documentation이 글은 Kafka 공식 홈페이지의 문서를 보며 정리한 글입니다. 1. Kafka란?Kafka는 Pub-Sub 모델의 메시지 큐입니다. 분산환경에 특화되어있는 특징을 가지고 있습니다. 이 글의 3.Kafka의 주요개념 에서 Kafka의 개념들과 이들의 특징을 더 자세히 알아보도록 하겠습니다. 2. 구성요소2.1.. Spring Boot - Kafka 설치 및 실행과 Spring Boot에서 Apache Kafka 설정 kafka를 이용한 환경에서의 외부 장애대비 1. kafka 설치 및 실행 (windows10)1.1 설치https://www.geeksforgeeks.org/how-to-install-and-run-apache-kafka-on-windows/위 글을 참고하셔서 설치하셔도 됩니다. https://www.apache.org/dyn/closer.cgi?path=/kafka/2.6.0/kafka_2.13-2.6.0.tgz우선 kafka를 설치합니다. (주키퍼는 같이 받아집니다.) 원하는 위치에 tar의 압축을해제 합니다. (저는 C: 에 위치시켰습니다.) 압축을 풀고 config/server.properties를 엽니다. log.dirs의 경로를 윈도우 운영체제 형식에 맞추어 변경합니다. 1.2 실행조만간 주.. ApplicationKnowhow/Server - 게시판 조회수 기능 성능 최적화 이번 포스팅에서는, 일반적인 조회수 기능의 성능 향상을 고려해보는 시간을 갖도록 하겠습니다. 1. 조회수 기능 살펴보기 조회수는 어떤 글을 몇명의 사용자가 보았는지를 알려주는 것입니다. 방문자 수 또한 크게 보면 조회수와 같습니다. 언뜻보면, 조회수는 상당히 간단한 기능이기 때문에, 최적화가 필요할까? 성능향상이 필요할까? 싶기도합니다. 하지만 아주 작은 리소스를 소모하는 부분들일지라도, 잘못된 설계를 했고, 수많은 사용자들이 이용하다보면 매우 큰 문제로 이어지기도 합니다. 또한, 이렇게 작은 부분부터 하나 둘씩 성능 고려를 해두면, 나중에 정말 비즈니스상 크리티컬한 성능 문제가 야기 되었을때, 많은 도움이 되지 않을까요? 1.1 조회수 성능 최적화가 필요한 이유 및 필요한 부분 데이터베이스 잠금 첫번째.. Spring MVC - Spring MVC 동기화와 JPA 잠금기법 Spring MVC 동시성 테스트 이번 포스팅에서는 동기화 관련 문제를 다루어 보도록 하겠습니다. 우선, 동기화에 대해 알아보고, Spring MVC를 이용시 발생할 수 있는 문제점을 보도록 하겠습니다. 마지막으로, 이를 해결하는 방법도 알아보도록 하겠습니다. 만약! 현재 Spring MVC 프로젝트를 진행중이지만, Thread를 별도로 생성해서 공유 자원에 접근하는 것이 아닌데 왜, 동기화 문제가 발생하는지를 궁금해하신다면, Servlet에 대해 다시 공부를 해보셔야 합니다. 1. 동기화여러 스레드간 공유되는 자원은 항상 동기화 관련 처리를 해주어야합니다. 자바에서는 객체의 멤버변수가 동기화 대상 데이터가 될 수 있습니다. JVM에서, 객체는 Heap 영역에 할당되고, 이 Heap 영역을 Thread들.. 이전 1 2 3 4 5 ··· 73 다음