Infra 22

병목현상

병목현상(Bottleneck)과 해결법 1. 병목현상(Bottleneck)이란? 병목현상이란 전체 시스템이나 애플리케이션의 성능을 제한하거나 느리게 만드는 특정 지점이나 구간을 말함. 즉, 마치 병의 좁은 목 부분이 전체 흐름을 느리게 만들 듯이, 한정된 리소스나 비효율적인 코드로 인해 시스템 전체 성능이 떨어지는 현상임. 병목현상이 발생하면 시스템의 다른 부분이 아무리 빨라도, 결국 가장 느린 구간의 속도로 전체 시스템 성능이 제한됨. 2. 병목현상이 발생하는 원인과 대표적 사례 병목현상은 일반적으로 다음과 같은 원인에 의해 발생함. (1) CPU 병목 CPU가 과도한 연산으로 인해 성능이 제한되는 현상임. • 무거운 연산이 과도하게 집중될 때 • 싱글 스레드 환경에서의 CPU 집중 작업 (2) 메모리..

Infra/Performance 2025.03.22

MySQL 인덱스를 활용한 성능 최적화

MySQL에서 인덱스(Index)를 사용한 성능 최적화란? MySQL에서 인덱스(Index)를 사용한 성능 최적화란, 데이터베이스가 특정 데이터를 빠르게 찾을 수 있도록 데이터의 위치를 미리 정리하여 보관하는 방법임. 인덱스는 흔히 도서관의 책 색인에 비유할 수 있음. 예를 들어, 도서관에서 특정 주제의 책을 찾으려면, 책 전체를 하나씩 확인하는 대신 색인을 보고 원하는 책을 바로 찾는 것과 같음.인덱스를 설정하면 MySQL 역시 데이터를 빠르게 검색할 수 있게 됨. 인덱스가 없을 때의 문제점 (성능 저하) 먼저, 인덱스가 없을 경우의 문제를 알아보겠음. 예를 들어, 다음과 같은 테이블이 있다고 가정함: 예시 테이블 (user):idusernameageemail1kim25kim@test.com2lee28..

Infra/Performance 2025.03.21

성능 최적화

성능 최적화(Performance Optimization)의 개념과 방법 성능 최적화란 프로그램이나 시스템이 사용하는 자원을 최소화하면서 최대의 효율로 작동하도록 만드는 작업임. 즉, 같은 자원을 사용해서 더 빠르게 동작하거나, 같은 작업을 더 적은 자원으로 처리하는 것이 목표임. 특히 백엔드 개발 시, 성능 최적화는 매우 중요하며, 빠른 응답속도와 안정적인 서비스 운영을 위해 필수적인 작업임. 성능 최적화가 중요한 이유 성능 최적화를 하면 다음과 같은 효과를 얻을 수 있음. • 사용자 경험(UX) 개선: 응답 시간이 짧아져 사용자 만족도가 올라감 • 비용 절감: 서버 리소스 낭비가 줄어들어 운영 비용이 감소함 • 안정성 증가: 부하 시 시스템이 안정적으로 운영됨 • 확장성 향상: 같은 자원으로 더 많은..

Infra/Performance 2025.03.20

메시지 브로커(Message Broker)

⚡ 1. 메시지 브로커(Message Broker)란?메시지 브로커(Message Broker) 는 서로 다른 시스템 간의 메시지를 비동기적으로 송수신할 수 있도록 중간에서 관리하는 소프트웨어입니다. ✅ 메시지 브로커의 주요 역할 • 비동기 메시지 처리 → 발신자(Sender)와 수신자(Receiver)가 동시에 실행되지 않아도 메시지를 처리 가능 • 시스템 간 결합도(Dependency) 감소 → 직접 호출 대신 메시지 큐를 사용하여 서비스 간 느슨한 결합(Loosely Coupled) 가능 • 트래픽 관리 → 서비스가 과부하를 받지 않도록 메시지를 저장하고 순차적으로 전달 • 메시지 보장(Message Durability) → 메시지가 손실되지 않도록 안전하게 보관 • 확장성(Scalability) ..

Infra 2025.03.15

[AWS] AWS S3(Simple Storage Service)

⚡ 1. AWS S3란?Amazon S3(Simple Storage Service) 는 AWS에서 제공하는 확장 가능한 객체 스토리지 서비스입니다.AWS S3를 사용하면 이미지, 동영상, 로그 파일, 백업 데이터, 정적 웹사이트 파일 등을 저장할 수 있습니다. 📌 AWS S3의 주요 특징 • 확장성 → 데이터를 제한 없이 저장 가능 (이론적으로 무제한) • 내구성 & 가용성 → 99.999999999% (11 9’s) 내구성 제공 • 보안성 → IAM, 버킷 정책, 암호화 지원 • 다양한 스토리지 클래스 지원 → 비용 최적화 가능 • 정적 웹 호스팅 가능 → HTML, CSS, JS 등을 업로드하여 웹사이트 운영 가능 • 서버리스 아키텍처와 통합 → Lambda, CloudFront, API Gatew..

Infra/Cloud 2025.03.10

[SonarQube] 소나큐브

⚡ 1. 소나큐브(SonarQube)란?소나큐브(SonarQube) 는 정적 코드 분석(Static Code Analysis) 도구로,소프트웨어의 버그, 코드 스멜(Code Smell), 보안 취약점(Security Vulnerabilities) 을 자동으로 분석하여 코드 품질을 향상시키는 도구입니다. ✅ 소나큐브의 핵심 기능 🔹 정적 코드 분석 → 코드 실행 없이 문제를 찾아냄🔹 코드 품질 분석 → 코드 스멜(Code Smell), 복잡도, 중복 코드 감지🔹 보안 취약점 검사 → OWASP Top 10, SAST(정적 애플리케이션 보안 테스트) 지원🔹 CI/CD 연동 가능 → Jenkins, GitHub Actions, GitLab CI, Bitbucket과 통합🔹 다양한 언어 지원 → Jav..

Infra/CI-CD 2025.03.09

[Kubernetes] K8s Cluster

⚡ 1. Kubernetes 클러스터(K8s Cluster)란?Kubernetes(쿠버네티스, K8s) 는 컨테이너화된 애플리케이션을 자동으로 배포, 관리, 확장할 수 있는 컨테이너 오케스트레이션 플랫폼입니다.Kubernetes 클러스터는 여러 노드(Node)로 구성되며, 애플리케이션을 배포하고 실행하는 분산 시스템의 역할을 합니다. ✅ Kubernetes 클러스터의 핵심 기능 🔹 자동화된 컨테이너 배포 & 관리 → 컨테이너 기반 애플리케이션을 자동으로 배포하고 실행🔹 자동 확장(Auto Scaling) → 트래픽 증가 시 Pod을 자동으로 추가하거나 제거🔹 셀프 힐링(Self-Healing) → 장애가 발생한 컨테이너를 자동으로 복구🔹 로드 밸런싱 & 서비스 디스커버리 → 여러 개의 Pod을 하..

Infra/Container 2025.03.04

[Kubernetes] 쿠버네티스 (K8s)

⚡ 1. 쿠버네티스(Kubernetes)란?쿠버네티스(Kubernetes, K8s) 는 컨테이너화된 애플리케이션을 자동으로 배포, 운영, 확장하는 컨테이너 오케스트레이션 플랫폼입니다.Google에서 개발하고 현재는 Cloud Native Computing Foundation(CNCF) 에서 관리하는 오픈소스 프로젝트입니다. ✅ 쿠버네티스의 핵심 기능 🔹 컨테이너 자동 배포 및 스케일링 → 애플리케이션을 자동으로 배포하고 확장🔹 로드 밸런싱 및 서비스 디스커버리 → 여러 컨테이너 간의 네트워크 통신 관리🔹 셀프 힐링(Self-Healing) → 오류가 발생한 컨테이너를 자동으로 재시작🔹 롤링 업데이트 & 롤백 → 무중단 배포 가능🔹 클러스터 리소스 최적화 → CPU, 메모리 등을 효율적으로 할당 ..

Infra/Container 2025.03.03

[Docker] Docker 정리

🚀 Docker는 컨테이너(Container) 기반 가상화 기술로, 애플리케이션과 환경을 패키징하여 어디서든 동일한 환경에서 실행할 수 있도록 도와주는 도구입니다. 이 문서에서는 Docker의 개념, 주요 명령어, 이미지 & 컨테이너 관리, 네트워크, 볼륨, 최적화 전략, Docker Compose 및 실전 활용법을 정리합니다. ⚡ 1. Docker란?Docker는 컨테이너(Container) 기반 가상화 기술로, 애플리케이션과 실행 환경을 패키징하여 어디서나 동일한 환경에서 실행할 수 있도록 도와준다. ✅ Docker의 주요 특징 • 경량 가상화 → 기존의 VM과 달리 호스트 OS 커널을 공유하여 빠르고 가벼움 • 일관된 실행 환경 → 운영체제(OS)와 애플리케이션을 묶어서 실행 가능 • 애플리케이션..

Infra/Container 2025.02.28

리눅스 명령어

✅ 디렉토리 이동 (cd)pwd # 현재 위치 확인cd ~ # 홈 디렉토리로 이동cd /경로 # 절대 경로로 이동cd ./폴더명 # 상대 경로 이동 ./ 는 대부분 생략 가능함cd .. # 상위 폴더 이동cd - # 이전 디렉토리로 이동 ✅ 디렉토리 생성 및 삭제 (mkdir, rmdir, touch)mkdir 폴더명 # 디렉토리 생성mkdir -p A/B/C # 여러 개의 디렉토리 한 번에 생성rmdir 폴더명 # 빈 디렉토리 삭제rm 파일명 # 파일 삭제rm -r 폴더명 # 비어있지 않은 디렉토..

Infra/OS 2025.02.23