매일메일 36

단일 장애 지점(SPOF)이란 무엇인가요?

🤔 SPOF가 뭔가요?단일 장애 지점(Single Point of Failure, SPOF)은 마치 우리 집의 메인 전기 차단기 같은 존재예요! 🏠⚡메인 차단기가 고장나면 집 전체가 정전되죠? 시스템에서도 마찬가지로 하나의 구성 요소가 죽으면 전체 서비스가 마비되는 지점을 SPOF라고 해요.💡 가용성(Availability)이란?정상 운영 시간 ÷ 전체 시간 × 10099.999% = 연간 5분 정도만 다운타임 허용 (고가용성, HA) 😱카카오톡이 하루 종일 안 된다고 생각해보세요... 그게 바로 가용성 문제!🔍 현재 상황 분석주어진 시스템을 살펴보면✅ DB: Master 1대 + Replica 3대 (Failover 지원) - 안전함!❌ API Server: 1대만 운영 - 위험한 SPOF!A..

CI/CD란 무엇인지 설명해주세요

CI/CD란 무엇인지 설명해주세요프론트엔드와 관련된 질문이에요.CI/CD는 애플리케이션 배포 과정을 자동화하여 더 짧은 주기로 고객에게 서비스를 제공하는 방식입니다. 먼저, CI는 Continuous Integration의 약어로 지속적 통합을 의미합니다. CD는 Continuous Delivery(지속적 전달) 또는 Continuous Deployment(지속적 배포) 를 의미합니다.먼저, CI는 개발자들이 코드 변경사항을 주기적으로 메인 브랜치에 병합하는 과정을 자동화한 것입니다. 이 과정에서 코드 변경사항이 발생할 때마다 자동으로 빌드와 테스트를 수행하여 문제를 조기에 발견할 수 있습니다. 예를 들어, 여러 개발자가 함께 작업할 때 한 개발자의 변경사항이 다른 개발자의 작업과 충돌하거나 전체 애플리..

CORS 설정 없이 SOP를 우회하여 외부 서버와 통신할 수 있는 방법이 있을까요?

SOP가 뭐길래? 🤔SOP(Same-Origin Policy)는 브라우저의 보안 정책이에요! 다른 도메인끼리 함부로 통신하지 못하게 막는 경비원 같은 역할을 해요 🛡️예를 들어내 사이트: mysite.com외부 API: api.weather.com이 둘이 직접 통신하려고 하면? "안 돼!" 라고 브라우저가 막아버려요 ❌CORS 설정의 한계 😅보통은 CORS 헤더를 서버에서 설정해서 해결하죠:Access-Control-Allow-Origin: *하지만 외부 API 서버를 내가 직접 관리하지 않는다면? 설정할 수 없어요! 😱 프록시 서버: 똑똑한 중간다리 🌉작동 원리마치 심부름센터같은 개념이에요!브라우저: "야, 날씨 API 데이터 좀 가져와!"프록시 서버: "알겠어, 내가 대신 가져올게!" 🏃‍..

트랜잭셔널 아웃박스 패턴에 대해서 설명해주세요.

트랜잭셔널 아웃박스 패턴 🎯왜 필요할까? 🤔온라인 쇼핑몰을 운영한다고 생각해보세요! 고객이 주문을 완료하면:주문 정보를 DB에 저장 💾결제 시스템에 알림 💳재고 시스템에 알림 📦이메일 발송 📧이 모든 작업이 동시에 성공해야 하는데, 만약 주문은 저장됐는데 결제 시스템 알림이 실패하면? 😱 고객은 돈만 빠져나가고 상품은 못 받는 상황이 발생할 수 있어요!기존 방식의 문제점 💥// 위험한 코드 예시async function processOrder(orderData) { await db.orders.create(orderData); // DB 저장 성공 await paymentService.notify(orderData); // 갑자기 네트워크 오류! 💀}이런 상황을 이중 쓰기 문..

CSRF 공격에 대해서 설명해주세요.

CSRF가 뭔가요? 🤔CSRF(Cross-Site Request Forgery)는 한마디로 "신분도용 사기"와 비슷해요!일상 예시로 설명하면: 여러분이 은행 앱에 로그인한 상태에서, 악성 사이트를 방문했더니 여러분 모르게 계좌이체가 실행되는 것과 같습니다 💸브라우저가 "아, 이 사람이 은행 앱에 로그인되어 있으니 진짜 본인이 요청한 거겠구나!"라고 착각하는 거죠 🏦공격 시나리오 단계별 분석 🎭1단계: 평범한 로그인 😊철수가 "매일메일" 서비스에 로그인서버가 세션 쿠키를 브라우저에 저장이제 철수는 인증된 사용자!2단계: 함정에 빠지다 😱철수가 "무료 아이폰 당첨!" 같은 피싱 사이트 클릭또는 SNS에서 악성 링크를 클릭심지어 정상 사이트의 악성 광고를 볼 수도 있어요3단계: 몰래 공격 실행 🕵..

css box-sizing 속성에 대해 설명해주세요.

box-sizing이 뭔가요? 🤔웹 개발을 하다 보면 분명 width: 200px로 설정했는데 실제로는 더 큰 요소가 나타나는 경우를 경험해보셨을 거예요. 마치 피자 박스를 주문했는데 생각보다 훨씬 큰 박스가 온 것처럼 말이죠!이런 상황이 바로 box-sizing 속성과 관련이 있습니다 🍕두 가지 계산 방식 📏1. content-box (기본값) - "속만 재는 방식"일상 예시: 선물 상자를 만들 때 내용물만 측정하는 방식상자 안에 들어갈 물건: 200px상자 벽 두께(padding): 20px씩 양쪽상자 테두리(border): 2px씩 양쪽실제 상자 크기: 200 + 40 + 4 = 244px 📦2. border-box - "전체를 재는 방식" ⭐일상 예시: 선물 상자의 전체 크기를 미리 정하는..

NAT 기능을 사용하는 이유를 알고 계신가요?

🏠 IP 주소의 두 얼굴: 공인 vs 사설공인 IP 주소 (Public IP) 🌍전 세계에서 유일무이한 주소인터넷 상에서 직접 통신 가능ISP(통신사)에서 할당마치 집 주소처럼 전 세계 어디서든 찾을 수 있음사설 IP 주소 (Private IP) 🏠특정 네트워크 안에서만 유효한 주소외부에서 직접 접근 불가라우터/공유기가 할당마치 아파트 호수처럼 그 아파트 안에서만 의미 있음사설 IP 대역 📋10.0.0.0 ~ 10.255.255.255 (대기업 네트워크) - A클래스172.16.0.0 ~ 172.31.255.255 (중간 규모 네트워크) -B클래스192.168.0.0 ~ 192.168.255.255 (가정용 - 가장 흔함!) -C클래스🤷‍♂️ 왜 사설 IP를 쓸까?1. IP 주소 부족 문제 해결..

알고 있는 이미지 포맷과 각 포맷별 특징을 알려주세요.

프론트엔드 개발자가 꼭 알아야 할 이미지 포맷 완벽 가이드 📸웹 개발을 하다보면 항상 마주치는 고민이 있죠. "이 이미지는 JPEG로 할까? PNG로 할까? 요즘 WebP도 많이 쓴다던데..." 😅오늘은 웹에서 자주 사용하는 JPEG, PNG, WebP, SVG 포맷의 특징을 일상 예시와 함께 쉽게 알아보겠습니다!📷 JPEG - 사진의 친구JPEG(Joint Photographic Experts Group)는 마치 음악을 MP3로 압축하는 것과 비슷해요. 파일 크기는 작아지지만 조금씩 품질이 손실됩니다.특징손실 압축 방식 사용파일 크기가 작아서 웹에서 빠르게 로딩 ⚡투명도 지원 안함 ❌편집할 때마다 화질 저하언제 사용할까? 🤔풍경 사진, 인물 사진 같은 복잡한 이미지인스타그램 피드 이미지블로그 본..

클래스풀 IP 주소 체계에 대해서 설명해주세요.

클래스풀 vs 클래스리스 IP 주소 체계 🌐백엔드 개발자라면 꼭 알아야 할 네트워킹 기초! IP 주소가 어떻게 구분되는지 알아보자 💻클래스풀 주소 체계 - 옛날 방식 📚클래스풀 주소 체계는 IP 주소를 미리 정해진 크기로 나누는 방식이에요. 마치 아파트 단지를 A동(대형), B동(중형), C동(소형)으로 나누는 것과 비슷해요! 🏢A클래스 - 대기업용 🏭범위: 1.0.0.0 ~ 126.255.255.255특징: 첫 번째 숫자만 네트워크, 나머지 3개는 호스트예시: 구글, 아마존 같은 대기업이 사용수용 가능: 약 1,600만 개의 기기 연결 가능! 😱B클래스 - 중견기업용 🏬범위: 128.0.0.0 ~ 191.255.255.255특징: 앞의 2개 숫자는 네트워크, 뒤의 2개는 호스트예시: 대학교..

HTML Doctype이 무엇인지 설명해주세요.

HTML Doctype이 무엇인지 설명해주세요.프론트엔드와 관련된 질문이에요.HTML의 은 웹 브라우저에 해당 문서가 어떤 HTML 버전을 기반으로 작성되었는지 알려주는 역할을 하는 선언문입니다. 문서의 최상단에 위치하며, 브라우저가 HTML 문서를 해석하고 렌더링하는 방식을 결정합니다. 대소문자를 구분하지 않지만, 강조하기 위해 대문자를 사용하는 경우가 많습니다.과거에는 HTML의 다양한 버전(ex. XHTML 1.1, HTML 4.01 등)이 존재했기 때문에 브라우저가 문서를 올바른 방식으로 해석하기 위해, 적절한 방식으로 Doctype을 직접 지정해야 했습니다. HTML5에 접어들어서는 선언 방식이 단순화되어 으로 간단하게 선언할 수 있습니다. 이 선언문은 HTML5를 사용하고 있음을 명시합니다.D..