728x90

전체 글 70

HAProxy?

HAProxy?고가용성 및 로드 밸런싱을 위한 오픈 소스 소프트웨어 로드 밸런서 및 프록시 서버주요 목적은 웹 서버, 애플리케이션 서버 등과 같은 백엔드 서버로의 트래픽을 분산시키는 것이를 통해 네트워크 트래픽을 관리하고 백엔드 서버의 가용성을 향상 Load Balancing?부하 분산을 위해 가상 IP를 통해 여러 대의 서버에 접속을 분배하는 기능클라이언트의 수가 많아질수록 서버에 부하가 걸릴 가능성이 높아진다.이를 해결하기 위해서는 서버의 사양을 높이거나(scale-up), 부하를 여러 대의 서버로 분산(scale-out)해야 한다.Load Balancing의 주요 기능NAT : 사설 IP주소를 공인 IP 주소로 바꾸는데 사용DSR : 로드 밸런서 사용 시 서버에서 클라이언트로 돌아가는 경우 목적지 ..

HAProxy 2025.04.04

[Mysql] slow query 발생에 의한 mysqld 프로세스 cpu 사용률 급증 이슈

현재 운영중인 서버는 멀쩡하나, 클라이언트가 튕기거나 기능이 온전하게 작동하지 않는 이슈가 있다.모니터링을 해보니, mysqld 프로세스의 cpu 점유율이 100%에 달하였으며, 해당 상태가 10~40분 정도 지속되는 현상이 확인되었다. 다행히도 서비스는 죽지 않고 일정 시간이 지난 후 자연 해소되었으며,구글링과 gpt의 도움을 받아 원인을 분석해보니 지속,반복적으로 실행되는 slow 쿼리(aes_decrypt 함수 포함) 등으로 인하여 cpu 사용량이 급증하는 것으로 파악하였다. 아래는 해당 slow 쿼리에 대한 분석 및 대응 방향이다.🔎 slow 쿼리 분석1. 주요 특징대량의 데이터를 조회하는 복잡한 SELECT 쿼리AES_DECRYPT, FROM_BASE64 연산이 다수 포함되어 있어 CPU 부하..

DB/MariaDB 2025.03.12

On-premise와 SaaS?

소프트웨어 및 IT 인프라를 제공하는 방식에는 크게 On-Premise(온프레미스) 방식과 SaaS(Software as a Service, 서비스형 소프트웨어) 방식이 있습니다. 두 방식은 소프트웨어의 배포, 유지보수, 비용 구조, 확장성 등 여러 측면에서 차이가 있으며, 각각의 특성과 장단점이 존재합니다. 아래에서 각각의 방식을 설명하고, 예시를 통해 차이점을 자세히 알아보겠습니다.1. On-Premise(온프레미스) 방식정의 및 특징자체 설치 및 관리: 온프레미스 방식은 소프트웨어를 기업 내부의 서버나 데이터 센터에 직접 설치하여 운영하는 방식입니다.초기 투자 비용: 서버, 네트워크 장비, 저장 장치 등 하드웨어 구입 및 설치에 상당한 초기 비용이 필요합니다.커스터마이징 가능성: 기업의 특수한 요구..

etc 2025.02.11

Deepseek?

**딥시크(DeepSeek)**는 인공지능(AI)과 빅데이터 분석 기술을 기반으로 다양한 산업 분야에 혁신적인 솔루션을 제공하는 중국계 AI 기술 기업입니다. 주로 대규모 언어 모델(LLM) 개발, 데이터 인프라 구축, AI 기반 의사결정 지원 시스템 등을 핵심 사업 영역으로 삼고 있으며, 기업 및 연구 기관에 맞춤형 AI 기술을 적용해 생산성과 효율성을 극대화하는 데 집중하고 있습니다.주요 특징 및 서비스대규모 언어 모델(LLM) 개발:DeepSeek-R1, DeepSeek-Math 등 특화된 LLM을 개발해 자연어 처리(NLP), 수학적 추론, 코드 생성 등의 작업에 최적화된 성능을 제공합니다.오픈소스 모델과 엔터프라이즈용 상용 모델을 모두 지원합니다.AI 기반 데이터 분석 플랫폼:빅데이터 처리, 실..

etc 2025.02.03

CI/CD?

CI/CD(Continuous Integration and Continuous Deployment/Delivery)는 소프트웨어 개발 및 배포 프로세스를 자동화하여 효율성을 높이고, 개발부터 운영까지의 사이클 타임을 단축하는 데 초점을 둔 접근 방식입니다. 이를 이해하기 위해 각 단계와 예시를 살펴보겠습니다.1. CI (Continuous Integration)개념CI는 개발자들이 변경한 코드를 자주, 그리고 지속적으로 중앙 저장소에 병합하여 품질을 보장하는 프로세스입니다. 각 변경 사항은 자동화된 테스트를 통해 코드의 품질을 검증합니다. 예시개발자가 새 기능을 구현:한 개발자가 새로운 로그인 기능을 추가하고 이를 GitHub에 푸시합니다.자동화 빌드 및 테스트:푸시된 코드가 CI 서버(예: Jenkin..

etc 2025.01.16

MSA 서비스의 설계 및 구현과 예시

MSA(Microservices Architecture) 서비스는 하나의 애플리케이션을 여러 개의 독립적인 마이크로서비스로 나누어 개발, 배포, 운영하는 아키텍처입니다. 이 방식은 각각의 서비스가 독립적으로 작동하며, 특정 도메인 기능에만 집중하도록 설계됩니다.MSA 서비스를 구현하려면, 시스템을 독립적인 마이크로서비스로 나누고 이를 연결하는 기반을 마련해야 합니다. 이를 구현하기 위한 과정을 이커머스 플랫폼 예제를 중심으로 자세히 설명하겠습니다.1. 서비스 설계먼저 각 서비스를 분리합니다. 이커머스 플랫폼의 경우 다음과 같이 나눌 수 있습니다:사용자 서비스: 사용자 등록, 인증, 프로필 관리.상품 서비스: 상품 등록, 조회, 수정.주문 서비스: 주문 생성, 상태 관리.결제 서비스: 결제 처리 및 상태 ..

etc 2025.01.15

java.net.SocketTimeoutException: Read timed out 오류

최초 로그 (15:31:24)발생 시간: 2024-12-19 15:31:24.044로그 레벨: ERROR원인:ResourceAccessException 발생.I/O error 발생: GET 요청에서 Read timed out.java.net.SocketTimeoutException: Read timed out: 요청에 대한 응답이 일정 시간 내에 오지 않아 연결이 끊어졌음.원인애플리케이션이 인증 서버에 GET 요청을 보냈으나, 인증 서버의 응답을 기다리는 동안 타임아웃이 발생했습니다. 이 경우, 네트워크 지연, 서버 과부하, 또는 타임아웃 설정이 너무 짧은 경우가 원인일 수 있습니다.문제 분석 및 원인1. 토큰 만료 문제 (OAuth2Exception)만료된 토큰 사용: 클라이언트가 만료된 OAuth2 ..

Deadlock found when trying to get lock; try restarting transaction 오류

데드락은 데이터베이스에서 두 개 이상의 트랜잭션이 서로 자원을 점유한 상태에서, 상대방이 점유한 자원을 요청하며 무한 대기 상태에 빠지는 상황을 말합니다.결과적으로 이 상태에서는 트랜잭션이 진행되지 못하며, 데이터베이스는 교착 상태를 해결하기 위한 조치를 취하지 않으면 정상 작동에 장애가 발생합니다.Deadlock 발생 과정트랜잭션 A와 B의 동시 실행:트랜잭션 A가 자원 X를 잠그고, 이후 자원 Y를 요청.동시에 트랜잭션 B가 자원 Y를 잠그고, 이후 자원 X를 요청.자원 충돌:트랜잭션 A는 자원 Y를 점유한 트랜잭션 B를 기다리고,트랜잭션 B는 자원 X를 점유한 트랜잭션 A를 기다립니다.Deadlock 발생:두 트랜잭션이 서로 상대방의 자원을 기다리며 대기 상태에 빠지고, 진행이 불가능해집니다.   ..

프롬프트 엔지니어링?

프롬프트 엔지니어링(Prompt Engineering)은 인공지능 모델(ChatGPT 등)이 원하는 결과를 생성할 수 있도록 입력 문구(프롬프트)를 설계하고 최적화하는 기술입니다. 이를 통해 모델의 성능을 극대화하고, 사용자가 기대하는 정확하고 유용한 응답을 얻을 수 있습니다. 아래에 구체적인 예시와 기법을 들어 설명하겠습니다.1. 명확한 프롬프트 제공AI 모델은 입력이 명확하고 구체적일수록 더 적절한 출력을 제공합니다.예시 1:부정확한 프롬프트:"내일 날씨 어때?"개선된 프롬프트:"내일 서울의 오전 9시부터 오후 6시까지의 날씨와 최고/최저 기온을 알려줘."효과:시간, 장소, 세부사항을 명확히 지정함으로써 모호성을 제거하고 원하는 정보를 정확히 받을 수 있습니다.2. 출력 형식 지정원하는 결과를 특정 ..

etc 2024.12.18

Devops?

DevOps는 소프트웨어 개발(Development)과 운영(Operation)을 통합하는 방식으로, 협업을 통해 소프트웨어 개발 및 배포 주기를 단축하고 품질과 안정성을 높이는 것을 목표로 합니다. DevOps는 기술, 프로세스, 문화를 통합하여 개발과 운영 팀 간의 협업을 촉진하고, 자동화 및 효율성을 극대화합니다.DevOps의 주요 업무CI/CD 파이프라인 설정 및 관리CI(Continuous Integration): 개발자들이 코드를 자주 병합할 수 있도록 빌드 및 테스트 자동화를 구현.CD(Continuous Delivery/Deployment): 변경 사항이 자동으로 프로덕션 또는 배포 환경에 배포되도록 설정.도구: Jenkins, GitLab CI/CD, CircleCI, Travis CI,..

etc 2024.12.11
728x90