반응형

2025/06 22

21. 인메모리 캐싱 (Redis, Memcached)

캐싱의 기본 개념캐시란?데이터를 임시로 저장해두는 고속 저장소원본 데이터보다 접근 속도가 빠른 메모리나 저장소에 복사본을 저장CPU 캐시, 브라우저 캐시, DB 캐시, 웹 캐시 등이 있음응답 시간 단축, 시스템 부하 감소 등의 효과를 얻을 수 있음캐싱의 필요성속도 개선 (Latency Reduction)데이터베이스나 원격 API의 응답보다 훨씬 빠른 in-memory 접근 가능부하 분산 (Load Reduction)동일한 요청이 반복될 때마다 원본을 조회하지 않고 캐시로 응답하여 서버나 DB의 부하 감소비용 절감외부 API 요금, 네트워크 비용 등을 캐시를 통해 줄일 수 있음고가용성원본 시스템이 일시적으로 장애가 나도, 캐시된 데이터로 서비스 연속성 유지 가능다양한 캐시의 종류구분설명하드웨어 캐시CPU의..

개발/Web-Backend 2025.06.30

20. 인덱싱 : SQL 쿼리 최적화

인덱스인덱스란데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 데이터의 물리적 주소와 함께 별도의 메모리 공간에 저장인덱스 생성 시 오름차순으로 정렬인덱스의 동작 원리B-Tree개념좌우 균형을 유지하는 트리, 이진트리의 단점을 극복 가능이진트리와 다르게 한 노드에 여러 key 저장 가능최대자식노드 개수가 m개일 때, m차 b-tree라고 함특징부모노드의 key의 개수+1 만큼 자식 노드를 가짐leaf 노드는 모두 같은 레벨에 존재B+Tree특징데이터 저장은 leaf node에만 함leaf node끼리는 linked list로 연결Hash실제로 인덱스에서 그렇게 많이 사용되지는 않음Hash 테이블은 컬럼의 값, 물리적 주소를 ke..

개발/Web-Backend 2025.06.30

[정신 건강] 스트레스 줄이는 법 - 세상이 살기 힘든 진짜 이유

최근 들어 여기저기서 좋지 않은 소리들이 많이 들린다. 물론 당신의 고민은 이와 직접적인 관련이 없을 수도 있지만 그럼에도 이 글을 읽고 나면 당신의 스트레스가 조금은 덜어질 것이다. 우선 그를 위해 대표적인 사회적 이슈 몇 가지를 다루어보자. 사회 불평등은 전 세계적으로 심각한 문제로 다루어진다. 인종 차별, 성별간의 갈등은 최근들어 크게 주목받 있는 사회적 이슈이다. 청년 실업 및 출산율은 우리나라에서 발생중인 문제로 20대의 실업률이 높아짐과 동시에 구직을 포기하는 사람도 날이 갈수록 늘고있다. 그와 연관되어 먹고 살기가 힘들다는 인식에서 결혼을 기피하고, 결혼까지는 하더라도 출산은 하지 않아 젊은 층 인구가 급격하게 줄어들고 있다. 그리고 전 세계적으로 천연 자원은 줄어들기만 하고, 문명의 발달..

기타/건강 2025.06.27

19. DB 성능 최적화

DB 성능 튜닝 개요 (Introduction to DB Performance Tuning)DB 성능 튜닝의 정의와 필요성데이터베이스의 전반적인 응답 속도와 처리 효율을 향상시키기 위한 일련의 기법과 작업튜닝 영역SQL 쿼리 최적화인덱스 설계하드웨어 자원 할당캐시 및 버퍼 설정병목 분석 및 구조적 리팩토링성능 병목전체 시스템 성능을 저해하는 가장 느린 구성 요소나 단계병목이 존재하면 그 외 요소들을 최적화해도 전체 성능이 개선되지 않음최적화 단계에서는 병목을 우선 파악하고 진행튜닝이 필요한 상황 예시특정 페이지 혹은 기능의 응답 지연슬로우 쿼리 지속 발생 (SQL 실행 시간이 몇 초 이상 소요)동시접속자 증가 시 서비스 속도 급격히 저하DB 서버의 CPU/메모리 사용률 급등웹/모바일 서비스에서 간헐적 타..

개발/Web-Backend 2025.06.27

18. 성능 최적화

성능최적화성능 최적화란?시스템의 응답 속도, 처리량, 자원 사용률 등을 개선하여 안정적이고 효율적인 서비스를 제공하는 과정목적사용자 경험 개선 (빠른 응답, 끊김 없는 흐름)시스템 자원 효율화 (CPU, 메모리, DB 부하 절감)처리량 향상 (TPS/QPS 증가, 대규모 요청 대응)운영 비용 절감 (서버 수, 네트워크 비용 등 감소)주요 적용 영역코드 최적화 (알고리즘, I/O 처리)데이터베이스 튜닝캐싱 전략인프라 스케일링 (서버 확장, 로드 밸런싱 등)병목 발생 이유유형설명예시애플리케이션 병목비효율적인 알고리즘, 불필요한 연산O(n²) 정렬, 불필요한 반복 연산데이터베이스 병목느린 쿼리, 인덱스 누락, 트랜잭션 충돌SELECT * + 조인, N+1 문제I/O 병목파일, 네트워크 요청 지연S3에서 대용량..

개발/Web-Backend 2025.06.27

17. 리버스 프록시와 클라우드

클라우드 환경과 리버스 프록시 아키텍처클라우드 환경에서 Nginx나 Apache 같은 리버스 프록시는 서비스의 안정성과 확장성을 책임지는 핵심 요소로드 밸런싱 및 고가용성클라우드에서 제공하는 로드 밸런서(LB)와 Nginx/Apache를 조합해 트래픽을 분산하고 단일 장애 지점(SPOF, Single Point of Failure)을 제거하는 것이 가능동작 원리사용자 트래픽이 먼저 클라우드 로드 밸런서(AWS의 ELB, Google의 Cloud Load Balancing 등)에 도달이 로드 밸런서는 1차적으로 트래픽을 여러 Nginx/Apache 프록시 서버로 분배그 후, Nginx/Apache 프록시는 URL 경로, 헤더 정보 등 더 세밀한 조건에 따라 실제 애플리케이션 서버(WAS)로 트래픽을 다시 ..

개발/Web-Backend 2025.06.26

16. 로그 관리

로그 관리의 개념과 필요성로그시스템, 애플리케이션, 네트워크 장비 등에서 발생하는 이벤트와 상태를 기록한 데이터예를 들어, 사용자의 로그인 시도, 파일 접근 기록, 에러 발생, 서비스 상태 등 다양한 활동로그는 일반적으로 시간순(Time-series)으로 저장되며, timestamp, level, message, source 등의 필드를 포함로그 관리의 목적모니터링 (Monitoring)시스템의 상태와 이상 징후를 실시간으로 감지.CPU, 메모리, 네트워크 사용량뿐 아니라 비정상적인 요청, 오류 등도 로그로 파악 가능.예: 로그인 실패가 갑자기 급증할 경우 경보(Alert) 발생.디버깅 (Debugging)애플리케이션이나 시스템 장애 발생 시, 로그를 통해 문제 원인을 추적.코드의 흐름, 예외 발생 지점..

개발/Web-Backend 2025.06.26

15. CI/CD

CI/CD 개념과 목적CI/CD란?Continuous Integration(지속적 통합)과 Continuous Delivery/Deployment(지속적 전달/배포)의 약자코드 변경 사항을 빠르게, 반복적으로, 안정적으로 배포할 수 있도록 하는 소프트웨어 개발 및 운영 프로세스를 의미함CI(지속적 통합): 코드 변경이 저장소에 병합될 때마다 자동으로 빌드, 테스트를 수행CD(지속적 전달 또는 배포): 검증된 코드를 자동으로 운영 또는 운영 직전 단계에 배포CI/CD는 DevOps 문화의 핵심 실천 전략이며, 소프트웨어 배포 과정을 자동화하여 품질 향상과 배포 속도 개선을 가능하게 함CI (Continuous Integration)의 정의와 필요성개발자들이 소스 코드를 공유 저장소에 통합하고, 이 통합을 ..

개발/Web-Backend 2025.06.24

14. 가상 서버 : 클라우드 환경 구성, 가상 서버 원리

클라우드 컴퓨팅 개요클라우드 컴퓨팅의 정의와 특징클라우드 컴퓨팅은 IT 자원(서버, 스토리지, 네트워크 등)을 인터넷을 통해 필요한 만큼 제공받고 사용하는 방식사용자는 인프라를 직접 소유하거나 관리하지 않아도 되고, 서비스 제공자는 자원을 유연하게 할당/회수 가능특징온디맨드(Self-service): 필요한 만큼 즉시 할당 가능탄력성(Elasticity): 트래픽에 따라 자동으로 리소스 확장/축소종량제 요금(Pay-as-you-go): 사용한 만큼만 비용 지불위치 독립성(Location independence): 인터넷만 있으면 어디서든 접근 가능멀티테넌시(Multi-tenancy): 하나의 인프라를 여러 고객이 공유클라우드 서비스 모델 (IaaS / PaaS / SaaS)IaaS (Infrastruct..

개발/Web-Backend 2025.06.24

13. 웹 프레임워크 요청 매핑

개요웹 프레임워크의 정의와 목적웹 애플리케이션 개발을 보다 쉽고 구조적으로 할 수 있도록 도와주는 프로그래밍 도구의 집합. 주로 서버에서 HTTP 요청을 받아 처리하고, 응답을 생성하여 반환하는 작업의 흐름을 표준화목적요청/응답 처리 자동화: 개발자가 직접 HTTP 세부 사항을 다루지 않아도 되도록 추상화코드 재사용성과 유지보수성 향상: 구조화된 패턴 제공 (ex. MVC)보안 및 성능 기본 제공: CSRF 방어, CORS 설정, 캐시 관리 등 기본기능 내장생산성 향상: 빠르게 API와 화면을 구성할 수 있는 유틸리티 제공요청-응답 흐름 (Request Lifecycle)1. 클라이언트가 요청(Request) 전송브라우저, 모바일앱, Postman 등에서 HTTP 요청 발생2. 서버 수신 및 라우팅(Ro..

개발/Web-Backend 2025.06.23