본문 바로가기

BackEnd/Project258

[ParmNav] CI/CD 구축 효율적인 애플리케이션 개발과 운영을 위해 자동화된 CI/CD 파이프라인 구축은 필수적이다. 이를 통해 코드 변경 사항이 신속하고 안전하게 배포될 수 있으며, 개발자는 더 빠르게 기능을 릴리즈하고 버그를 수정할 수 있다. 이번 글에서는 ParmNav 프로젝트에 CI/CD 파이프라인을 구축하는 과정과 이를 통해 얻을 수 있는 이점을 소개하고자 한다. AWS CodeDeploy 에이전트 설치AWS 가이드라인에 따라 필요한 패키지를 설치하고 CodeDeploy 에이전트를 설치한다. 다음 명령어를 실행하여 에이전트를 설치하고 로그 파일을 생성한다.https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/codedeploy-agent-operations-inst.. 2024. 9. 26.
[PharmNav]Base62 vs Base64 비교 분석 데이터 인코딩은 효율적인 데이터 표현과 전송을 가능하게 한다. Base62와 Base64는 각각의 특성을 바탕으로 다양한 상황에서 활용되며, 특히 Base62는 URL 안전성과 데이터 효율성에서 주목받는다. Base62는 영문 대소문자와 숫자만을 사용해 URL에서 추가적인 인코딩 없이 안전하게 사용할 수 있다. 반면 Base64는 특수 문자를 포함해 바이너리 데이터를 다루는 데 효율적이지만, URL에서는 추가 인코딩이 필요할 수 있다. 이 분석에서는 두 방식의 특성을 비교하고, Base62의 장점에 중점을 두어 각 방식의 장단점을 파악하고자 한다. 테스트 코드를 통한 비교Spock 프레임워크를 사용한 Groovy 테스트 코드를 작성하여 Base62와 Base64의 차이를 실험적으로 비교해 보았다. 테스트.. 2024. 9. 24.
[PharmNav] Redis vs DB 조회 성능 비교 분석 데이터베이스 성능 최적화는 현대 애플리케이션 개발에서 핵심적인 요소다. 특히 대규모 데이터를 다루는 서비스에서는 더욱 중요하다. 본 분석에서는 PharmNav 프로젝트의 약국 정보 조회 기능을 중심으로 Redis와 관계형 데이터베이스의 성능을 비교해 본다. 이를 통해 캐시 시스템 도입의 효과와 실제 사용자 경험에 미치는 영향을 살펴보고자 한다. 성능 비교를 위해 PharmacySearchService 클래스를 사용한다. 이 서비스는 Redis와 DB에서 약국 정보를 조회하는 기능을 제공한다. package com.example.phamnav.pharmacy.service;import com.example.phamnav.pharmacy.cache.PharmacyRedisTemplateService;impo.. 2024. 9. 24.
[PharmNav] Kafka vs Redis 성능 비교 분석 이번 글에서는 로컬 환경에서의 Redis와 Kafka 성능을 비교한다. Redis가 로컬에서 실행되고 있기 때문에, 동일한 환경에서 Kafka도 EC2가 아닌 로컬에서 실행하도록 코드를 수정하였다. 또한 Kafka는 배치 처리가 가능하기 때문에, 이전에는 컨슈머가 한 건씩 데이터를 읽었으나, 이번에는 배치 처리가 가능하도록 코드도 함께 수정하였다. 이를 위해 Kafka 및 Redis 관련 코드와 설정 파일을 다음과 같이 수정하였다. 1. docker-compose-local.yml 수정Redis와 Kafka를 모두 로컬 환경에서 실행할 수 있도록 네트워크 설정과 포트 설정을 조정하였다. 수정 전Redis와 Database 컨테이너만 정의됨.수정 후 Kafka, Zookeeper를 추가하여 로컬에서 실행되.. 2024. 9. 24.
[PharmNav] kafka를 통한 성능 향상 레디스 기반의 캐싱이 적용된 PharmNav 프로젝트에 카프카를 도입하여 초기 데이터 적재를 개선하는 과정을 설명한다. 카프카는 대규모 데이터 전송과 분산 처리에 강점이 있는 메시징 시스템이지만, 이 프로젝트에서는 실시간 처리보다는 초기 데이터 전송에 활용된다. 사용자는 카프카로 적재된 데이터를 조회하는 기능만 사용하며, 데이터를 처리하는 것은 초기 적재 시에만 수행된다. 1. Kafka 의존성 추가카프카 기능을 사용하기 위해 build.gradle 파일에 spring-kafka 의존성을 추가한다.implementation 'org.springframework.kafka:spring-kafka'이 의존성은 스프링과 카프카의 연동을 쉽게 해 준다. 2. KafkaConfig 클래스 설정KafkaConfig.. 2024. 9. 20.
[BigData] Ch12. Kafka추가 활용 사례 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. Kafka는 대규모 실시간 데이터 처리에 적합한 분산 스트리밍 플랫폼으로, 다양한 분야에서 활용되고 있다. 이번 장에서는 Kafka의 추가 활용 사례 중 하나인 동적 고객 채팅 시스템에 대해 알아본다. Dynamic Customer Chatting Kafka는 대규모 실시간 데이터 처리에 적합한 분산 스트리밍 플랫폼으로, 다양한 분야에서 활용되고 있다. 그중 하나가 동적 고객 채팅 시스템이다. 이 시스템은 사용자의 문의사항을 실시간으로 상담하는 데 사용되며, Kafka의 특성을 활용하여 구현할 수 있다.동적 고객 채팅 시스템 구성요소채팅방회원상담사채팅 내용의 발신 및 수신설계 시 고려사항채팅방의 수각 채팅방 참여자 수전달할 컨텐츠 특성채.. 2024. 9. 19.