코딩공부 177

redis를 사용하여 원하는 데이터 백업하기

최근 글또 활동을 하며 마인크래프트를 즐기고 있다.GCP를 사용해 서버를 열고 사용자와 함께 즐기고 있는데 같은 데이터 직군분께서 마크 데이터를 활용하여 통계를 내주시고는 하는데 이는 마크 서버에서 특정 데이터를 백업하고, 추출해야 하는 번거로움이 있었다.  기존에는 크론탭을 이용해 정해진 시간마다 백업을 수행했다. 하지만 이는 불필요한 데이터까지 백업하게 되어 비효율적이었다. 따라서 실제 접속이 발생한 시간대만 백업하는 방식이 필요했고, 이 문제를 해결하기 위해 Redis를 도입했다. Redis를 활용하면 접속 상태를 실시간으로 감지하고 특정 조건에서만 백업을 실행할 수 있어, 불필요한 백업을 줄이고 서버 리소스를 절약할 수 있다. 이 과정을 적어보며 redis를 설치 & 적용하며 수행했던 명령어와 느..

코딩공부 2025.03.16

Apache Kafka를 실행해보자

1. 들어가며최근 회사 프로젝트에서 클라이언트와 실시간으로 데이터를 저장해야하는 일이 생겼다. 이 데이터를 보다 효율적으로 처리하기 위해 Apache Kafka를 도입하게 되었고 Kafka를 도입하기 전 Kafka의 개념과 주요 특징, 그리고 로컬에서 실행해보았다. 2. Apache Kafka란?Kafka는 대량의 데이터를 빠르고 안정적으로 전송하는 분산 스트리밍 플랫폼이다. 링크드인에서 개발되었으며, 현재는 실시간 로그 수집, 이벤트 스트리밍, 데이터 파이프라인 구축 등의 다양한 용도로 사용된다. Kafka의 기본적인 구조는 다음과 같다:Producer: 데이터를 Kafka로 보내는 역할Broker: 데이터를 저장하고 관리하는 서버Consumer: Kafka에서 데이터를 가져가는 역할Topic: 데이터..

코딩공부 2025.02.16

Kotlin 런타임 시간 개선하기

이전 글 : Kotlin으로 Chunk 사용하기, Spring와 얼마나 다를까? 해당 글에서 이어집니다.  0. 런타임 시간을 줄일 수는 없을까?문득 공부를 해보고 궁금해졌다. 코틀린 런타임 시간은 줄일 수 없을까? 줄일 수 있다면 어떤 방법이 있는지 알아보고 기존 소스를 개선할 수 있는점은 없을까하여 추가로 수정해보았다. 1. Kotlin Reflection (kotlin-reflect) 제거kotlin-reflect는 주로 리플렉션 기능 (KClass, KProperty, KFunction 등)을 사용할 때 필요하지만, 현재 코드에서는 사용하지 않는다. 지워도 되는 이유는 아래의 이유가 있다.클래스 정보를 동적으로 조회하지 않음 (::class 사용 없음)프로퍼티나 함수 호출에 call() 같은 리플..

코딩공부 2025.02.02

Kotlin으로 Chunk 사용하기, Spring와 얼마나 다를까?

https://integer-ji.tistory.com/440 Spring Boot 3.x에서 Chunk 사용해서 데이터 read, write 사용률 알아보기0. Chunk를 사용하는 이유는 뭘까?메모리 관리에 용이전체 데이터를 한 번에 로드하지 않고 설정된 Chunk 크기만큼 메모리에 유지시킨다. 대용량 데이터 처리 시에도 OutOfMemoryError를 방지할 수 있다integer-ji.tistory.com 0. Kotlin과 차이가 있을까?저번주에는 Spring Boot에서 Java 17을 이용해 Chunk의 메모리 사용량을 알아보았다. 여기서 궁금한 점. Kotlin에서 Java 소스를 그대로 사용하게 된다면 과연 메모리 사용율은 어떻게 변할까?큰 차이가 있을지 궁금하여 시도해 보았다. 1. 프로..

코딩공부 2025.01.19

Spring Boot 3.x에서 Chunk 사용해서 데이터 read, write 사용률 알아보기

0. Chunk를 사용하는 이유는 뭘까?메모리 관리에 용이전체 데이터를 한 번에 로드하지 않고 설정된 Chunk 크기만큼 메모리에 유지시킨다. 대용량 데이터 처리 시에도 OutOfMemoryError를 방지할 수 있다. Garbage Collection 부하가 감소된다. 2. 트랜잭션 관리Chunk 단위로 트랜잭션 처리가 되기 때문에 전체적인 프로세스 안정성에 향상된다. 3. 성능 최적화JDBC Batch 처리와 결합하여 데이터베이스 작업에 최적화한다. 네트워크 통신 횟수를 감소시킨다. 데이터베이스에 부하를 분산시킨다. 크게 이 3가지로 보인다.  나는 회사 프로젝트에서 대용량 데이터를 조금 더 효율적으로 다루어 보기 위해 테스트를 진행해 보았다.  1. 프로젝트 설정1-1. 사용된 언어와 라이브러리 버..

코딩공부 2024.12.24

Java와 Kotlin, 컴파일 속도 차이가 많이날까?

프로젝트 환경 설정Java  Kotlin  함수 작성모두 동일하게 동작하는 함수를 호출한다 Javapublic class Main { public static void main(String[] args) { long sum = 0; for (int i = 1; i  Kotlinfun main() { var sum = 0L for (i in 1..1_000_000) { sum += i } println("Sum: $sum")}  빌드시간 확인Java 3번 진행 Java 평균 BUILD SUCCESSFUL in 1XXms Kotlin 3번 진행 Kotlin 평균 BUILD SUCCESSFUL in 2XXms Java가 조금 더 빠르긴 하다. 왜..

코딩공부 2024.10.29

Kotlin을 알아보자

현재 회사에서는 Java를 사용한다. 나중에 Kotlin을 사용할 때를 대비하기 위하여 코틀린은 자바에 비하여 무엇이 좋고 기업에서 왜 사용하는지 궁금하여 알아보았다. 코틀린의 장점1. 간결함코틀린은 자바보다 구문이 간단하다. 이로 인하여 코드를 더 쉽게 짤 수 있고 유지보수 차원에서도 유용하게 적용된다. 간단하게 예를 들자면 아래의 함수는 리스트의 짝수의 합을 구하는 코드이다. Javaimport java.util.List;public class Main { public static void main(String[] args) { List numbers = List.of(1, 2, 3, 4, 5, 6); int sumWithForEach = calculateSumWithF..

코딩공부 2024.10.27

[CI/CD] Django Jenkins 자동 배포하기 - docker에 Jenkins 설치하기 (7)

[CI/CD] Django Jenkins 자동 배포하기 - Django 프로젝트 생성 (1) : https://integer-ji.tistory.com/379 [CI/CD] Django Jenkins 자동 배포하기 - Ec2 Ubuntu 22.04 설치 (2) : https://integer-ji.tistory.com/380 [CI/CD] Django Jenkins 자동 배포하기 - Ec2 모바엑스텀 접속하기 (3) : https://integer-ji.tistory.com/381 [CI/CD] Django Jenkins 자동 배포하기 - Aws Ec2 Django 프로젝트 배포하기 (4) : https://integer-ji.tistory.com/383 [CI/CD] Django Jenkins 자동 배..

코딩공부/Server 2023.05.28

[CI/CD] Django Jenkins 자동 배포하기 - ec2 docker 설치하기 (6)

[CI/CD] Django Jenkins 자동 배포하기 - Django 프로젝트 생성 (1) : https://integer-ji.tistory.com/379 [CI/CD] Django Jenkins 자동 배포하기 - Ec2 Ubuntu 22.04 설치 (2) : https://integer-ji.tistory.com/380 [CI/CD] Django Jenkins 자동 배포하기 - Ec2 모바엑스텀 접속하기 (3) : https://integer-ji.tistory.com/381 [CI/CD] Django Jenkins 자동 배포하기 - Aws Ec2 Django 프로젝트 배포하기 (4) : https://integer-ji.tistory.com/383 [CI/CD] Django Jenkins 자동 배..

코딩공부/Server 2023.05.17