전체 글 61

[CS 지식] CDN이란?

CDN이란?전 세계 여러 곳에 미리 서버(캐시 서버)를 만들어 두고 사용자와 가장 가까운 곳에서 웹사이트 데이터(이미지, 동영상, css, js 등)를 대신 전달해주는 분산 서버쉽게 말하면:미국에 본사를 둔 유명 햄버거 가게(원본 서버)가 한국 손님들을 위해 한국에 직영점/물류창고(CDN 엣지 서버)를 세워두고 빠르게 재료를 배달해 주는 것사용 시기1. 글로벌 서비스를 운영할 때- 한국에 서버가 있는데 미국, 유럽, 일본 등 전 세계 사용자가 빠르게 접속해야 할 때2. 이미지/동영상 등 대용량 파일이 많을 때- 쇼핑몰, 스트리밍 서비스처럼 미디어 파일 요청이 엄청나게 몰릴 때3. 트래픽 폭주 및 디도스(DDoS) 공격에 대비할 때- 대규모 이벤트나 공격 시 원본 서버가 다운되지 않도록 방어막이 필요할 때..

CS 지식 2026.10.02

[CS 지식(보안)] XSS(Cross-Site Scripting)이란?

XSS란?웹 사이트의 허점을 노려 악성 JavaScript 코드를 삽입하는 공격 웹 브라우저는 웹 사이트에서 전달받은 스크립트를 신뢰하여 그대로 실행한다.공격자는 이 점을 악용해 사용자의 입력창(댓글, 검색창 등)에 정상적인 글 대신 악성 스크립트 코드를 집어넣는다.서버나 브라우저가 이 입력을 제대로 검증하지 않고 다른 사용자들에게 그대로 보여준다면 사용자의 브라우저에서 공격자의 악성 코드가 실행된다. 쉽게 이해하자면:게시판 댓글에 "잘 보고 갑니다!" 대신 를 적었는데 웹 사이트가 이걸 검증 없이 등록 한다면 다른 방문자들이 댓글창을 열었을 때 그 악성 코드가 자동으로 실행 될 수 있다.XSS 공격 종류1. 저장형 (Stored XSS)방식: 공격자가 게시글, 댓글, 프로필 정보 등 서버 DB에 저장되..

CS 지식 2026.10.02

[CS 지식] 리버스 프록시란?

리버스 프록시란?클라이언트의 요청을 대신 받아 뒤에 있는 실제 서버(들)에게 전달해주는 서버포워드 프록시와의 차이포워드 프록시는 클라이언트의 편에 서서 "누가 요청했는지"를 서버로부터 숨긴다.(사내망에서 외부 접속을 대리)리버스 프록시는 서버 편에 서서 "실제 서버가 몇 대인지, 어떤 구조인지"를 클라이언트로부터 숨긴다.사용시기?1. 보안을 강화하고 싶을 때- 실제 데이터가 들어있는 내부 웹 서버의 IP 주소를 외부에 노출하고 싶지 않을 때2. 트래픽이 많아 서버를 여러 대 돌릴 때- 접속자가 많아서 서버 1대로 감당이 안될 때 여러 서버로 요청을 나누어 주어야 하는 경우에 씀 (로드밸런싱 기능이 이 리버스 프록시라는 작동 방식을 이용해서 만든 것)3. SSL/TLS(HTTPS) 암호화 처리를 일괄 관리..

CS 지식 2026.09.30

[CS 지식] DNS란?

DNS란?사람이 기억하기 쉬운 도메인 이름(example.com)을 실제 통신에 필요한 IP 주소로 변환해주는 분산 시스템사용시기?1. 웹사이트 접속할 때- 브라우저 주소창에 google.com이나 naver.com 같은 주소를 입력하고 엔터를 누르는 순간 사용2. 스마트폰 앱을 실행할 때- 앱이 실행되면서 필요한 데이터를 가져오기 위해 서버(ex.api.instagram.com)에 연결 할 때 사용3. 게임이나 온라인 서비스 이용 시- 온라인 게임에 접속하거나 스트리밍 서비스에서 영상 데이터를 받아올 때 사용요약:컴퓨터는 142.250.196.142 같은 숫자(IP 주소)로만 상대를 찾을 수 있기 때문에 사람이 문자 주소를 입력할 때마다 중간에서 번역해 주는 역할로 DNS가 사용된다.DNS 작동 방식1..

CS 지식 2026.09.30

[CS 지식] 실시간 통신을 하는 방법들

실시간 통신이란?클라이언트(브라우저, 앱)와 서버가 연결을 유지하거나 주기적으로 확인하여 데이터가 발생하는 즉시 지연 없이 주고받는 통신 방식을 의미.무슨 방법들이 있는가 ?기술설명WebSocket양방향 통신을 지원하는 대표적인 표준 프로토콜SSE(Server-Sent Events)서버에서 클라이언트로만 데이터를 실시간 푸시하는 단방향 기술HTTP Polling(Short / Long Polling)클라이언트가 서버에 주기적으로 데이터 유무를 물어보는 방식WebRTC(Web Real-Time Communication)서버를 거치지 않고 브라우저 간(P2P)에 직접 음성/영상/데이터를 주고받는 기술사용시기?1. 즉각적인 데이터 동기화가 필요할 때 (WebSocket, HTTP Polling)사용자 간 입력..

CS 지식 2026.09.16

[CS 지식] SSL/TLS 암호화란?

SSL/TLS 암호화란?SSL(Secure Sockets Layer)과 TSL(Transport Layer Security)는 인터넷 통신에서 데이터를 암호화하여 주고받기 위한 보안 프로토콜이다. 과거에 사용 되던 SSL의 보안 취약점을 보완하여 발전시킨 표준이 TLS이다.사용시기?1. HTTP 서비스를 안전한 HTTPS로 전환할 때- 웹 사이트와 사용자 간의 전체 통신 구간을 암호화해야 할 때 사용한다.2. 개인정보 및 민감 데이터를 송수신 할 때- 로그인, 회원가입, 신용카드 결제, 계좌 이체 등 보안이 필수적인 긴으을 수행할 때 사용한다.3. 서버의 신원을 증명해야 할 때접속하려는 사이트가 가짜 피싱 사이트가 아닌 검증된 진짜 서버인지 디지털 인증서를 통해 확인해야 할 때 사용한다.4. 웹 외의 통..

CS 지식 2026.09.15

[CS 지식] OSI 7계층이란?

OSI 7계층이란?국제표준화기구(ISO)에서 개발한 모델로 네크워크 통신이 일어나는 과정을 7개의 단계로 표준화하여 정의한 네크워크 참조 모델계층별로 역할이 상호 독립적으로 나뉘어 있어 문제 발생 시 해당 계층만 파악하여 유지보수하기 용이하다.(예: 응용, 표현, 세션, 전송, 네트워크, 데이터 링크, 물리 계층)사용시기?1. 상위 계층을 다룰 때- 사용자 친화적 애플리케이션 및 인터페이스 개발웹 브라우저, 이메일 프로그램 등 사용자와 직접 상호작용하는 스프트웨어를 개발 할 때 사용한다.- 데이터 인코딩 및 보안 적용암호화(SSL/TLS), 데이터 압축, 파일 형식(JSON, XML 등)의 변환 및 세션 관리 요구사항이 있을 때 다룬다. 2. 하위 계층을 다룰 때- 안정적인 시스템 네크워크 구축 및 데이..

CS 지식 2026.09.15

[CS 지식] RDBMS와 NoSQL이란?

RDBMS와 NoSQL이란?RDMBS (Relational Database Management System):데이터를 행과 열로 구성된 엄격한 테이블 구조로 관리하며 테이블 간의 관계를 정의해 사용하는 관계형 데이터베이스(Ex.MySQL, PostgreSQL, Oracle)NoSQL (Not Only SQL):고정된 테이블 스키마가 없으며 Key-Value, Document, Graph 등 다양한 방식으로 자유롭게 데이터를 저장하는 비관계형 데이터베이스이다. (MongoDB, Redis, DynamoDB) 사용시기?RDBMS를 쓰는 경우:- 주문/결제/금융 시스템: 원자성(All or Nothing)이 보장되어 데이터 손실이나 왜곡이 절대로 없어야 할 때- 복잡한 관계 조회가 많은 서비스: 여러 테이블 ..

CS 지식 2026.09.09

[CS 지식] Kafka란?

Kafka란?대규모 분산 시스템 환경에서 서비스 간 결합도를 낮추고 OS의 디스크 순차쓰기 방식을 활용해 대용량 트래픽 병목을 해결하는 핵심 데이터 파이프라인 아키텍처 쉽게 설명하면분산 이벤트 스트리밍 플랫폼: 대용량의 실시간 데이터(이벤트)를 안전하게 수집, 저장, 처리하기 위해 사용하는 분산 메시지 큐 시스템 사용시기?1. 대용량 이벤트/로그 수집유저 행동 데이터(클릭 스트림), 서버 접속 로그 결제 내역 등 수많은 서비스에서 발생하는 데이터를 중앙에서 수집할 때 사용한다.2. 마이크로서비스(MSA)간 비동기 통신:서비스 A가 작업 완료 후 Kafka에 이벤트를 발행하면 연결된 다른 서비스들이 각자의 처리 속도에 맞춰 이벤트를 소비하는 비동기 구조를 만든다.3. 실시간 데이터 파이프라인:발생한 데..

CS 지식 2026.09.07

[CS 지식] Redis란?

Redis란?데이터를 하드디스크(HDD/SSD)가 아닌 메인 메모리(RAM)에 저장하여 처리하는 초고속 인메모리 데이터 저장소이다.사용시기?1. 캐시 서버DB의 조회 결과나 자주 사용하는 데이터를 Redis에 임시 저장하여 DB 부하를 줄이고 응답 속도를 높일 때 사용한다.2. 분산 세션 관리로드 밸런서 환경에서 여러 서버가 클라이언트의 로그인 세션 정보를 공통으로 공유 할 때 활용한다.3. 실시간 순위표Sorted Set 자료구조를 활용하여 실시간 게임 점수나 검색어 순위를 손쉽게 집계할 때 사용한다. Redis 캐싱 전략 및 작동 방식전략동작 방식장점단점Look Aside (Cache Asid)앱이 먼저 Redis를 확인하고 데이터가 없으면 DB에서 조회해 Redis에 저장 후 반환함실제로 요청된 데..

CS 지식 2026.09.04