분류 전체보기

    Git 초보자도 쉽게 이해할 수 있는 Git (1) 개념 및 용어 정리

    Git 초보자도 쉽게 이해할 수 있는 Git (1) 개념 및 용어 정리

    Git은 VCS(버전 관리 시스템)으로 협업 및 관리를 위한 강력한 도구입니다. 그럼 VCS는 무엇일까요? VCS VCS(버전 관리 시스템)는 소스 코드의 변경 이력을 관리하는 도구로, 개발자들이 소스 코드를 효율적으로 관리하고 협업할 수 있도록 돕습니다. VCS는 소스 코드가 변경될 때마다 변경 된 소스 코드 파일의 변화를 기록 (변경점 관리)합니다. 이렇게 기록한 변경점으로 소스 코드를 복구하거나 특정 시점의 파일을 가져올 수 있습니다. 또한 특정 시점에 수정한 파일을 가져와 수정된 내용을 비교하는 것이 가능하고, 해당 파일을 누가 변경했는지, 또 어떻게 파일이 변경되어 왔는지를 추적할 수 있습니다. VCS를 통해 소스 코드의 이력을 추적할 수 있고, 여러 명의 개발자들이 분산 개발을 하며 협업할 수..

    Kafka Spring Boot 3으로 간단하게 Producer, Consumer 구현해보기

    Kafka Spring Boot 3으로 간단하게 Producer, Consumer 구현해보기

    JSON 형태인 데이터(메시지)를 Producer가 보내고 Consumer가 읽는 코드를 간단하게 구현해보도록 하겠습니다. 아래 코드를 작성해보시고 실행해보시면 정상작동합니다. 예제 코드가 정상 작동하기 위해서는 당연히 예제 쓰일 topic이 생성되어야 하고, zookeeper와 kafka를 실행시켜주셔야합니다. (zookeeper는 지양되지만 현 예제에서는 zookeeper를 사용하도록 하겠습니다) 1. zookeeper 실행 D:\tool\kafka> .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties 2. (broker) 서버 실행 D:\tool\kafka> .\bin\windows\kafka-server-start.bat ..

    Kafka Kafka명령어, local 환경에 Kafka Cluster 구축

    Kafka Kafka명령어, local 환경에 Kafka Cluster 구축

    Kafka 설치 아래 링크에 들어가 Binary downloads를 하면됩니다. Version은 자신의 환경 및 학습하고자 하는 버전에 맞게 다운받으시면 됩니다. (저는 기존에 깔아둔 2.8.2 version 입니다.) https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org Broker 3대 실행하기 Broker를 실행해주기 위해 설정파일을 작성해줍니다. 설치한 Kafka 폴더안에 config 폴더로 이동하여 server.properties 설정파일을 작성해줍니다. 설정 파일 작성 server.properties는 Broker에 대한 설정 파일입니다. 우리는 ..

    Kafka 카프카(Kafka)란?

    Kafka 카프카(Kafka)란?

    아파치 카프카 (Apache Kafka)란? 정의 Apache Kafka는 실시간 데이터 스트리밍을 처리하기 위한 오픈 소스 분산형 Pub/Sub 메시징 플랫폼입니다. 주로 대규모 데이터 처리, 실시간 데이터 파이프라인 구축, 스트리밍 분석, 데이터 통합 등에 사용됩니다. 탄생 배경 Kafka는 LinkedIn에서 개발했습니다. LinkedIn은 사용자들의 활동, 컨텐츠 등 대량의 데이터를 실시간으로 추적하고 처리하려했습니다. 기존 데이터 처리 시스템으로 해결할 수 있었습니다. 하지만 서비스가 커지면서 처리해야할 데이터도 많아지고 노드도 많아졌습니다. 이에 따라 데이터 파이프라인은 매우 복잡해졌고, 대규모 데이터를 처리하는데 한계를 느끼게되었습니다. 이에 LinkedIn은 대용량의 데이터를 효율적으로 처..

    Redis redis를 이용하여 랭킹 리더보드 구현하기

    Redis redis를 이용하여 랭킹 리더보드 구현하기

    redis 이용한 리더보드 Redis를 사용하여 랭킹 리더보드를 구현 했을 때 장점 Redis는 In-Memory 저장소로 매우 빠른 액세스 속도를 갖습니다. 또한 자료구조(Key-Value) 특성으로 읽기 및 작업 속도를 제공합니다. 때문에 랭킹을 실시간으로 업데이트 할 수 있습니다. Redis는 Sorted Set이라는 데이터 구조를 제공하여 요소를 정렬된 상태로 저장할 수 있습니다. 이 데이터 구조는 랭킹을 구현하는 데 유용합니다. Sorted Set 데이터 구조 이용하기 Redis의 Soted Set 데이터 구조를 조작하기 위해 Spring Data Redis에서 제공하는 인터페이스인 ZSetOperations를 이용해주면 됩니다. ZSetOperations 인터페이스를 통해 다음과 같은 기능을 ..

    Spring Boot 캐시 Cache 구현하기 (spring-context-support? redis?)

    Spring Boot 캐시 Cache 구현하기 (spring-context-support? redis?)

    캐싱: Caching cache는 데이터나 값을 복사해놓는 임시 기억 장치입니다. cache에 값을 복사해놓음으로서 속도가 느린 장치로의 접근 횟수를 줄일 수 있습니다. 예를 들어, 속도가 느린 장치인 DB에 접근하기 전에 속도가 빠른 redis를 먼저 읽음으로 성능 향상을 꾀할 수 있습니다. 캐싱 전략 Cache-Aside (Lazy Loading) 가장 일반적으로 많이 사용하는 캐싱 전략으로 항상 cache를 먼저 체크하고, 없으면 원본에서 데이터를 읽고 cache에 저장합니다. 캐싱이 필요한 데이터를 지정하여 해당 데이터들만 캐싱할 수 있고, 원본 데이터가 있기 때문에 Cache Miss가 있어도 치명적이지 않습니다. 항상 cache를 먼저 체크하기 때문에 최초 접근이 느립니다. 또한 cache에 ..

    Redis redis-cli 명령어 정리

    Redis redis-cli 명령어 정리

    redis-cli 명령어 각 Key는 고유하고, 거기에 대응하는 Value 값에는 Strings, Lists, Hashes 등 다양한 데이터 타입이 저장될 수 있습니다. Redis 커맨드 명령어도 데이터 타입에 따라 쓸 수 있는 것이 달라집니다. Strings # SET : Key에 대응하는 Value에 문자열을 저장합니다. > SET key1 value1 # GET : Key에 대응하는 Value 값을 가져옵니다. > GET key1 "value1" # INCR : Key에 대응하는 Value 값을 Integer로 취급하여 1증가 시킵니다. > SET num 10 > INCR num (integer) 11 # DECR : Key에 대응하는 Value 값을 Integer로 취급하여 1감소 시킵니다. > ..

    Redis 간단하고 빠른 In-Memory 데이터 저장, docker에 Redis 설치, Redis 명령어

    Redis 간단하고 빠른 In-Memory 데이터 저장, docker에 Redis 설치, Redis 명령어

    Redis: Remote Dictionary Server Redis는 메모리 내(In-Memory)에서 데이터를 저장하고 관리하는 오픈 소스 데이터 구조 서버입니다. Redis 특징 1. In-Memory Store Redis는 메모리 내에 데이터를 저장할 수 있는 In-Memory DB 입니다. 디스크보다 메모리에서 데이터를 읽고 쓰는 것이 빠르기 때문에 데이터에 빠르게 액세스 할 수 있습니다. 이러한 특징으로 Redis는 캐시 역할도 하여 다른 DB의 부하를 줄이고 응용 프로그램의 성능을 향상시킬 수 있습니다. Redis는 In-Memory 즉, 휘발성인 RAM에 저장하기 때문에 데이터가 영속성을 갖지 않는 문제가 있습니다. 2. 휘발성 Redis는 메모리 내에 데이터를 저장하기 때문에 시스템을 다시..